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.

Informações da origem

Repositório
javimosch/a2a-skill
Última atividade na origem
19 de julho de 2026 às 13:17
Idioma detectado do SKILL.md
inglês
Estrelas
7
Forks
0

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
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) |
Ver no GitHub