Blackboard
The blackboard is the shared state store used by agents in a swarm. It allows sub-agents to publish intermediate results, observations, and artifacts that other agents — including the root agent — can read during the same execution run.
What the blackboard is
In a multi-agent swarm, each sub-agent operates on a subtask independently. The blackboard is a key-value store scoped to the current swarm execution that enables agents to share data without direct communication. Think of it as a shared whiteboard in a meeting room — any participant can write to it and any participant can read from it.
The blackboard is not persistent — it lives only for the duration of the swarm execution. For long-term storage, agents should use the memory tools (memory_write, workspace_memory_write).
Reading and writing
Agents interact with the blackboard through two built-in tools:
| Tool | Description |
|---|---|
blackboard_write | Write a value to a named key on the blackboard |
blackboard_read | Read a value from a named key on the blackboard |
blackboard_list | List all keys currently on the blackboard |
Writing to the blackboard
A sub-agent writes its findings after completing its subtask:
// Sub-agent tool call
{
"tool": "blackboard_write",
"params": {
"key": "research_findings",
"value": {
"papers": [...],
"summary": "HNSW indexing reduces recall-latency tradeoff by 40%...",
"confidence": 0.9
}
}
}Reading from the blackboard
The root agent (or another sub-agent) reads the value after it has been written:
// Root agent tool call
{
"tool": "blackboard_read",
"params": {
"key": "research_findings"
}
}Scope and isolation
Each swarm execution has its own isolated blackboard namespace keyed by the swarm execution ID. Sub-agents from different concurrent swarms cannot read each other's blackboard entries. This ensures that parallel swarms do not interfere with each other.
Conflict detection
If two sub-agents write to the same blackboard key with significantly different values, the system detects a conflict and triggers the Debate Protocol. The root agent receives both values and a conflict indicator, and must resolve the conflict before synthesizing a final answer.
Root agent reading the blackboard
When all sub-agents have completed, the root agent typically reads the full blackboard to synthesize results. The root agent can instruct sub-agents to write to specific keys by passing blackboardKeys in the spawn call:
{
"tool": "spawn_agent",
"params": {
"agentId": "code-agent",
"task": "Write unit tests for the authentication module",
"blackboardKeys": {
"read": ["code_style_guide", "test_patterns"],
"write": ["test_suite_result"]
}
}
}Topic channels
For large swarms where broadcasting every write to every agent is noisy, the blackboard_topic tool provides named pub/sub channels. Sub-agents subscribe to specific topics and only receive updates relevant to their work. This reduces token usage and keeps each agent's context focused.
{
"tool": "blackboard_topic",
"params": {
"action": "subscribe",
"topic": "security_findings"
}
}Topics are scoped to the current swarm execution, just like regular blackboard keys.