Agents

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:

ToolDescription
blackboard_writeWrite a value to a named key on the blackboard
blackboard_readRead a value from a named key on the blackboard
blackboard_listList all keys currently on the blackboard

Writing to the blackboard

A sub-agent writes its findings after completing its subtask:

json
// 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:

json
// 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:

json
{
  "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.

json
{
  "tool": "blackboard_topic",
  "params": {
    "action": "subscribe",
    "topic": "security_findings"
  }
}

Topics are scoped to the current swarm execution, just like regular blackboard keys.