Agent-to-Agent (A2A)
Let agents call other agents — delegate tasks, build multi-agent pipelines, and expose your agent as an API.
Agent-to-Agent (A2A)
A2A lets agents communicate directly with each other. One agent can send a task to another and use its response — just like calling a tool, but the "tool" is another AI agent.
This enables specialist agents (researcher, writer, coder) that a manager agent can route to based on the task.
How it works
Every agent publishes an Agent Card — a public JSON document describing what it can do. Other agents (and external systems) discover this card and send tasks using JSON-RPC 2.0.
Agent Card
Every agent has a public card at:
Example:
Defining skills
Skills are the capabilities you expose via A2A. Define them in your agent config:
Studio → Agent Editor → A2A tab → Add Skill
Send a task to another agent
Use JSON-RPC 2.0:
Response:
Message parts
A2A messages support mixed content — text, files, and structured data in one message:
| Part type | Fields | Use for |
|---|---|---|
text | text: string | Instructions, questions |
file | mimeType, data (base64) or uri | Documents, images, PDFs |
data | data: object | Structured JSON input |
Example with a file:
Streaming task results
For long-running tasks, subscribe to updates:
Set up preferred connections
Tell your agent to prefer routing specific work to another agent:
When the manager agent decides it needs research, it knows to delegate to the researcher.
Multi-agent pattern example
Each specialist has focused instructions and tools. The manager orchestrates without knowing implementation details.
External agents
External agents from other platforms can call your agents using the same protocol, as long as their platform implements the A2A spec:
- They fetch your agent card at
/.well-known/agent.json?agentId=<id> - They read the
urlfield - They POST JSON-RPC 2.0 to that URL with
x-api-keyin the header
You can also browse and call external agents registered in Agent Commons at: