(Discussion issue — per CONTRIBUTING, opening for discussion before any PR, since this proposes a new primitive touching BaseAgent / Tools & Memory. Deferential by design: this defers to your operator-composition direction and invites co-design.)
Motivation
OpenJarvis today is strongest at single, composable agents. The roadmap names the next frontier but marks it open:
- Operator composition / chaining — Design Needed ("operator A feeds results to operator B").
- Agent-to-agent coordination — no explicit messaging/dispatch layer today.
- Federated memory — synchronizing memory across devices — in focus.
As local-first personal AI grows past one agent, these converge into one missing piece: a coordination substrate — a place for agents to message each other, dispatch and track work, and share persistent memory + identity across sessions and devices. Building this well (durable queues, addressing, persistence, observability) is a real systems project on its own.
Proposal
Adopt a small coordination interface — in the spirit of how InferenceEngine abstracts serving across Ollama/MLX/vLLM — with Mycelium as the first pluggable implementation. Mycelium (SoftBacon-Software/mycelium, Apache-2.0, matching OpenJarvis) is an existing open coordination platform built for exactly this: tasks, memory, messaging, dispatch, savepoints, designed to run on hardware you own.
Mapping to the roadmap:
| roadmap item |
Mycelium primitive |
| operator composition / chaining |
tasks + declared dependencies (A → B) |
| agent-to-agent coordination |
channels / direct messaging + addressing |
| federated / persistent memory |
memory backends + savepoints (cross-session identity) |
Integration shape (respecting your constraints)
Per CONTRIBUTING's "may-not-be-accepted" list (no breaking changes, no heavy deps, no UX friction), this lands as an optional extra, not a core requirement:
- A
CoordinationBackend interface registered via your existing registry pattern; NullCoordination (single-agent, today's behavior) is the default. Zero impact unless a user opts into multi-agent.
- The Mycelium backend is an optional install that talks to a Mycelium instance over its API (loose coupling) — no new heavy dependency in the core, and it keeps the license boundary clean (separate service).
- Start minimal: messaging + task dispatch first; memory/federation second, aligned with your federated-memory work.
What we bring
Open questions (for co-design)
- Should coordination be a core primitive or strictly an optional extra? (We lean optional-first.)
- How should the interface relate to your planned operator-composition design — does composition sit above a coordination backend, or are they the same layer?
- Where does this meet federated memory — one backend, or memory-as-a-Mycelium-capability?
Honest notes
- This is a proposal to fill a gap, shaped to your architecture — not a finished design. We'll build to your interfaces.
- Scope discipline: ship the smallest useful slice (messaging + dispatch behind a default-off backend) and earn the rest.
(Discussion issue — per CONTRIBUTING, opening for discussion before any PR, since this proposes a new primitive touching
BaseAgent/ Tools & Memory. Deferential by design: this defers to your operator-composition direction and invites co-design.)Motivation
OpenJarvis today is strongest at single, composable agents. The roadmap names the next frontier but marks it open:
As local-first personal AI grows past one agent, these converge into one missing piece: a coordination substrate — a place for agents to message each other, dispatch and track work, and share persistent memory + identity across sessions and devices. Building this well (durable queues, addressing, persistence, observability) is a real systems project on its own.
Proposal
Adopt a small coordination interface — in the spirit of how
InferenceEngineabstracts serving across Ollama/MLX/vLLM — with Mycelium as the first pluggable implementation. Mycelium (SoftBacon-Software/mycelium, Apache-2.0, matching OpenJarvis) is an existing open coordination platform built for exactly this: tasks, memory, messaging, dispatch, savepoints, designed to run on hardware you own.Mapping to the roadmap:
Integration shape (respecting your constraints)
Per CONTRIBUTING's "may-not-be-accepted" list (no breaking changes, no heavy deps, no UX friction), this lands as an optional extra, not a core requirement:
CoordinationBackendinterface registered via your existing registry pattern;NullCoordination(single-agent, today's behavior) is the default. Zero impact unless a user opts into multi-agent.What we bring
Open questions (for co-design)
Honest notes