Skip to content

research(orchestration): no generic cross-thread store or dynamic Command-style agent handoff (LangGraph parity) #6363

Description

@bug-ops

Description

LangGraph — this project's own tracked comparator for durable/checkpointed graph execution, "a dimension no other tracked agent covers" — has two long-standing patterns Zeph lacks: a generic namespaced cross-thread Store, and a Command return value letting a node dynamically update state and route to any named node at runtime. Zeph has narrower, purpose-built analogs for both.

Current State (source-verified)

Cross-thread store: bespoke, non-generic tables only — learned_preferences (crates/zeph-memory/src/store/preferences.rs:48-110, globally keyed, no conversation_id), persona facts (crates/zeph-memory/src/store/persona.rs, provenance-only session id), semantic/cross_session.rs (search, not addressable KV). No generic store.put(namespace, key, value) primitive.

Dynamic handoff: the only dynamic-routing primitive is recovery.route_to: Option<TaskId> (crates/zeph-orchestration/src/graph.rs:453, hardened this session by PR #6346) — statically declared at DAG-definition time, single-target, failure-only (dag.rs:214-234 rejects chaining; activates only via mark_dormant_route_to_targets, dag.rs:418). No agent-returned Command(goto=<any_agent>, update=state) exists for normal (non-failure) dynamic routing.

Expected Behavior

(a) a generic namespaced cross-thread store usable by any subsystem/tool without a bespoke schema; (b) a Command-like return type allowing runtime dynamic routing beyond pre-declared failure fallbacks.

Actual Behavior

Memory has several purpose-built global tables but no generic store; orchestration routing is fixed at DAG-definition time except for the narrow route_to failure fallback.

Environment

  • Version: main @ df20cd9
  • Relevant crates: zeph-memory, zeph-orchestration

Spec

.local/specs/072-cross-thread-store-dynamic-handoff/spec.md

See Also

LangGraph Store/Command; PR #6346 (nearest existing primitive to build from or supersede)

Metadata

Metadata

Assignees

Labels

P3Research — medium-high complexitymemoryzeph-memory crate (SQLite)orchestrationTask orchestration / DAG schedulingresearchResearch-driven improvement

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions