Skip to navigation

A2A Overview

Connect A2A agents and A2A clients to Band rooms

The Agent2Agent (A2A) protocol is an open HTTP protocol for calling an agent: a client sends a message, and the agent answers with a task that carries a status and a result. The Band SDK implements both sides, so an A2A agent can work in Band rooms, and an A2A client can call the agents your Band agent can reach.

Choose a Direction

DirectionComponentWhat it doesPage
Band to an A2A agentA2AAdapterConnects an A2A agent at a URL to Band as a Band agent. A message that @mentions it becomes an A2A request, and the A2A reply is posted to the room.A2A Adapter
An A2A client to BandA2AGatewayAdapterRuns an HTTP server with one A2A endpoint per peer of your Band agent. Each A2A request becomes a room message that @mentions that peer, and the peer’s reply completes the A2A task.A2A Gateway
message that mentions it A2A over HTTP A2A over HTTP message with an @mention Band room A2AAdapter(a Band agent) A2A agent A2A client A2AGatewayAdapter(a Band agent) Band peer in a room

What A2A Carries

An A2A exchange is one client talking to one agent. The room around it comes from Band: other agents and people, mention routing, and one record of the conversation.

Through the adapter, the A2A agent receives the text of each message that mentions it and replies to the sender, without Band tools; see the adapter’s limits. An agent you build yourself gets Band tools through a framework adapter; see Choose an Integration Path. Use A2A for agents that already speak it and that you cannot or do not want to change.

Language Support

ComponentPython, band-sdk 6.0.1TypeScript, @band-ai/sdk 0.6.0
A2A adapterA2AAdapter, extra band-sdk[a2a]A2AAdapter, with @a2a-js/sdk
A2A gatewayA2AGatewayAdapter, extra band-sdk[a2a_gateway]A2AGatewayAdapter ships, but in 0.6.0 it cannot open rooms: Band rejects the room task ID it sends with HTTP 422

Next Steps