A2A (Agent-to-Agent Protocol) 深度分析报告
一句话总结
Google 发起、Linux Foundation 治理的 Agent-to-Agent 开放通信协议(v1.0.0 GA),定义了 AI Agent 间作为不透明对等实体协作的互操作标准,与 MCP(Agent-to-Tool)互补,填补了 Agent 生态中「Agent 间如何对话」的关键空白。
值得关注的理由
- AI Agent 互操作的行业级标准:8 家科技巨头(Google/Microsoft/AWS/Salesforce/SAP/IBM/Cisco/ServiceNow)组成 TSC,170+ 合作伙伴,DeepLearning.AI 合作课程——这是 Agent 生态最高规格的标准化努力
- 「Agents Are Not Tools」的设计哲学:区别于 MCP 的 Agent-to-Tool 定位,A2A 将 Agent 视为不透明的对等实体,支持多轮对话、状态追踪和异步任务——这是面向 Agent 时代的协议设计范式
- Proto-First 规范设计的教科书:796 行 proto 文件为唯一规范性定义,三种协议绑定(JSON-RPC/gRPC/HTTP+JSON)保证语义等价,分层架构(Data Model → Operations → Bindings)是协议设计的最佳实践
项目画像
| 维度 | 数据 |
|---|---|
| GitHub | https://github.com/a2aproject/A2A |
| Star / Fork | 22,712 / 2,307 |
| 代码行数 | 10,096(协议规范项目,核心是 proto 796 行 + spec 3,585 行) |
| 项目年龄 | 11.5 个月(首次提交 2025-04,v1.0.0 GA 2026-03-12) |
| 开发阶段 | v1.0 成熟稳定期(从快速迭代进入稳定维护) |
| 贡献模式 | Google 主导 + 多厂商 TSC 治理(核心维护者 holtskinner ~40%) |
| 热度定位 | 大众热门(Agent 互操作赛道唯一标准级项目) |
| 质量评级 | 规范[优秀] 文档[优秀] 测试[起步] |
作者视角:为什么存在这个项目
创始人/作者背景
由 Google 发起(Todd Segal, Principal Engineer 主导),核心维护者 Holt Skinner(Google Cloud AI Developer Advocate,~40% 提交)。2025 年底捐赠给 Linux Foundation,成立 Agentic AI Foundation 独立治理。TSC 8 席位代表 Google/Microsoft/AWS/Salesforce/SAP/IBM/Cisco/ServiceNow,是科技行业最强阵容的协议治理委员会。5 个官方多语言 SDK(Python/JS/Java/Go/.NET),Python SDK 维护者最多(20 人),.NET SDK 由 Microsoft 核心贡献者主导。
问题判断
AI Agent 生态碎片化——LangGraph、CrewAI、ADK、AutoGen 构建的 Agent 无法互相通信,只能将 Agent 包装成 Tool 勉强协作。Google 判断:Agent 间的互操作标准将成为 AI 基础设施的关键缺失层,类似于 HTTP 之于 Web、gRPC 之于微服务。时机在 2025 年——Agent 从概念验证进入生产部署,互操作需求从「nice to have」变为「must have」。
解法哲学
「Agents Are Not Tools」:
- 选择做:将 Agent 视为不透明对等实体,支持多轮对话、状态机、异步任务、push notification
- 选择不做:不定义 Agent 内部实现(prompt/memory/tools)、不做编排框架、不与 MCP 竞争(明确互补定位)
- Proto-First:proto 文件为唯一规范性定义,三种 binding 从 proto 派生,确保语义等价
- 标准化而非发明:认证复用 OAuth2/OIDC,错误模型复用 google.rpc.Status,URI 发现复用 RFC 8615
战略意图
Google 在 AI 标准层面的战略布局——通过捐赠给 Linux Foundation 降低竞争对手抵触,同时确保 Google 的 API 设计理念(AIP/proto-first)成为行业事实标准。与 Google ADK(Agent Development Kit)形成「标准+工具」的双层战略。
核心价值提炼
创新之处
-
Opaque Agent 范式(新颖度 5/5,实用性 5/5,可迁移性 5/5) Agent 作为黑盒协作,无需暴露内部实现——真正面向 Agent 时代的协议哲学
-
三种更新机制的统一数据模型(新颖度 4/5,实用性 5/5,可迁移性 4/5) Polling/Streaming(SSE)/Push Notification 共用同一套 StreamResponse,客户端按场景灵活选择
-
Agent Card 去中心化发现(新颖度 4/5,实用性 5/5,可迁移性 5/5) Well-Known URI + 自描述能力 + JWS 签名 + 分层信息披露——Agent 时代的 DNS+SSL
-
Extension 治理生命周期(新颖度 4/5,实用性 4/5,可迁移性 5/5) Proposal → Experimental → Official → Core 的毕业路径,允许社区创新而不碎片化核心标准
-
llms.txt AI-First 文档(新颖度 3/5,实用性 3/5,可迁移性 5/5) 面向 LLM 的协议摘要,方便 AI 助手理解协议内容
可复用的模式与技巧
- 分层规范架构:Data Model → Abstract Operations → Protocol Bindings——任何多传输协议标准的设计范本
- Agent Card / Well-Known URI 发现模式:标准化 JSON 元数据 + Well-Known URI 实现去中心化服务发现
- ADR(Architecture Decision Record)流程:模板化决策记录,开源项目架构透明化的范本
- TSC 多厂商治理模型:8 家公司 + Linux Foundation + 18 个月 Startup Phase——企业级开源协议的可复用治理框架
- Proto-First 多绑定等价:proto 为唯一 normative source,自动生成 SDK/Schema/文档——消除 specification drift
- 版本协商机制:
supportedInterfaces[]独立声明 protocolVersion,客户端选择兼容版本
关键设计决策
| 决策 | Trade-off |
|---|---|
| ProtoJSON 序列化(ADR-001) | 跨语言工具链成熟 + 确定性演进,但 enum 从 kebab_case 变为 SCREAMING_SNAKE_CASE 不直观 |
| Task 不可变性(终态后不可重启) | 大幅简化实现和追踪,但限制了「重试上次任务」的场景 |
| Proto-First(非 OpenAPI-First) | 同时生成 gRPC 和 REST 绑定,但 proto 生态对 Web 开发者不如 OpenAPI 友好 |
| 与 MCP 互补而非竞争 | 清晰的定位边界,但也意味着 Agent 需要同时实现两个协议 |
竞品格局与定位
竞品对比矩阵
| 维度 | A2A | MCP (Anthropic) | LangGraph/CrewAI | OpenAI Agents SDK |
|---|---|---|---|---|
| 定位 | Agent-to-Agent 协议 | Agent-to-Tool 协议 | Agent 编排框架 | Agent 开发工具 |
| 标准化 | 开放标准(LF) | 开放标准 | 框架级 | 供应商锁定 |
| 传输 | HTTP/gRPC/JSON-RPC | stdio/HTTP/SSE | 进程内 | HTTP |
| 状态管理 | Task 状态机 + contextId | 无状态 | Graph State | 内部 |
| 多轮对话 | 原生支持 | 不支持 | 框架内 | SDK 内 |
| 企业就绪 | 完整安全/治理 | 基础 | 需自建 | 依赖平台 |
| 治理 | LF TSC(8 家大厂) | Anthropic 主导 | 各自维护 | 闭源 |
差异化护城河
- 唯一的 Agent-to-Agent 开放标准:定义了 Agent 间互操作的规范层,与 MCP 互补而非竞争
- 最高规格的治理阵容:8 家科技巨头 TSC + Linux Foundation,竞品难以复制的行业背书
- Proto-First 设计深度:三层架构 + 三种 binding 等价 + buf 工具链,协议设计质量极高
竞争风险
- MCP 扩展:如果 Anthropic 将 MCP 扩展为支持 Agent-to-Agent 场景,A2A 的独特性将被削弱
- 框架内置协作:LangGraph/CrewAI 等框架如果定义自己的 Agent 间通信标准,可能形成事实标准
- 采纳速度:协议标准的价值完全取决于采纳规模,v1.0 刚发布 10 天,真实生产部署仍需观察
生态定位
AI Agent 基础设施栈的「通信层」——类似于 HTTP 之于 Web、gRPC 之于微服务。A2A 不替代任何 Agent 框架,而是定义了框架之间如何互操作。与 MCP 的关系用「汽修店」比喻:A2A 处理店员间对话协作,MCP 处理技师与诊断工具交互。
套利机会分析
- 信息差: 中等。22.7K Star 已有知名度,但大多数开发者只知道「Google 的 Agent 协议」而未深入理解与 MCP 的精确互补关系和 Proto-First 设计决策
- 技术借鉴: 分层规范架构、Agent Card 发现模式、Proto-First 多绑定等价、Extension 治理生命周期——每项都是协议设计的最佳实践
- 生态位: Agent-to-Agent 互操作的唯一标准级方案,v1.0 刚发布正处于关键窗口期
- 趋势判断: AI Agent 从单体走向协作是确定趋势,A2A 的方向正确。但能否成为事实标准取决于 SDK 生态和首批生产级部署案例
风险与不足
- ADR 覆盖不足:仅 1 个正式 ADR(ProtoJSON),大量关键设计决策未记录
- TCK(一致性测试)尚在起步:缺少 SDK 一致性验证工具,各实现可能存在语义偏差
- Extension 生态薄弱:机制设计精良但仅 4 个示例 extension,实际扩展生态待发展
- Google 迁移痕迹:proto 的 Go 包名仍使用
google.golang.org/lf/a2a/v1,迁移未完全完成 - 真实生产部署未知:v1.0 发布仅 10 天,170+ 合作伙伴的实际集成深度待验证
- Proto 对 Web 开发者不友好:ProtoJSON 的 SCREAMING_SNAKE_CASE enum 等设计增加了前端开发者的学习成本
行动建议
- 如果你要用它: 从 Python SDK(a2a-python)开始,实现一个简单的 Agent Card + Task Handler。注意 A2A 与 MCP 互补——你的 Agent 可以同时是 A2A Server(对外协作)和 MCP Client(内部工具调用)
- 如果你要学它: 重点关注
specification/a2a.proto(796 行核心定义)、specification/specification.md(完整协议规范)、adrs/(架构决策记录)、docs/topics/agent-card.md(发现机制设计) - 如果你要 fork 它: (1) 补充关键设计决策的 ADR 文档;(2) 建设 TCK 一致性测试套件;(3) 扩展 Extension 生态(AI 安全审计、可观测性、Agent 评估等方向)
知识入口
| 资源 | 链接 |
|---|---|
| DeepWiki | deepwiki.com/a2aproject/A2A |
| Zread.ai | 待验证 |
| 关联论文 | 无(协议标准,非学术研究) |
| 在线 Demo | 无(协议规范项目) |
| 官方文档 | a2aproject.github.io/A2A |
| Python SDK | github.com/a2aproject/a2a-python |
| DeepLearning.AI 课程 | deeplearning.ai(合作课程) |
| CHANGELOG | changelog |