从 MCP 到 A2A:智能体协议如何重构 AI 应用生态

AI 技术趋势MCPA2AAI Agent协议标准开发者工具2026-09-23

假设你手上有个退货助手:查订单、发飞书、调顺丰接口。上线三个月,产品经理说要接进公司新买的 Copilot;再过一个月,又要接 Gemini。每换一个客户端,工具定义就得重写一遍。同样的活你写了四遍。

MCP 和 A2A 就是冲这类重复劳动来的。两者解决的不是同一层问题,经常被放在一起讲,也经常被讲混。

一、MCP 把工具接入从 N×M 压到 N+M

Anthropic 在 2024 年 11 月开源了 Model Context Protocol(MCP),用 JSON-RPC 2.0 定义客户端与服务端之间的说话方式:客户端怎么列工具、怎么调工具、怎么读数据,服务端怎么回。

在 MCP 之前,工具接入的代码量大致是 N×M——N 个模型厂商、M 个工具。OpenAI 的 function calling schema 不认识高德的 API 文档,中间那层适配只能自己写。MCP 把工具那一侧的 M 固定下来,客户端换模型时不用重写工具层。

规范到 2026 年已经修订过几轮:

规范版本主要变化
2024-11-05初版。两种传输:stdio 和 HTTP+SSE
2025-03-26引入 Streamable HTTP,HTTP+SSE 标记为弃用;加入 OAuth 2.1 授权框架
2025-06-18加入 elicitation、结构化工具输出;移除 JSON-RPC batching
2025-11-25引入实验性的 tasks,覆盖长时任务与采样中的工具调用
服务端对外暴露三类东西:tools(能执行的动作)、resources(能读的数据,按 URI 寻址)、prompts(预置模板)。客户端侧有 sampling、roots、elicitation 三种。写 RAG 的人可以留意 resources:客户端先拿到一串 URI 列表,真正需要时再读内容,不必把整份文档塞进上下文。

二、A2A 处理的是 agent 之间的对话

Google 在 2025 年 4 月 9 日发布 Agent2Agent(A2A),同年 6 月捐给 Linux Foundation,成员包括 AWS、Cisco、Microsoft、Salesforce、SAP、ServiceNow。它要解决的问题是:用户一个请求要拆给几个 agent 做,而这些 agent 可能属于不同公司、跑在不同框架上。

四个核心概念:

  • Agent Card:能力名片。v0.3 起固定放在 /.well-known/agent-card.json,写清这个 agent 会做什么、端点在哪、要什么认证。
  • Task:有状态的长任务,状态包括 submitted、working、input-required、completed、failed。
  • Message 与 Part:一次交互的轮次和内容分片。
  • Artifact:任务产出,可以分片增量推送。
传输层面,A2A 支持 JSON-RPC 2.0 over HTTPS,v0.3 增加了 gRPC 和 HTTP+JSON/REST 绑定。长任务可以用 SSE 流式返回,也可以用 webhook 推送状态变化。

flowchart TB U[用户请求] --> O[编排 Agent] O -->|A2A| A1[比价 Agent · 供应商 A] O -->|A2A| A2[下单 Agent · 供应商 B] A1 -->|MCP| T1[行情数据 Server] A2 -->|MCP| T2[ERP Server] A2 -->|MCP| T3[支付 Server]

A2A 横着连 agent,MCP 竖着连工具和数据。两个协议会同时出现在一条链路上:编排 agent 用 A2A 把退款请求转给财务 agent,财务 agent 再用 MCP 调 ERP。

三、三种上下文共享方式,代价差很多

function calling、MCP、A2A 在「上下文怎么传」这件事上差别很大,直接决定 token 账单和能不能跑长任务。

维度原生 function callingMCPA2A
连接对象模型 → 函数客户端/agent → 工具与数据agent → agent
工具发现每次请求在 tools 参数里传定义tools/list 动态拉取读对方 Agent Card
结果怎么回来全部塞进 messages内容可作为 resource 按需读取作为 Artifact 分片返回
长任务应用自己轮询tasks(2025-11-25 起,实验性)Task 状态机 + SSE + webhook
上下文压力高,历史越长越贵中,可按 URI 延迟加载低,任务状态与对话上下文分离
function calling 最直接:工具返回的 JSON 原样进 messages,下一轮再带上。调五次 API,五次结果都留在上下文里。

MCP 多了一层缓冲。工具要返回 10MB 的 CSV,服务端可以只回一个 resource URI,客户端自己决定读不读、读多少。

A2A 把任务状态从对话上下文里拎出来了。一个跑 40 分钟的比价任务,状态存在 Task 对象里,客户端轮询或订阅即可,中间过程不用全喂给模型。

四、安全边界不在同一个层面上

MCP 从 2025-03-26 版开始带 OAuth 2.1 授权框架,规范里点名了几个反模式:

  • token passthrough:客户端把自己的 token 原样转给下游 API。规范要求禁止,token 的 audience 必须绑定到具体资源,用 RFC 8707 定义的 resource 参数。
  • Confused Deputy:MCP Server 拿自己的权限替客户端做事,而客户端本身没有这个权限。要靠授权请求里带 resource 参数来防。
  • 工具描述被污染:工具说明文字来自第三方,模型会当真。
公开披露过的几件事值得记住:
  • 2025 年 4 月,Invariant Labs 演示了针对 GitHub MCP Server 的工具投毒:攻击者在一个公开 issue 里写指令,模型读到后照做,用户在界面上看不见。
  • 2025 年 6 月,Asana 的 MCP 集成被曝出可被注入,让 agent 读到其他项目的数据。
  • 2025 年 7 月,General Analysis 发布报告,Supabase MCP 存在可被注入的 SQL 执行路径,能绕过 RLS 读到全库数据并拿到 service_role token。
三次事故的落点都在同一个位置:MCP Server 的权限边界。

A2A 这边的风险点在别处。Agent Card 通常公开可读,会暴露能力和端点,企业部署要想清楚哪些字段对外;任务状态通过 webhook 推送时,接收方必须验签;跨组织调用靠 OAuth 2.0 和 mTLS 建立信任。

上线前对着这个清单过一遍:

  • MCP Server 的工具描述、资源内容是否只来自可信来源
  • 是否关掉了 token passthrough
  • OAuth 请求是否带 resource 参数绑定 audience
  • A2A 的推送 webhook 是否验签、是否校验时间戳防重放
  • Agent Card 是否暴露了内网地址或调试端点
  • 是否有 MCP 工具调用的审计日志

五、平台支持现状(截至 2026 年初)

厂商/平台MCPA2A备注
AnthropicClaude Desktop、Claude Code 原生支持未作为主线推进2025 年 9 月开放 MCP Registry 预览
OpenAIAgents SDK、Responses API 支持 MCP未加入 A2A 项目2025 年 3 月宣布支持 MCP
GoogleGemini API 与 SDK 支持 MCP发起方,2025 年 6 月捐给 Linux Foundationv0.3 增加 gRPC 与 REST 绑定
MicrosoftWindows 11 原生 MCP 注册表、VS Code、Copilot StudioAzure AI Foundry、Copilot Studio 支持2025 年 Build 大会宣布
AWSBedrock AgentCore 运行时支持Bedrock AgentCore 支持Linux Foundation A2A 成员
阿里云百炼 MCP 广场、魔搭 ModelScope MCP 广场—2025 年上线,接入高德等 Server
腾讯云腾讯云 MCP 广场、云开发—2025 年上线
字节扣子支持 MCP—面向智能体开发场景
高德官方 MCP Server—2025 年 3 月发布
支付宝官方 MCP Server—面向智能体与百宝箱
开源社区MCP Registry、各类 Server 集合ANP(Agent Network Protocol)ANP 由国内团队开源,做 agent 发现与互联
国内 A2A 侧的进展比 MCP 慢,更多是各家私有协议和 ANP 这类开源尝试。跨厂商的 agent 互联还没有形成 MCP 那样的事实默认。

六、开发者能接什么活

MCP Server 本身可以当作产品接口来做。公司有一批 API,包成 MCP Server 挂到各家的 MCP 广场,等于把服务塞进所有支持 MCP 的客户端。财务软件、发票、物流、CRM 这些方向,2026 年还有位置。

企业内网需要一层 MCP 网关。不可能让每个人的 Claude 客户端直连生产数据库。网关负责鉴权、审计、字段脱敏、限流、Server 黑白名单。这类需求目前主要靠自研。

Agent Card 的注册与验证会有需求:跨公司调用时,怎么证明「这个端点真的是某家公司的客服 agent」。

安全扫描和可观测性也缺。把 MCP 调用和 A2A 任务串成一条 trace,出问题时能定位到是哪个 Server 返回了污染内容。

产品形态上,我判断三年内会出现的东西:企业内部 agent 总线、垂直行业的 agent 市场、协议转换网关。

七、今天可以先做的一件事

装好 Node.js 后跑这条命令,用 MCP Inspector 连一个本地 filesystem Server:

npx -y @modelcontextprotocol/inspector \
  npx -y @modelcontextprotocol/server-filesystem /tmp

浏览器会打开调试界面,能看到 tools/list 返回的 JSON schema、resources 列表,也能手动调用工具看返回。不用写客户端,直接看协议层在传什么,这是理解 MCP 最快的方式。

看完之后做个检查:把某个工具的描述字段改成一段带指令的文字,看你的客户端会不会照着执行。这一步能让你对工具投毒的防护需求有直观感受。

关于视频

站外视频建议按关键词自己检索,用「MCP 协议 规范讲解」「A2A Agent Card」这类词,按发布时间排序,优先看 2025 年 6 月之后的。更早的讲解大概率还在用已被弃用的 HTTP+SSE 传输,跟着做会踩坑。优先看官方账号(Anthropic、Google for Developers、阿里云、腾讯云开发者)发布的内容。

免责声明:本文不附站外视频的具体链接,避免链接失效或指向搬运内容;视频里的代码演示也不保证与当前规范版本一致。动手前以 modelcontextprotocol.io 和 a2a-protocol.org 的官方规范为准。

PREMIUM

需要完整版教程?

包含详细步骤、视频演示、提示词模板和可下载资料包。微信支付即时获取。

购买完整版 ¥29.90