A2A 初理解:让 AI Agent 真正“互相协作”的通用协议
最近在补 Agent 方向时,我发现一个很关键但容易被忽略的问题:
我们现在能很快做出“单个 Agent”,但真正难的是让多个 Agent 跨框架、跨团队、跨系统稳定协作。
A2A (Agent2Agent) 就是为这个问题设计的。
它可以简单理解为:给 Agent 之间定义一套“通用对话和协作协议”,让不同实现的 Agent 能互相发现能力、分配任务、流式回传结果,而不需要暴露彼此内部实现。
---
1. A2A 是什么
一句话版本:
A2A 是一个面向 Agent-to-Agent 通信的开放协议标准。
按官方文档的描述,它的目标是让不同框架、不同厂商、不同部署环境下的 Agent 互通协作,而不是把 Agent 只能当“工具调用”。
我自己理解它的价值在三点:
- 互操作:你用你的框架,我用我的框架,仍然能协同。
- 解耦:只约定协议,不要求共享内部 memory / tool / prompt 细节。
- 可工程化:可做发现、鉴权、状态管理、流式输出和异步通知。
2. 为什么现在需要 A2A
单 Agent 时代,主要是“用户 -> 一个 Agent -> 若干工具”。
但真实业务里越来越常见的是:
- 规划 Agent 负责拆任务。
- 检索 Agent 拉取知识。
- 执行 Agent 调系统 API。
- 审核 Agent 做校验与合规判断。
如果这些 Agent 没有统一通信协议,就会出现大量私有对接、重复适配和状态不一致问题。
A2A 的出现,本质上是在做一件基础设施级的事:
把“多 Agent 协作”从项目级 hack 变成可以复用的标准能力。
3. A2A 的核心对象(通俗版)
这块我用最工程化的方式记:
Agent Card:Agent 的“名片”。
它会声明自己是谁、提供什么能力、入口 URL、鉴权要求、技能列表等。
Task:任务对象,带生命周期状态(例如提交中、执行中、完成、失败等)。Message:交互中的一轮消息(user/agent 角色)。Part:消息/产物里的最小内容单元,可放 text、file、JSON 等。Artifact:任务产物(文档、结构化结果、文件等),可增量输出。
从建模上看,A2A 把“协作流程”和“数据载体”拆得比较清楚,这点对调试和观测非常重要。
4. 它怎么通信
从官方仓库和规范看,A2A 的通信基线比较务实:
- 基于
HTTP(S)+JSON-RPC 2.0。 - 支持同步请求/响应。
- 支持
SSE流式返回(长任务可以持续回传进度/增量结果)。 - 支持 Push/Webhook 异步通知(任务可能跑几分钟、几小时甚至更久)。
这套组合的好处是:
实现门槛不高,但能覆盖“快请求 + 长任务 + 断连场景”三种常见模式。
5. A2A 和 MCP 是什么关系
这是我最开始容易混淆的点。
可以这样记:
MCP主要解决 Agent 如何接工具和上下文(agent-to-tool)。A2A主要解决 Agent 和 Agent 怎么协作(agent-to-agent)。
它们不是替代关系,而是互补关系:
你可以让每个 Agent 内部用 MCP 接工具,然后让多个 Agent 之间用 A2A 协作。
6. 一个最小落地思路(面向工程)
如果你准备把 A2A 引入现有系统,我建议按这个顺序做:
- 先选 1 个高价值跨域流程(例如“需求解析 -> 代码生成 -> 安全检查”)。
- 给每个 Agent 补齐
Agent Card,把 skills 和 auth 说清楚。 - 先跑通同步 + SSE,不要一开始就上复杂推送链路。
- 引入任务状态观测(taskId、contextId、状态流转日志)。
- 最后再接 TCK 或兼容性测试,确保协议行为可验证。
这条路径的目标不是“立刻做大”,而是先得到一个能稳定复用的协作骨架。
7. 我目前的判断
我对 A2A 的判断是:值得尽早理解,但要渐进落地。
- 在多 Agent 场景里,它解决的是“结构性问题”而不是单点优化。
- 对中小团队最现实的收益,是减少私有对接成本、提升协作可维护性。
- 真正的难点不在协议本身,而在任务边界设计、状态治理和安全策略。
参考资料(官方)
- Google Developers Blog(A2A 首次发布,2025-04-09)
https://developers.googleblog.com/a2a-a-new-era-of-agent-interoperability/
- Google Developers Blog(Google Cloud 将 A2A 捐赠至 Linux Foundation,2025-06-23)
https://developers.googleblog.com/google-cloud-donates-a2a-to-linux-foundation/
- A2A 官方文档站(Linux Foundation 托管)
https://a2a-protocol.org/latest/
- A2A GitHub 主仓库
https://github.com/a2aproject/A2A
- A2A TCK(兼容性测试套件)
https://github.com/a2aproject/a2a-tck
- Vertex AI Agent Builder:Use an Agent2Agent agent(文档页标注 Preview)
https://docs.cloud.google.com/agent-builder/agent-engine/use/a2a
扩展阅读(社区索引)
- awesome-a2a(GitHub,生态清单)
https://github.com/ai-boost/awesome-a2a
- awesome-a2a(zdoc 中文镜像)
https://www.zdoc.app/zh/ai-boost/awesome-a2a