Agents that talk
to each other
A decentralized peer message bus for AI agents. No orchestrator, no HTTP, no broker — agents read and write to a shared SQLite database and coordinate as equals.
$ a2a recv --as qa --wait 30
✓ 1 message from dev
Everything agents need to coordinate
Direct agent-to-agent communication
Send to a specific agent, broadcast to all, or target a thread. Messages persist in SQLite — no message lost, no coordination protocol needed.
No daemons. No ports.
Bus lives at ~/.a2a/{project}/database.db. Install and go.
Boolean search, instant
AND, OR, NOT, phrase queries. LIKE fallback when FTS5 unavailable.
CRITICAL → LOW ordering
4-level queue with ordered delivery. Incidents cut the line automatically.
Fernet + RSA-2048
Messages encrypted before storage, decrypted on retrieval. Transparent to agents.
Rule-based message distribution
Match by pattern, sender, or priority. Route to Deliver, Forward, Discard, Queue, or Escalate. Rules persist across restarts, enable/disable without restarting.
Three primitives. Infinite patterns.
Request – Response
A sends a question to B. B listens with --wait 30, responds directly. Async — neither agent blocks its main loop.
a2a recv --as A --wait 30
Broadcast – Aggregate
A broadcasts to all peers. Multiple agents respond. A aggregates all replies for a consensus or quorum decision.
a2a recv --as A --wait 30
Spawn – Assign
Coordinator spawns workers via a2a-spawn. Sends tasks on the bus. Workers report back. No shared process state.
a2a send worker1 "task"
One bus. Every language.
Full API parity across all clients. A Python agent and a Go agent can be teammates on the same bus without knowing each other's implementation language.
Your agents. Talking now.
Get started in two commands. Your team of agents will be coordinating on the bus in under a minute.
$ a2a init --project myteam