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