Most multi-agent stacks assume context must be shared through APIs: a vector DB, Redis, a message bus, a coordination service, or a “memory server.”
That’s not required.
Multi-agent systems can share context the same way reliable software has always shared state: through shared, versioned artifacts (files) and deterministic append-only logs.
This is the “context without APIs” pattern: agents coordinate by reading and writing the same memory boundary, not by calling a service.
The Core Idea: Shared State, Not Shared Services
When you remove APIs from the equation, you’re left with one question:
Where does shared context live?
Answer: in a shared memory artifact that is:
- portable (can be mounted anywhere)
- deterministic (same state → same reads)
- concurrency-safe (handles multiple writers)
- inspectable (debuggable, auditable)
- versionable (can roll back)
Think: “Git repo for agent memory,” but optimized for retrieval and writes.
Memvid fits this pattern by packaging memory into a single portable file with hybrid search indexes and a crash-safe write-ahead log, so agents can share the same state without a vector DB API.
Architecture Pattern: Shared Memory File + WAL
Components
- Shared memory artifact (mounted file)
- Write-ahead log (WAL) for safe concurrent appends
- Reader snapshots so reads are consistent
- Optional: merge/compaction job to fold WAL into the base artifact periodically
How it works
- Agents open the same memory file (read-mostly)
- Updates are appended to the WAL (fast, safe)
- Reads use a snapshot: base + WAL up to a known offset
- Periodic compaction merges WAL → base, producing a new version
This gives you shared context without any networked “memory service.”
Sharing Context Without Conflicts
Model A: Single-writer, many-readers (simplest)
- One “coordinator agent” is the only writer
- All other agents read and propose changes
- Coordinator commits to memory
Pros: easiest correctness
Cons: coordinator bottleneck
Model B: Multi-writer append-only (practical default)
- Each agent writes only append events
- No in-place edits
- Conflicts resolved by deterministic rules during compaction
Pros: scalable, resilient
Cons: needs a compaction/merge strategy
Model C: Partitioned memory + periodic reconcile
- Each agent writes to its own partition/file
- A reconciler merges partitions into a shared “truth” view
Pros: strongest isolationCons: adds reconcile step
Most production systems end up at B or C.
What Actually Gets Written: “Events,” Not Raw Chat
To share context reliably, agents should write structured records:
- DecisionMade (what, why, who, timestamp)
- FactLearned (fact + source pointer)
- TaskCreated / TaskUpdated
- ConstraintAdded (rules, policies, “never do X”)
- ArtifactGenerated (doc IDs, outputs, checksums)
- RetrievalManifest (what was retrieved + memory version)
Key rule: write outcomes and deltas, not entire transcripts.
This keeps memory compact and retrieval accurate.
How Agents Read Shared Context
Each agent performs:
- Load snapshot (base + WAL up to offset N)
- Retrieve relevant items (hybrid lexical + semantic)
- Plan using retrieved items
- Act
- Append events back to WAL
Because retrieval happens locally (data locality), shared context access is fast and predictable.
Deterministic Coordination Rules
If multiple agents write simultaneously, you need simple rules:
- Monotonic timestamps / logical clocks per agent
- Idempotent writes (same event ID ignored if repeated)
- Conflict policy by record type:
- facts: newest-wins only if source is authoritative
- tasks: state machine transitions (Open → InProgress → Done)
- decisions: never overwrite; supersede with a new decision event
- Compaction merges create a canonical “current view”
This is how you avoid “agent A said X, agent B said Y” turning into chaos.
The “Blackboard” Pattern (Without a Service)
Classic multi-agent AI used a blackboard: a shared space for facts and hypotheses.
You can implement the same concept without APIs:
- blackboard.mv (shared memory artifact)
- blackboard.wal (append log)
- blackboard.compacted.mv (periodic merge output)
Agents subscribe by reading snapshots; they “publish” by appending events.
No HTTP. No DB. No queue.
How This Replaces Message Queues Too
Agents can coordinate “work” the same way:
- WorkItemCreated
- WorkItemClaimed
- WorkItemCompleted
- WorkItemFailed
Claiming can be done via:
- atomic append with a “claim token”
- deterministic arbitration (“lowest agent-id wins if simultaneous”)
- or a coordinator agent
This turns shared context into both memory and workflow.
Where This Wins (Big)
This architecture shines when you need:
- offline / air-gapped operation
- on-prem deployments
- deterministic replay and auditing
- low latency (sub-ms local reads)
- fewer failure modes than service sprawl
It also simplifies governance:
- “What did agents know?” = inspect the artifact version + WAL offset
- “Why did they act?” = read the event trail + retrieval manifests
Where It’s Not the Best Fit
You likely still want APIs/services when:
- you need global real-time coordination across regions
- thousands of agents write continuously at very high volume
- strict low-latency cross-datacenter consensus is required
In those cases, you’ll reintroduce distributed systems primitives.
But for most enterprise multi-agent workflows, artifact-based sharing is simpler and more robust.
Memvid Mapping (Concrete)
If you’re using Memvid as the shared memory boundary:
- Base memory: org_base.mv (curated knowledge)
- Delta shared memory: team_delta.mv (weekly updates)
- Working WAL: runtime.wal (append-only events)
- Compaction: nightly merge → team_base_vNext.mv
Agents:
- read org_base.mv + team_delta.mv + runtime.wal
- append to runtime.wal
- rely on deterministic retrieval from local indexes
This gives you multi-agent shared context without any retrieval API.
The Takeaway
Multi-agent systems don’t need APIs to share context.
They need:
- a shared memory boundary (artifact)
- an append-only write path (WAL)
- deterministic reads (snapshots)
- a merge/compaction strategy
When context becomes a file instead of a service, multi-agent coordination gets:
- simpler
- faster
- more reliable
- more governable
If you want, I can turn this into a one-page diagram + a “minimum viable multi-agent memory spec” (event types, merge rules, and snapshot semantics) you can drop into Memvid docs.

