迪图
发布于 2026-10-20 / 20 阅读
0
0

MCP 与 A2A:智能体协议栈完全指南

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 之间的 HTTP

A2A(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


评论