Skip to main content

a2a

Spawn a team of agentic-CLI sessions (claude, opencode, pi, tau, ...) that talk to each other as peers via a shared SQLite message bus at ~/.a2a/{project}/database.db. No central chain of command — each agent decides who to message. Use when the user wants multiple AI sessions to collaborate, debate, or divide work without a fixed orchestrator.

Quellinformationen

Repository
javimosch/a2a-skill
Letzte Quellaktivität
19. Juli 2026 um 13:17
Erkannte Sprache von SKILL.md
Englisch
Sterne
7
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
a2a
description
Spawn a team of agentic-CLI sessions (claude, opencode, pi, tau, ...) that talk to each other as peers via a shared SQLite message bus at ~/.a2a/{project}/database.db. No central chain of command — each agent decides who to message. Use when the user wants multiple AI sessions to collaborate, debate, or divide work without a fixed orchestrator.
trigger
/a2a
# a2a — Agent-to-Agent Messaging > **This doc is a pointer.** The canonical skill document lives at > [`.agents/skills/a2a/SKILL.md`](.agents/skills/a2a/SKILL.md). > See [docs/AGENTS.md](docs/AGENTS.md) for ownership and maintenance rules. That file contains: three usage patterns, the Pattern 3 spawn protocol, kit prompt template, smoke test recipe, honesty rules, and common pitfalls from smoke testing. ## Quick reference ``` a2a init # create project database a2a register alice --role dev # register an agent a2a send bob "hello" --from alice # direct message a2a send all "broadcast" --from a # broadcast a2a recv --as bob --wait 30 # receive messages (blocks up to 30s) a2a peek --json # observer view a2a search <query> --json # search messages a2a thread <id> # view thread a2a stats --json # bus statistics a2a status done --as bob # mark agent done a2a clear --yes # wipe database ``` **Flags:** `--project NAME` (overrides `$A2A_PROJECT` > basename of cwd) ## Field Learnings & Pitfalls ### Model availability breaks teams Teams can't start if the model is unavailable. OpenRouter rate-limits killed the first spawn attempt silently. **Always have a fallback provider** (Xiaomi, local Ollama) configured in opencode.json. Test your model before spawning: ```bash opencode run -m <provider/model> "echo ok" --dangerously-skip-permissions 2>&1 | head -5 ``` If the fallback is weaker, keep kit prompts simpler — shorter context, fewer steps. ### Kit prompts must be self-contained Agents have **no shared context** outside what you put in the kit file. Each kit must include: - Full project paths (`/home/user/project/...`), not relative ones - Exact binary locations (`/home/user/.local/bin/a2a`) - All environment assumptions (which tools are installed, aliases available) - The other agent's name and role (so they know who to message) - Timeout values for `a2a recv --wait N` (60-120s is safe) Missing any of these causes agents to stall waiting for information that was never given. ### The two-agent pattern (tester/fixer) is reliable Lead-tester does the work, fixer waits for a report. This prevents both agents from stepping on each other. After the handoff, both should mark `status done`. ``` lead-tester → runs tests → reports → fixer → analyzes → responds → both done ``` ### Monitor via logs, not just the bus Agents write stdout to `/tmp/a2a-{agent-name}.log`. This is essential for debugging stalled agents: ```bash tail -f /tmp/a2a-lead-tester.log tail -f /tmp/a2a-fixer.log ``` The bus only shows final messages, not the agent's internal reasoning or intermediate failures. ### PID management is fragile `a2a-spawn` returns a PID, but the process can die silently (model error, timeout, crash). Always verify: ```bash kill -0 $PID 2>/dev/null || echo "Agent died" a2a list --project <name> # shows active/done status ``` If an agent dies before spawning, `a2a-spawn` won't tell you — you have to check the log file. ### Register first, then spawn, then upsert Pattern 3 requires: 1. `a2a register agent-name --role X --project Y` — creates the bus identity 2. `a2a-spawn --id agent-name --project Y ...` — starts the process 3. `a2a register agent-name --pid $PID --upsert --project Y` — links process to identity If you skip step 3, the agent shows as `active` but has no PID — you can't tell if it's alive. ### Clear the bus between runs Old messages confuse new agents. Always `a2a clear --project <name> --yes` before a fresh team spawn. ### One-way communication is enough For task-execution teams, agents don't need to debate. lead-tester sends a report, fixer acknowledges. No back-and-forth required. Keep it linear. ## Further reading by audience | Audience | Start with | |----------|------------| | **AI agents** on this repo | [`AGENTS.md`](AGENTS.md) — full repo guide, common pitfalls, protocols | | **Doc maintainers** | [`docs/AGENTS.md`](docs/AGENTS.md) — ownership table, adding/removing docs | | **Example authors** | [`examples/AGENTS.md`](examples/AGENTS.md) — patterns, client choice, rules | | **Shell completion** | [`completion/AGENTS.md`](completion/AGENTS.md) — Bash/Zsh setup and maintenance | | **Rust developers** | [`src/AGENTS.md`](src/AGENTS.md) — library API, build instructions | | **Human users** | [`README.md`](README.md) — install, CLI cheatsheet, test info | | **New VM/operator adding debri** | [`.agents/skills/a2a-debri-runbook/SKILL.md`](.agents/skills/a2a-debri-runbook/SKILL.md) — install+auth devin, get debri, wire into a2a-spawn, smoke test | | **New VM/operator adding Cursor Agent CLI** | [`.agents/skills/a2a-cursor-runbook/SKILL.md`](.agents/skills/a2a-cursor-runbook/SKILL.md) — install+auth `agent`, wire into a2a-spawn, smoke test (no wrapper needed) |
Auf GitHub ansehen