MCP 与 A2A:智能体协议栈完全指南
MCP 给了 Agent 手和脚,A2A 让 Agent 能和其他 Agent 协作。两者不是竞争关系,而是分层协作。
2026 年的三层协议栈
┌─────────────────────────────────┐
│ WebMCP(Web 接入层) │ Agent ↔ 浏览器
├─────────────────────────────────┤
│ A2A(智能体协作层) │ Agent ↔ Agent
├─────────────────────────────────┤
│ MCP(工具接入层) │ Agent ↔ 工具/数据
└─────────────────────────────────┘
理解这个分层,是理解当前 Agent 生态的钥匙。
MCP:AI 工具的 USB-C
MCP(Model Context Protocol)由 Anthropic 于 2024 年 11 月发布,标准化的"Agent 如何连接外部工具和数据源"。
一个恰当的类比:USB-C for AI tools。
三大原语
原语 | 说明 | 类比 |
|---|
Tools | Agent 可调用的函数 | 方法 | Resources | 只读数据源 | 文件 | Prompts | 可复用的系统指令 | 模板 |
架构:客户端-服务器模型MCP Client(Agent)
│ 发送请求访问工具或数据
↓
MCP Server(工具封装层)
│ 暴露能力:文件访问、数据库查询、API 调用
↓
实际后端
通信:JSON-RPC 2.0 over stdio(本地)或 HTTP + SSE(远程)。 MCP 工具定义示例{
"name": "search_documentation",
"description": "在公司文档中搜索相关章节",
"inputSchema": {
"type": "object",
"properties": {
"query": { "type": "string", "description": "搜索查询" },
"max_results": { "type": "integer", "default": 5 }
},
"required": ["query"]
}
}
2026 年的生态数据指标 | 数值 | 时间 |
|---|
SDK 月下载量 | 9700 万(Python + TypeScript) | 2026 年 3 月 | 增长率 | 相比发布时增长 970 倍 | — | 企业采用率 | 78% 的企业 AI 团队 | 2026 年 7 月 | 可用 MCP server | 500+ | 2026 年中 |
治理:2025 年 12 月,Anthropic 将 MCP 捐赠给 Linux Foundation 下的 Agentic AI Foundation(AAIF),OpenAI 和 Block 作为共同创始,AWS、Google、Microsoft、Cloudflare、GitHub、Bloomberg 为支持成员。 A2A:Agent 之间的 HTTPA2A(Agent-to-Agent Protocol)由 Google 于 2025 年 4 月捐赠给 Linux Foundation。 标准化的"Agent 如何与另一个 Agent 通信"。 三大概念概念 | 说明 |
|---|
Agent Cards | 发布在 /.well-known/agent.json 的能力描述 | Tasks | 有状态工作项,生命周期:created → accepted → in-progress → completed/failed | 消息交换 | P2P,不要求任一方信任中央 broker |
Agent Card 示例{
"name": "DataAnalysisAgent",
"description": "分析数据集并生成可视化",
"url": "https://agents.example.com/data-analysis",
"capabilities": {
"streaming": true,
"pushNotifications": true
},
"skills": [
{
"id": "csv-analysis",
"name": "CSV Data Analysis",
"description": "分析 CSV 并生成汇总统计"
}
]
}
A2A 生态数据指标 | 数值 | 时间 |
|---|
支持组织 | 150+ | 2026 年 4 月(一周年) | GitHub stars | 22,000 | 2026 年 4 月 | SDK | Python / JavaScript / Java / Go / .NET | — | 集成 | Azure AI Foundry、Copilot Studio、AWS Bedrock AgentCore、Google Vertex AI | — |
A2A v0.3(2026 年 3 月)新增 gRPC 支持和安全签名。 逐项对比维度 | MCP | A2A |
|---|
连接什么 | Agent ↔ 工具/资源 | Agent ↔ Agent | 治理形态 | 层级式(Agent 发起) | 对等式 | 传输 | JSON-RPC 2.0(stdio/HTTP/WebSocket) | HTTP + JSON-RPC,gRPC(v0.3) | 发现机制 | 服务端配置(手动或注册表) | Agent Cards | 任务模型 | 请求-响应 + 通知 | 任务生命周期 | 认证 | 取决于传输方式 | API Key / OAuth2 / mTLS | 适用 | 工具集成、数据访问 | 多 Agent 编排、任务委派 |
一个具体例子:修车这个例子能说明两者如何配合: 【4S 店的客服 Agent】需要和【独立修理厂的诊断 Agent】协调预约
│
│ 通过 A2A:createTask("为 VIN 12345 预约诊断")
↓
【修理厂的车间经理 Agent】 ← 由修理厂拥有,不是 4S 店的
│
│ 通过 MCP 调用自己的工具:
│ check_availability() → reserve_slot() → send_confirmation()
↓
【技师 Agent】 ← 又是 A2A
│
│ createTask("VIN 12345 下午 2 点做诊断")
│
│ 通过 MCP 调用自己的工具:
│ scan_obb2() → log_fault_codes() → estimate_cost()
↓
每个 Agent 用 MCP 访问自己的工具(日历、诊断、邮件),用 A2A 跨越信任边界通信(4S 店 ↔ 修理厂,车间经理 ↔ 技师)。 两个协议都不是可选的,它们在不同层工作。 安全:必须正视的两个问题MCP 的安全隐忧问题 | 说明 |
|---|
AI 的影子 IT | 企业对自身 MCP server 缺乏可见性 | 工具投毒 | 恶意 MCP server 返回有害数据 | 认证标准化 | 仍在推进中(2026 年路线图重点) |
A2A 的安全隐忧问题 | 说明 |
|---|
Agent 冒充 | 伪造 Agent Card | v0.3 缓解 | 新增安全签名做身份认证 | 跨会话数据泄露 | Agent 间对话的数据边界 |
最佳实践1. 审计所有 MCP server 再接入 2. A2A 通信前验证 Agent Card 3. 监控 MCP server 访问日志 4. 优先采用本地优先架构,减少数据暴露 5. 不要在 system prompt 里透传 MCP server 返回的原始内容——它可能包含注入指令 第 5 条是最容易被忽略的攻击面:MCP server 返回的内容如果包含"忽略之前的指令"这类文字,而你的 Agent 直接把它拼进上下文,就形成了间接提示词注入。 ACP:Linux Foundation 的统一尝试ACP(Agent Communication Protocol) 是 Linux Foundation agentic AI 工作组推出的新兴开放标准,目标是把 MCP 和 A2A 统一成单一协议栈。 社区预期到 2026 年底两者会收敛,ACP 是最可能的统一候选。 选型决策场景 | 用什么 |
|---|
单 Agent + 多工具 | 只要 MCP。最成熟、工具生态最大、模型无关 | 多专业 Agent 的工作流 | A2A 做 Agent 间通信 + MCP 做各 Agent 的工具访问(当前最佳实践) | 跨组织 Agent 协作 | A2A + OAuth2。Agent Card 发现模型就是为此设计的 | 实时协作型 Agent | MCP + WebSocket(低延迟工具)+ A2A streaming(Agent 协调) | | |
| 只想快速原型 | 直接用 LangGraph / AutoGen,别先搭协议层 |
|---|
落地建议
务实的做法是:
1. 所有工具和资源集成 → 用 MCP
2. 所有 Agent 间任务委派 → 用 A2A
3. 尽量让 Agent 接口与协议无关
如果你现在刚开始,直接用框架自带的私有接口就行。MCP server 生态已经够大(500+),等到真的需要跨团队协作时再上 A2A。
注意一个现实:真正的跨组织 Agent 流量至今罕见。 今天多数号称"多 Agent"的系统,实际是一个团队的编排框架(如 LangGraph)协调多个 Agent——全归一个团队所有,全说内部 API。
协议已就绪,用例生态还在生长。 这个判断很重要,它意味着你现在不需要为了"未来兼容性"过早投资 A2A。
参考资料
MCP 官方规范 — https://modelcontextprotocol.io/
MCP 中文文档 — https://mcp.wiki/
A2A 官方 — https://a2a-protocol.org/
Linux Foundation Agentic AI Foundation — https://www.linuxfoundation.org/press/linux-foundation-launches-agentic-ai-foundation
Anthropic, *Introducing the Model Context Protocol* — https://www.anthropic.com/news/model-context-protocol
MCP 工具编写指南 — https://modelcontextprotocol.io/docs/guides/tools