A2A protocol — agent-to-agent discovery, task, artifact
Client Agent
LangGraph? CrewAI? custom?
doesn't matter to A2A
sends A2A-Version: 1.0
Remote Agent
code-review-agent
opaque implementation
GET /.well-known/agent-card.json
Agent Card: skills, supportedInterfaces, securityRequirements
POST /message:send {message: {role: ROLE_USER, parts: [...]}}
200 {task: {id: baf1fc13, status: {state: TASK_STATE_SUBMITTED}}}
GET /tasks/baf1fc13 (poll)
TASK_STATE_COMPLETED, artifacts=[{parts: [{data: {...}}]}]
TASK_STATE_SUBMITTED → TASK_STATE_WORKING → TASK_STATE_COMPLETED
(or TASK_STATE_FAILED / TASK_STATE_CANCELED)
A2A (horizontal, agent↔agent) vs MCP (vertical, agent↔tool) — production uses both
150+ orgs by April 2026 · Google Vertex AI Agent Builder · Microsoft Agent Framework · LangGraph / CrewAI / AutoGen adapters