A2A(Agent-to-Agent Protocol)
Google 主导的开放协议,定义 Agent 间如何发现、通信和协作。已捐赠 Linux Foundation,100+企业参与,ACP 已并入。与 MCP 互补:MCP 管工具调用,A2A 管 Agent 协作。核心概念:Agent Card(能力声明)+ Task(有状态协作单元)。
定义
A2A(Agent-to-Agent)是 Google 主导发起的开放协议,定义分布式环境中 Agent 与 Agent 之间如何发现能力、委派任务和协作完成工作。
协议现状(截至2026年6月)
- 已捐赠给 Linux Foundation AI & Data
- 100+ 企业参与生态建设
- IBM 的 ACP(Agent Communication Protocol)已并入 A2A
- Google ADK(Agent Development Kit)v2.3.0 原生支持 A2A,Go 语言版本 v1.0.0 稳定发布——已进入跨语言生产可用阶段
核心概念
Agent Card
能力声明文档,托管在 /.well-known/agent-card.json,包含四个核心字段:
| 字段 | 含义 |
|---|---|
name | 我是谁 |
url | 在哪找我 |
skills | 能做什么 |
authentication | 怎么鉴权 |
Task
协作单元。一个 Agent 向另一个 Agent 发起 Task,Task 在生命周期中经历状态流转。简化模型:
text
submitted → working → completed
完整规范定义 8 种状态:submitted、working、completed、input-required、auth-required、failed、canceled、rejected。
通信层基于 HTTP + JSON-RPC 2.0 + SSE,核心方法 tasks/send。Task 可长期运行(数小时甚至数天),更接近工作流编排而非简单的请求-响应。
与 MCP 的关系
MCP 管"Agent 用什么工具",A2A 管"Agent 找谁协作"。 一个 Agent 可以同时是 MCP 客户端(调用工具)和 A2A 服务端(接受其他 Agent 的任务委派)。
在协议栈中的位置
ARD(发现)→ A2A(通信) → MCP(调用)
A2A 是三层栈中唯一有状态的层——发现和调用天然是"一问一答",而任务协调天然需要追踪进度。
引用本术语的文章