🤝 A2A 协议
A2A 协议 —— Agent 互联的"HTTP"
Google 于 2025 年 4 月发布的 Agent-to-Agent (A2A) 开放协议,定义了不同 AI Agent 之间如何相互发现、协商能力并协作完成任务。这是构建多 Agent 生态系统的基础设施。
🌐 Google 的 Agent-to-Agent 协议
A2A 协议由 Google DeepMind 主导设计,核心理念是将 Agent 之间的交互标准化,类似于 HTTP 标准化了 Web 服务之间的通信。A2A 协议基于以下设计原则:
- 去中心化:Agent 之间直接通信,无需中央编排节点
- 能力导向:每个 Agent 声明自己的能力(通过 Agent Card),其他 Agent 按需发现
- 任务驱动:以"任务"为交互单位,支持长运行任务、流式结果和状态查询
- 安全优先:内置认证、授权和审计机制
- 协议无关:底层传输可以使用 HTTP/gRPC 等,协议层保持一致
- 与 MCP 兼容:A2A Agent 可以通过 MCP 调用工具,两者互补共存
A2A 协议已在 GitHub 开源(google/A2A),采用 Apache 2.0 许可证。Google 同时发布了参考实现和开发者工具。目前已有 50+ 合作方加入 A2A 生态,包括 Atlassian、Box、Cohere、LangChain、MongoDB、Salesforce、SAP、ServiceNow 等。
🧩 A2A 核心概念
A2A 协议围绕以下三个核心概念构建:
🪪 Agent Card(能力名片)
每个 A2A Agent 通过 Agent Card 声明自己的身份和能力。Agent Card 是一个 JSON 文档,包含:
• Agent ID:唯一标识符
• 能力列表:该 Agent 能执行的任务类型
• 端点 URL:任务提交入口
• 认证方式:支持的认证机制
• 支持的技能:自然语言描述的能力
Agent Card 是 Agent 发现机制的基础,类似于 RESTful API 的 OpenAPI 规范。
📋 能力声明(Capability)
能力是 A2A 协议的核心抽象。每个 Agent 声明自己拥有的能力(Capability),其他 Agent 通过匹配能力来选择合适的协作者。
• 粗粒度能力:如"代码生成"、"数据分析"、"客服对话"
• 细粒度能力:如"Python代码审查"、"SQL查询优化"
• 动态能力:Agent 可以在运行时动态更新自己的可用能力
能力声明支持自然语言描述,使得 LLM 能够理解并匹配合适的 Agent。
🔄 任务编排(Task)
任务是 A2A 协议的交互单位。一个 Agent(Client)向另一个 Agent(Server)提交任务,并跟踪执行状态。
• 任务生命周期:Submitted → Processing → Completed/Failed
• 流式结果:支持 SSE 流式返回中间结果
• 子任务委托:Agent 可以将子任务委托给其他 Agent
• 事件通知:任务状态变更时推送事件
• 历史查询:支持查询已完成任务和获取 Artifact
🆚 MCP vs A2A 对比
MCP 和 A2A 是当前 Agent 生态中最重要的两个协议。理解它们的区别和互补关系,是构建复杂 Agent 系统的关键。
| 维度 | 🔌 MCP | 🤝 A2A | 关系 |
|---|---|---|---|
| 定位 | Agent ↔ 工具连接协议 | Agent ↔ Agent 协作协议 | 互补 |
| 发起方 | Anthropic(2024.11) | Google DeepMind(2025.04) | — |
| 通信模式 | JSON-RPC(请求-响应) | HTTP/JSON 任务模型(异步) | 不同 |
| 核心抽象 | Tools / Resources / Prompts | Agent Card / Capability / Task | 不同 |
| 传输层 | Stdio / HTTP+SSE / Streamable HTTP | HTTP / gRPC(协议无关) | 有重叠 |
| 发现机制 | 配置文件静态声明 | Agent Card 动态发现 | A2A 更灵活 |
| 安全模型 | OAuth 2.0(计划中) | 内置认证/授权/审计 | A2A 更完整 |
| 生态成熟度 | 🟢 2000+ Server,14K+ Star | 🟡 50+ 合作方,早期阶段 | MCP 更成熟 |
| 典型场景 | Agent 调用数据库、API、文件系统 | 多 Agent 协作、专家 Agent 委托 | 互补 |
| 桥接方案 | — | A2A Agent 可通过 MCP 调用工具 | 协同工作 |
A2A 和 MCP 不是竞争关系,而是互补关系。MCP 解决的是 Agent 如何调用工具的"纵向"问题,A2A 解决的是 Agent 之间如何协作的"横向"问题。可以这样类比:MCP 是 Agent 的 USB-C 接口(连接外设),A2A 是 Agent 的 HTTP 协议(连接其他服务)。一个 Agent 完全可以在使用 MCP 调用工具的同时,通过 A2A 与其他 Agent 协作。Google 也明确表示 A2A 可以与 MCP 共存,两者目标不同。
📣 行业反响
A2A 协议发布后获得了产业界的广泛关注。以下是一些关键厂商和社区的反应:
✅ 积极支持
- Atlassian:宣布在 Jira/Confluence 中集成 A2A
- LangChain:发布 A2A 集成指南和 SDK 封装
- Salesforce:Agentforce 平台规划 A2A 支持
- SAP:企业级 Agent 通过 A2A 互联
- ServiceNow:IT 运维 Agent 的 A2A 集成
🤔 观望/谨慎
- OpenAI:未正式表态,聚焦自身 Agent 框架
- Anthropic:更关注 MCP 生态,A2A 优先级未定
- Meta:未明确加入 A2A 生态
🔮 社区评价
- 标准化呼声高:开发者期望统一标准而非碎片化
- A2A+MCP 组合被看好:两者互补的模式获得认可
- 担忧碎片化:MCP、A2A、ANP 等多个协议并存可能增加复杂度
- 期待更多实现:A2A 需要更多实际落地案例
🔮 展望
A2A 协议仍处于早期阶段,但它的出现标志着 Agent 生态正在从"单兵作战"走向"协作网络"。随着更多厂商加入 A2A 生态,我们可以期待:
- Agent 市场:类似 API 市场的 Agent 能力交易平台
- 动态 Agent 编排:主 Agent 根据任务需求动态发现并调用专家 Agent
- 跨组织协作:企业内部 Agent 与外部服务 Agent 的标准化协作
- MCP+A2A 协同:A2A Agent 通过 MCP 调用工具的标准模式