A2A Protocol
Enable OpenClaw Agent to communicate with other AI Agents using the A2A (Agent2Agent) protocol - an open standard by Google for inter-agent communication.
Quick Start
Calling a Remote Agent (Client Mode)
python ~/.openclaw/workspace/skills/a2a-protocol/scripts/a2a_client.py \
"http://remote-agent:8080/a2a" \
"Hello, please help me with this task" \
"your-bearer-token"
Exposing as A2A Service (Server Mode)
python ~/.openclaw/workspace/skills/a2a-protocol/scripts/a2a_server.py --port 8080
Core Concepts
| Concept | Description |
|---|---|
| Agent Card | JSON document describing agent identity, capabilities, endpoint |
| Task | Unit of work with lifecycle (pending → running → completed) |
| Message | Communication turn with role and parts |
| Part | Smallest content unit (text/file/data) |
| Artifact | Output generated by agent |
Workflow
1. Agent A (Client) 2. Agent B (Server)
│ │
│ GET /.well-known/agent.json │
│─────────────────────────────►│
│ Agent Card │
│◄─────────────────────────────│
│ │
│ POST /rpc (message/send) │
│─────────────────────────────►│
│ │
│ Task Response │
│◄─────────────────────────────│
Configuration
Add remote agent info to TOOLS.md:
### A2A Agents
- Remote Agent Name:
URL: http://1.2.3.4:8080/a2a
Token: your-bearer-token
Resources
scripts/
a2a_client.py- A2A client for calling remote agentsa2a_server.py- A2A server for exposing OpenClaw as a serviceagent_card.json- Agent Card template
references/
a2a-api.md- Complete A2A API reference
Troubleshooting
Connection Failed
- Check network reachability (ping/telnet)
- Verify firewall allows the port
- Confirm token is correct
Agent Card Not Found
- Ensure remote agent's A2A server is running
- Check URL includes correct path