Ch15 Agent通信协议修订于 二〇二六年七月六日
MCP+A2A 双协议生态
一句话理解
MCP (Model Context Protocol) 管 Agent 连工具,A2A (Agent-to-Agent) 管 Agent 间通信。2026年这两个协议互补协作,形成了完整的 AI Agent 通信生态——MCP 解决”Agent 能做什么”的问题,A2A 解决”Agent 之间怎么协作”的问题。
为什么需要两个协议
AI Agent 在实际应用中面临两种截然不同的通信需求:
需求一:Agent 与外部工具/资源的连接
Agent 需要调用数据库、API、文件系统、搜索引擎等外部资源。这些资源是”被动的”——它们等待 Agent 来调用,不主动发起通信。MCP 正是为此设计:它定义了 Agent(Client)如何发现和调用工具(Server)的标准协议。
需求二:Agent 之间的协作通信
多个 Agent 需要互相发现、协商任务、传递中间结果、协调执行顺序。这种通信是”对等的”——每个 Agent 既是服务消费者也是服务提供者。A2A 协议为此设计:它定义了 Agent 之间如何通过 Agent Card 发现彼此,并通过 Task 机制进行异步协作。
需求对比
| 维度 | Agent-工具通信 (MCP) | Agent-Agent通信 (A2A) |
|---|---|---|
| 通信模式 | Client-Server(单向调用) | Peer-to-Peer(对等协作) |
| 发起方 | Agent 主动调用工具 | 任意 Agent 可发起 |
| 核心概念 | Tool, Resource, Prompt | Agent Card, Task, Message |
| 状态管理 | 无状态/工具自行管理 | Task 有明确生命周期 |
| 发现机制 | 工具列表注册 | Agent Card 发布 |
| 典型场景 | 查数据库、调API、读文件 | 多Agent协作、任务委派、结果聚合 |
| 2026年主流实现 | Claude Code, VS Code, Copilot | Google ADK, LangGraph, CrewAI |
双协议架构
在2026年的典型 AI 应用中,MCP 和 A2A 同时运行:
用户请求
└── 主 Agent (Orchestrator)
├── MCP Client ────────── MCP Server (数据库工具)
├── MCP Client ────────── MCP Server (搜索引擎工具)
├── MCP Client ────────── MCP Server (代码执行工具)
├── A2A ──────────────── 子 Agent A (数据分析)
├── A2A ──────────────── 子 Agent B (报告生成)
└── A2A ──────────────── 子 Agent C (质量检查)
工作流程
- 用户请求到达主 Agent
- 主 Agent 通过 MCP 调用工具获取数据(查数据库、搜索等)
- 主 Agent 制定执行计划,通过 A2A 将子任务委派给子 Agent
- 各子 Agent 独立通过 MCP 调用各自需要的工具
- 子 Agent 通过 A2A 将结果返回给主 Agent
- 主 Agent 聚合结果,通过 MCP 调用输出工具(写入文件、发送消息等)
2026年生态现状
MCP 生态
MCP 由 Anthropic 于2024年11月发布,到2026年已成为 Agent-工具通信的事实标准:
- Claude Code: 原生 MCP 支持,可通过 MCP Server 扩展工具能力
- VS Code / GitHub Copilot: 2025年宣布支持 MCP,2026年已广泛集成
- Cursor / Windsurf: 主流 AI IDE 均已支持 MCP
- MCP Server 市场: 社区贡献了数千个 MCP Server,覆盖数据库、云服务、办公工具等
A2A 生态
A2A 由 Google 于2025年4月发布,到2026年成为多 Agent 协作的主流协议:
- Google ADK (Agent Development Kit): 原生 A2A 支持,是 A2A 的参考实现
- LangGraph: 支持 A2A 作为 Agent 间通信协议
- CrewAI: 2025年底集成 A2A 支持
- Agent Card 注册中心: 多个厂商提供了 Agent Card 发现服务
生态对比
| 维度 | MCP (Anthropic) | A2A (Google) |
|---|---|---|
| 发布时间 | 2024年11月 | 2025年4月 |
| 协议类型 | Client-Server | Peer-to-Peer |
| 核心场景 | Agent调用工具 | Agent间协作 |
| 传输层 | stdio / HTTP SSE | HTTP + JSON-RPC |
| 安全模型 | OAuth 2.0 | 基于Agent Card的信任 |
| 主要推动者 | Anthropic, Microsoft | Google, LangChain |
| 开源状态 | 完全开源 (MIT) | 完全开源 (Apache 2.0) |
MCP 和 A2A 有重叠吗
各自管辖范围
| 场景 | 应该用哪个 |
|---|---|
| Agent 查询 PostgreSQL 数据库 | MCP |
| Agent 调用 Google Search API | MCP |
| Agent 读取本地文件 | MCP |
| 两个 Agent 协商任务分配 | A2A |
| Agent A 把中间结果传给 Agent B | A2A |
| 用户要求 Agent 通过自然语言完成任务 | 两者都用 |
| 单 Agent 调用多个工具链 | 仅 MCP |
| 多 Agent 流水线(pipeline) | 两者都用 |
边界情况
- Agent 调用另一个 Agent 的”工具”:如果另一个 Agent 暴露为 MCP Server,则用 MCP;如果是对等协作,则用 A2A
- Agent 之间的”简单数据传递”:如果数据量小且不需要任务管理,MCP Resource 机制可能够用;但涉及任务状态跟踪时,A2A 更合适
- 2026年趋势:两个协议在各自领域深耕,边界清晰,互补而非竞争
未来趋势
- 协议融合:MCP 和 A2A 可能在传输层融合(都基于 JSON-RPC),但保持各自的应用层语义
- 统一 SDK:开发者不需要分别理解 MCP 和 A2A 的细节,统一 SDK 自动选择协议
- Agent 市场:基于 A2A Agent Card 的 Agent 发现和交易市场
- MCP+A2A 联合认证:统一的身份认证和权限管理
- 企业级部署:MCP Gateway + A2A Registry 的企业级中间件
相关笔记
- 概念-MCP - Model Context Protocol 详解
- 概念-A2A - Agent-to-Agent 协议详解
- 第15章 · Agent 之间的通信协议 - Agent 通信协议章节
- 对比-MCPvsA2A - MCP 与 A2A 详细对比
- Function Calling 演化 - Function Calling 到 MCP 的演化路径
- 对话到 Agent 演化 - 从对话到 Agent 的演化
来源
- MCP 官方规范: https://spec.modelcontextprotocol.io/
- A2A 官方规范: https://a2a.google/
- Anthropic MCP 博客: https://www.anthropic.com/news/model-context-protocol
- Google A2A 博客: https://developers.googleblog.com/en/a2a-a-new-era-of-agent-interoperability/
- MCP vs A2A 对比分析: https://blog.langchain.dev/mcp-vs-a2a/