Documentation
¶
Overview ¶
a2a-server starts an in-process A2A server around a real local Agent, then calls it through the A2A client.
v1 host shape: the bridge takes an adaptor.Runner. Passing the *Agent plus Session: a2a.ThreadByContextID() makes each distinct A2A contextID a conversation of its own using a collision-free, namespace-encoded Thread key, so follow-up messages in the same context continue where they left off. Swap in a2a.Stateless() (the default) for one-shot task servers.
The A2A wire DTO is deliberately unchanged by the v1 rewrite: remote peers still see adapter.stream.v1 envelopes, so the client half of this example decodes exactly what it always did.
Usage:
go run ./examples/a2a-server -agent=codex go run ./examples/a2a-server -agent=claude -prompt="Reply with one sentence" go run ./examples/a2a-server -serve-only -addr=127.0.0.1:8080
The example requires the selected local CLI in PATH and existing authentication.