前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片NEW
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 业务场景题真实业务问题与追问
  • 查漏补缺常见问题解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
    • AI 定制路线NEW按你的简历现排
    • AI 知识地图NEW串起全站知识点
  • 动态
    • AI 热点NEWAI 每日动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
AI 助手NEW
旧版
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片NEW
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 业务场景题真实业务问题与追问
  • 查漏补缺常见问题解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
    • AI 定制路线NEW按你的简历现排
    • AI 知识地图NEW串起全站知识点
  • 动态
    • AI 热点NEWAI 每日动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
AI 助手NEW
旧版
返回 AI 情报前线
All News · 全部资讯8356
  • 用聊天模型做金融内容审核:结构化输出设计实践
  • Prompt注入攻击原理与防御实践指南
  • 大规模漏洞扫描活动泛滥,攻击者冒充ClaudeBot等AI爬虫
  • 谷歌DeepMind发布手语转文本模型SL2T
  • LFM2.5-VL-3B:边缘设备高性能视觉语言模型发布
  • 通义千问3.8-27B发布,刷新开源大模型参数效率
  • 多Agent协作陷阱:个体测试全过,团队输出仍错误
  • Agent Plugins:Vercel/OpenAI/Microsoft 等联合推出 Agent 技能打包新标准
  • 企业实战:50+ AI Agent在UK主权云上的部署架构
  • ZeroGPU Router:让 AI Agent 用小模型处理例行任务
  • Solv Labs在AWS Bedrock上构建可审计的Agent支付系统
  • CodeBurn:让AI编程投入产出可见化
  • AWS SageMaker HyperPod分层KV缓存:LLM推理新范式
  • 2026年AI Agent安全开发指南
  • 从专有LLM API窃取推理痕迹研究
  • AI代码审查门控:让AI生成的补丁先自证再合入主分支
  • AI 正在消灭软件工程中层阶级
  • 企业 AI 分析的隐藏失败模式:语义漂移
  • 四步修复:让ChatGPT/Perplexity等AI搜索正确引用你的网站
  • CI发布成功却无人能安装:JetBrains插件三周静默故障复盘
  • MCP vs A2A协议解析:Agent连接协议选型指南
  • Adobe紧急修复:Campaign Classic与ColdFusion四个10.0严重漏洞
  • AI Agent自主搭建付费媒体商店:零人工注册的云服务开通实验
  • 用Claude构建骨架技术文档:Doc-to-Code追踪矩阵实践
  • 企业集成测试:单元测试无法覆盖的测试维度
  • AI 助手常用的启动模板:Demo 专用,上生产有坑
  • 英伟达 Nemotron 4 瞄准万亿参数,宣称超越中国大模型
  • AI Agent实测1200次运行费用仅1.2美元
  • Code-Graph-RAG:把整库变成知识图谱,让 AI 真正理解代码结构
  • Anthropic工程师内部分享:不用提示词,用图和循环构建自提示系统
  • Grok Bot上线:AI队友可登录你的账号替你干活
  • OpenAI 正式发布 ChatGPT Linux 桌面应用
  • Mojo 1.0正式发布:年内开源编译器和工具链
  • 比亚迪 HyWorldVLA 刷新自动驾驶基准:像素级+潜在空间混合世界模型
  • AI代码测试公司Blacksmith估值不到一年翻近10倍
  • 紫东太初GMC剪枝:省80% Token仍保多模态能力
  • AI 编程 Agent 使用 Git Worktree 的坑:vendor 符号链接
  • Reducer Engineering:AI Pipeline 成本直降 86% 的技巧
  • BizNode Pulse:本地运行的AI自主商业操作系统
  • Chat Templates权威指南:模型训练级Prompt渲染原理
  • AI Agent是影子AI更危险的续作
  • 多 Agent 系统调试:你的 Trace Tree 在说谎
  • 7 个 CLAUDE.md 错误悄悄消耗你的会话效率
  • 微软 MAI Code 1.1 Flash 性价比被 Deepseek V4 Flash 碾压
  • 企业生产级 AI 的数据基座:WPP 案例的 dbt 架构实践
  • 企业AI落地 regulated 行业:基础设施检查清单
  • Agent-Devtools:本地化AI Agent调试追踪工具
  • 运行时验证:测试与Guardrail的本质差异
  • Vibe Coding演进:AI编程工具成熟度与生产信任问题
  • LLM Agent操控真实PLC:工业协议工具调用实战总结
  • AI 模型价格周报:GLM 5.2 降价 34%,Qwen3 VL 长输出费用腰斩
  • 已加载 51 / 8356
9.0
重磅
AI SCORE
技术实践2026-08-12 20:56

MCP vs A2A协议解析:Agent连接协议选型指南

dev.to · AI#MCP#A2A#Agent
Editor brief · 编辑速览

MCP和A2A解决不同互操作问题:MCP是Agent→能力(工具/资源),A2A是Agent→Agent(跨服务协作)。Google Cloud已演示两者协同运行的架构。

文章思维导图
Knowledge map
拖拽缩放
Full translation

完整中文译文

AI 智能体越来越强大,但把它们连接起来却越来越让人困惑。

在这场讨论中,有两个协议反复出现:MCP(Model Context Protocol,模型上下文协议)和 A2A(Agent2Agent Protocol,智能体间协议)。

初看之下,它们听起来像是相互竞争的标准。事实上并非如此。

MCP 标准化的是 AI 应用如何访问工具、资源和外部能力。A2A 标准化的是独立智能体如何发现彼此并进行通信。

一个简单的心智模型是:

MCP: Agent → Capability
A2A: Agent → Agent

如果你的编码智能体需要查询代码库、读取数据库或调用内部服务,MCP 可能是相关的边界。

如果你的旅行智能体需要把酒店搜索委托给另一个服务拥有的专门酒店智能体,A2A 更接近这个问题。

是的,一个系统可以同时使用两者。Google Cloud 已经展示了这样的智能体架构:MCP 和 A2A 协同工作,而非相互排斥的标准。

这个区别很重要,因为当开发者把 MCP 和 A2A 视为堆栈中只能存在一个时,架构决策就会出错。

核心要点:MCP 和 A2A 解决的是不同的互操作性问题。MCP 将 AI 应用连接到各种能力。A2A 将自主智能体连接到其他自主智能体。

MCP vs A2A 一览

上面那张表就是简短答案。

本文余下部分将解释为什么这个区别在真实系统中很重要。

为什么我们需要两个协议?

第一代 LLM 应用通常长这样:

User → Prompt → LLM → Response

现代智能体系统看起来就没那么规整了。

User
  ↓
Agent
  ├── Database
  ├── Search
  ├── Internal API
  ├── Payment service
  └── Another agent

这些连接并不都是相同的。

数据库查询是一次能力调用。

而远程智能体则可以自主决定如何完成委托的目标。它可能使用自己的模型、工具、记忆、策略和工作流。

这就产生了两个独立的互操作边界:

Agent ↔ Capability
Agent ↔ Agent

MCP 主要解决第一个问题。A2A 解决第二个问题。Google 的开发者指南同样将 MCP 定位在工具和数据周围,而 A2A 处理智能体之间的通信。

这也涉及现代 AI 系统中的上下文工程:可靠的智能体不仅依赖提示词,还依赖工具、数据、状态以及其他参与者如何暴露给模型。

什么是 MCP?

模型上下文协议是一个开放协议,用于将 AI 应用与外部上下文和能力连接起来。

它的架构遵循主机/客户端/服务器模型。AI 应用充当主机,创建 MCP 客户端,并将这些客户端连接到 MCP 服务器。然后服务器暴露应用可以发现和使用的能力。

官方模型上下文协议架构文档定义了核心服务器原语,包括:

  • Tools(工具) — 可执行的函数
  • Resources(资源) — 上下文数据
  • Prompts(提示) — 可复用的交互模板

[来源:Model Context Protocol Documentation, 2026]

一个基本架构如下:

AI Application
      ↓
  MCP Client
      ↓
  MCP Server
      ↓
Tool / Data / Service

假设你正在构建一个客服智能体。

它需要访问订单数据。与其将自定义集成逻辑硬编码到每个 AI 应用中,不如让一个 MCP 服务器暴露如下能力:

get_order
get_customer
lookup_shipment
issue_refund

应用可以发现这些能力并调用相应的一个。

一个实际的 MCP 示例

想象一个需要代码库信息的编码助手:

Coding Agent
     ↓
    MCP
     ↓
Repository Server
     ↓
Git Repository

重要的一点是,代码库服务器不一定是另一个自主智能体。

它暴露的是能力。

编码智能体仍然掌控推理循环:决定需要什么信息、调用相关能力、检查结果、然后选择下一步做什么。

一个值得了解的 2026 MCP 细节

要注意旧的 MCP 图表。

MCP 2026-07-28 规范更新将 MCP 协议核心从有状态的会话模型迁移到了无状态的请求/响应模型。该修订移除了旧的协议层握手和会话要求,同时增加了旨在使 MCP 工作负载更容易路由、缓存、安全防护和扩展的变更。

[来源:Model Context Protocol, 2026]

你的应用仍然可以维护状态。

关键变化是核心协议本身不再需要隐藏的传输层会话状态。

对于初学者来说,你不需要记住迁移细节。只要避免假设每个当前的 MCP 交互都依赖于旧的会话模型即可。

什么是 A2A?

A2A,即 Agent2Agent 协议,是为独立智能体之间的通信而设计的。

当前的 Agent2Agent 协议规范定义了发送消息、处理任务、流式更新和发现智能体的操作。

[来源:A2A Protocol Specification, 2026]

最简单的架构是:

Agent A
   ↓
  A2A
   ↓
Agent B

但这里重要的词是 agent(智能体)。

Agent B 不只是一个如下所示的函数:

get_weather("Boston")

它可能拥有一个完整的工作流。

你可以向它发送一个目标,比如:

Find a hotel near the conference venue
for under $250 per night, with Wi-Fi,
for September 10–12.

远程酒店智能体可以自行决定:

  • 查询哪些库存来源,
  • 应用哪些过滤器,
  • 是否需要澄清,
  • 如何对选项进行排序,
  • 以及返回什么结果。

调用方智能体委托的是目标,而非每一个内部步骤。

什么是 Agent Card?

A2A 需要一种方式让智能体描述自己。

这就是 Agent Card 的用武之地。

A2A 规范将 Agent Card 描述为一个自描述清单,携带诸如智能体的身份、能力、技能、支持接口、版本和安全需求等信息。

[来源:A2A Protocol Specification, 2026]

Hotel Agent
├── capability: hotel_search
├── capability: availability_check
├── interface: A2A
└── authentication: ...

客户端可以在决定远程智能体是否适合某个任务之前检查这些信息。

这与仅仅知道一个 HTTP 端点存在是不同的。

真正重要的区别:Tool vs Agent

这是值得记住的部分。

MCP:赋予智能体一种能力

Agent → tool

调用方智能体通常仍负责决定该能力如何融入更大的任务。

calculate_shipping(order_id)

该工具执行一个定义好的操作并返回结果。

A2A:赋予智能体一个自主协作者

Agent → Agent

远程智能体拥有更多的问题解决过程。

Plan the lowest-cost shipping strategy
for these 200 orders while meeting
our delivery SLAs.

那个智能体可能会调用多个服务、评估约束、重试失败的操作,或请求更多信息。

所以这里有一个有用的边界:

工具暴露的是能力。智能体拥有目标如何被解决的方式。

这不是对 AI 智能体完美的哲学定义。

然而,这是一个非常有用的架构测试。

核心要点:如果远程系统暴露的是一种能力,考虑 MCP。如果它拥有推理能力并接受委托的目标,A2A 就更加相关。

MCP 和 A2A 不是竞争对手

现在我们可以把两个概念结合起来。

考虑一个旅行平台:

User
 ↓
Travel Agent
 │
 ├── MCP → Calendar
 │
 ├── MCP → Customer Database
 │
 └── A2A → Hotel Agent
              │
              ├── MCP → Hotel Inventory
              └── MCP → Maps Service

旅行智能体使用 MCP 来访问它直接需要的能力。

但它不是自己实现酒店搜索推理,而是通过 A2A 将这个目标委托给专门的酒店智能体。

酒店智能体随后可以使用它自己的 MCP 连接的能力。

Google Cloud 发布了关于使用 MCP 和 A2A 构建连接型智能体的实践材料,展示了两个标准在同一智能体堆栈中的协作。

[来源:Google Cloud, 2025]

这是许多浅层比较所忽视的架构。

更好的问题是:

我在标准化的边界是什么?

什么时候应该使用 MCP?

当 AI 应用需要标准化访问工具、资源或服务时,MCP 很有意义。

  • 你的智能体需要外部能力。 数据库、SaaS 系统、搜索、文件系统、内部 API、开发者工具以及类似资源都是自然的候选者。
  • 集成应该是可复用的。 如果多个 AI 客户端可能需要相同的能力,标准接口可以减少一次性集成工作。
  • 发现问题很重要。 MCP 客户端可以发现服务器暴露的工具和其他原语,而不是假设每个能力都是静态连接的。
  • 能力提供方和 AI 应用独立演进。 协议边界可以帮助保持这些关注点分离。

什么时候 MCP 可能是不必要的

不要仅仅因为你的智能体调用了一个函数就添加 MCP。

如果一个应用拥有两端,而你需要的只是:

result = calculate_tax(order)

一个普通的函数调用可能更简单。

协议在边界处增加价值。

但它们也增加了架构复杂度。

只有当互操作性、复用性或独立所有权真正需要时,才使用这种架构。

什么时候应该使用 A2A?

当远程参与者本身是一个独立智能体时,A2A 就更加有意思了。

  • 一个智能体需要将工作委托给另一个。
  • 智能体存在于不同的服务或运行时中。
  • 不同团队或组织拥有这些智能体。
  • 框架或语言独立性很重要。
  • 远程智能体应该隐藏其内部工具和工作流。
  • 智能体能力发现问题很重要。
  • 任务可能是长时间运行的或需要多条消息。

A2A 规范支持直接响应以及可能异步继续的面向任务的交互,使其适合不能总是表示为单个即时函数响应的工作。

[来源:A2A Protocol Specification, 2026]

什么时候 A2A 可能是过度设计

假设你在同一个 Python 进程中有两个智能体:

PlannerAgent → WriterAgent

两者使用相同的框架。

都不需要被独立发现。

你可能不需要仅仅为了让他们通信而引入网络互操作协议。

你的框架的原生智能体组合机制可能就够了。

随着边界变得真实——不同的服务、不同的运行时、不同的框架、不同的供应商或不同的所有者——A2A 变得更有价值。

一个简单的决策框架

当你犹豫不决时,按这四个步骤来。

步骤 1:确定你要连接的是什么

远程一方主要是工具、数据源还是能力?

它是一个能够拥有委托目标的独立智能体吗?

步骤 2:问谁拥有执行逻辑

如果你的智能体决定每个步骤,而远程一方执行一个定义好的操作,那么 MCP 或普通工具调用可能更接近问题。

如果远程一方决定如何完成请求的目标,A2A 就更相关。

步骤 3:找到互操作边界

相同的进程和相同的代码库?

协议可能是不必要的。

跨服务、跨框架、跨组织或跨供应商?

标准化协议就变得更有价值。

步骤 4:检查两个边界是否都存在

许多真实系统同时拥有两者:

Agent → Agent → Tools
        A2A      MCP

在这种情况下,同时使用 MCP 和 A2A 是完全合理的。

常见的 MCP vs A2A 误解

它们主要针对的是不同的关系。

"MCP 只是用于工具调用。"

MCP 服务器可以暴露工具、资源和提示,所以它的范围远超函数调用本身。

"每个多智能体应用都需要 A2A。"

当没有有意义的互操作边界时,内部智能体可以通过框架原生机制通信。

"如果我使用 A2A,远程智能体就不能使用 MCP。"

通过 A2A 连接的的智能体可以在内部使用 MCP 服务器来访问它自己的能力。

开发者应该先学什么?

如果你不熟悉智能体协议,我建议按这个顺序学习:

1. LLM tool calling
       ↓
2. MCP basics
       ↓
3. Single-agent workflows
       ↓
4. Multi-agent architecture
       ↓
5. A2A

一旦你已经理解为什么 LLM 调用工具,MCP 就更容易理解了。

一旦你构建了一个拥有推理循环的智能体,并且能清楚地将该智能体与普通工具区分开来,A2A 就更容易理解了。

不要从记住协议负载开始。

从学习架构边界开始。

MCP vs A2A 速查表

使用 MCP:Agent → Tool / Resource / Capability

使用 A2A:Agent → Agent

同时使用:Agent → Agent → Tools

这就是核心思想。

MCP 给 AI 应用提供了一种与外部能力交互的标准方式。A2A 给独立构建的智能体提供了一种发现彼此、交换消息和委托工作的标准方式。

两个协议都不会自动让智能体变得智能。

两个协议都不能消除对良好架构的需求。

而且两者都不需要「打败」对方。

当你在设计一个智能体系统时,不要再问:

「MCP 和 A2A 哪个更好?」

而是问:

「我是在将智能体连接到一种能力,还是将智能体连接到另一个自主系统?」

一旦你回答了这个问题,协议选择通常就变得容易多了。

核心要点:真正的决策不是 MCP vs A2A,而是能力集成 vs 智能体协作。

Original source

本文由 AI 翻译整理自 dev.to · AI,原文版权归原作者所有。

阅读英文原文
上一篇
CI发布成功却无人能安装:JetBrains插件三周静默故障复盘
下一篇
Adobe紧急修复:Campaign Classic与ColdFusion四个10.0严重漏洞