Peer-to-peer A2A for Amplifier, with a human in control
An Amplifier session is capable on its own machine, but isolated. amplifier-bundle-a2a (microsoft/) implements Google's A2A protocol over peer-to-peer HTTP so two sessions can finally discover, message, and collaborate.
The capability is real — and it is substantial.
This is production Python across two shipped modules — a client tool and a server hook — with a substantial test suite, built over months of commits.
So how do two sessions actually reach each other?
Each session serves an Agent Card and receives messages directly over aiohttp. Peers talk to each other, not through a hub.
But opening that door has a cost.
Opening a peer-to-peer door is dangerous. Letting a remote agent talk to yours means letting it reach your machine — connection without control is a liability, not a feature.
So the first thing the bundle does is nothing.
The server is inert until you explicitly enable it per directory. Even then, a sender you haven't approved goes nowhere. Nothing runs until you say so.
Once a peer is let in, the next question is how much it can do.
Once a peer is let in, its power is set by trust tier. Trusted peers get autonomy and full tools; known peers are scoped to tool-filesystem and tool-search. The sender doesn't get to choose.
That scoping is what makes autonomous answers safe.
tool-filesystem + tool-search*A trusted message is answered in a sandboxed child session scoped to its tier. If a confidence check fails, the answer is discarded and escalated to the human — and attribution records who really replied.
So collaboration never costs control.
Connection is the easy part. Control is the design. Dormant, blocked, scoped, confidence-checked, attributed — at every step the default keeps a human in charge.
Connection is easy; control stays human.
Data as of: 2026-06-15 (most recent commit). Feature status: Active — implemented and shipped.
Repository: microsoft/amplifier-bundle-a2a, branch main, HEAD 14e5cc6. Verified from a fresh clone whose remote is the primary source repo; no local working copy exists under /home/ramparte/dev/ANext.
Research performed:
gh repo view microsoft/amplifier-bundle-a2agit log --oneline | wc -l (28); first/most-recent via git log --reverse --format="%ai %an %s"git shortlog -sne --all → Brian Krabach 25, Salil Das 3find ./modules -name '*.py' -not -path '*/tests/*' | xargs wc -l (2,328)grep -rh 'def test_' --include='*.py' . | wc -l (308) across 21 filesgrep of server.py router + from aiohttp import web_get_tools_for_tier in server.py + README trust_tiersgh pr list --repo microsoft/amplifier-bundle-a2a --state all (6 merged: #1,#2,#3,#4,#7,#8)Gaps / caveats: README documents 290 tests; measured current count is 308 (cited). README references a demo_a2a.py that is absent from the repo tree — no runnable demo shipped. Tests were counted statically (def test_), not executed.
Primary contributors: Brian Krabach (25 of 28 commits), Salil Das (3).