Multi-Agent Coordination
Two isolated agents. One shared KB. No messages.
Two agents coordinate without exchanging a single message. Agent Alpha writes structured decisions to a shared Iranti KB; Agent Beta retrieves them cold — no shared context, no direct link. This is the blackboard model for multi-agent systems.
Results at a glance
What this measures
Multi-agent systems almost always coordinate through direct messaging: one agent calls another, passes a payload, waits for a response. This works at small scale. At larger scale it creates tight coupling — every agent needs to know every other agent's address, API shape, and availability.
The blackboard model breaks that coupling. Agents write to a shared knowledge store as a side-effect of their own work. Other agents read from that store when they need information. No agent has to know about any other agent — only about the KB schema.
B8 tests whether Iranti's KB can serve that coordination role reliably. Agent Alpha writes six structured decisions about a project called Blackbox. Agent Beta starts cold — no shared context — and retrieves all six. The KB is the only bridge between them.
The 0% baseline is definitional: two agents with no shared store cannot share information by construction. This is not an empirical measurement of a competing system.
The blackboard architecture
Alpha writes six decisions via iranti_write. Beta retrieves them cold via iranti_query. No message passes between agents — the KB is the only shared surface.
The evidence — 6-fact fidelity grid
Six project decisions written by Agent Alpha and retrieved by Agent Beta. Every value matches exactly. Amber = what Alpha wrote. Teal = what Beta retrieved.
| Key | Alpha wrote | Beta retrieved | Match |
|---|---|---|---|
| project/blackbox/architecture_decision | "microservices with event sourcing" | "microservices with event sourcing" | |
| project/blackbox/primary_language | "Go" | "Go" | |
| project/blackbox/deployment_target | "Kubernetes on GCP" | "Kubernetes on GCP" | |
| project/blackbox/team_size | 4 | 4 | |
| project/blackbox/estimated_completion | "Q3 2026" | "Q3 2026" | |
| project/blackbox/risk_level | "medium — third-party API dependency" | "medium — third-party API dependency" | |
| Total | 6 written | 6 retrieved | 6/6 |
All keys are under the project/blackbox/ namespace. Beta performed a cold query with no in-context knowledge of what Alpha had written.
Properties confirmed
Three storage-layer guarantees were observed on every retrieved fact, automatically — no application code required.
Honest limitations
source=agent_alpha is a label applied at write time, not a verified session identity. Both Alpha and Beta show as the same benchmark_program_main in iranti_who_knows. The attribution is useful but not cryptographically verified.Untested: conflict behavior
This benchmark did not test what happens when both agents write to the same key. That is the most significant gap for real multi-agent use.
In a production blackboard system, multiple agents may legitimately produce conflicting assessments of the same fact — different risk levels, different architecture preferences, different timeline estimates. How Iranti handles concurrent writes to the same key (last-write-wins, versioning, contested-fact flagging, or arbitration) determines whether it can serve as a reliable coordination substrate when agents genuinely disagree.
- →Alpha and Beta both write to
project/blackbox/risk_level— which value wins? - →Is the conflict surfaced as a contested fact, silently overwritten, or both versions retained?
- →Can a third agent read both versions and reason about the disagreement?
This gap will be addressed in a future benchmark. Until then, B8's result should be read as: Iranti can serve as a one-writer / many-readers coordination channel. Concurrent-write semantics are unknown from this data.
Key findings
source=agent_alpha was preserved end-to-end by the storage layer. Application code did not need to thread attribution manually through retrieval.validFrom timestamps were available on all six retrieved facts. A downstream agent can determine how old a decision is and weight it accordingly.v0.2.16 Update: True AgentId Attribution Confirmed
The original B8 test used source=agent_alpha — a text label attached at write time, not a verified identity. In v0.2.16 we re-ran using the correct mechanism: the agent parameter that tells Iranti which agent identity is issuing the write. With that in place, iranti_who_knows returns b8_agent_alpha — not the session-level identity of whoever ran the benchmark.
agent parameter correctly, iranti_who_knows returns the actual agent identity ( b8_agent_alpha) rather than the session default. Attribution tracks which logical agent wrote each fact, not which process submitted it.Full trial execution records, agent logs, decision payloads, and methodology notes in the benchmarking repository.