🤝 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 调用工具,两者互补共存
📌 Google A2A 协议仓库

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 调用工具的标准模式