04MCP与A2A
在大模型智能体(AI Agent)快速演进的今天,工具调用(Tool Use) 和 多智能体协作(Multi-Agent Collaboration) 已成为两大核心能力。然而,早期的实现方式高度碎片化——每个框架、每个平台、每个工具都采用私有接口,导致开发者重复造轮子、系统难以互操作、生态彼此割裂。
为解决这一问题,行业正在形成两大标准化协议:
-
MCP(Model Context Protocol) —— 让 Agent 与外部工具 的交互标准化
-
A2A(Agent-to-Agent Protocol) —— 让 Agent 与 Agent 的协作标准化
这两大协议并非竞争关系,而是互补共生,共同构成未来 AI Agent 生态的“基础设施层”。本文将从起源、架构、工作原理、应用场景、对比分析等多个维度,对 MCP 与 A2A 进行全面、深入、系统的解析,助你把握 AI 智能体发展的技术脉络。
一、MCP(Model Context Protocol):Agent 的“万能工具接口”
(一)什么是 MCP?
MCP(Model Context Protocol,模型上下文协议) 是由 Anthropic 于 2024 年提出的开放标准协议其目标是:为 AI 应用提供一种统一、安全、可扩展的方式,动态注入和管理外部工具、数据源与上下文信息。
简单理解:MCP 就像 USB-C 接口——任何工具只要实现 MCP Server,就能被任意支持 MCP 的 Agent 调用,无需定制适配。
(二)核心设计思想
MCP 的设计围绕三个关键原则
-
上下文结构化:将工具、数据、提示词等资源以标准化 JSON 格式描述。
-
职责分离:
-
Prompts:由用户控制(如系统提示词)
-
Resources:由应用控制(如知识库文件)
-
Tools:由模型控制(如 API 调用函数)
-
-
传输无关性:支持
stdio(本地进程通信)、HTTP/SSE(远程服务)等多种传输方式。
(三)架构组成
MCP 采用经典的 Client-Server 架构:
| 组件 | 角色 | 功能 |
|---|---|---|
| MCP Host | 主机应用 | 如 TRAE IDE、Cursor、Windsurf 等,集成 MCP Client |
| MCP Client | 客户端 | 内置于 Agent 中,负责发现、连接、调用 MCP Server |
| MCP Server | 服务端 | 托管具体工具或数据源,响应 Agent 请求 |
| MCP Registry(可选) | 注册中心 | 提供 Server 发现服务(如 mcp.so 市场) |
| 本地数据源 | 提供本地数据 | 提供本地数据 |
| 远程服务 | 第三方工具 | 提供三方工具,提供额外信息数据 |


ServerVCP
MCP Server 是整个架构的核心,负责向大模型提供结构化上下文和可调用的操作能力。它定义了三大类基础能:
1)Resources:类似静态或动态的数据文档,比如 AP! 返回的 JSON、配置文件、项目结构,供模型查询参考
2)Tools:模型可调用的函数接口,比如发请求、创建文档、执行命令,执行前通常需要用户授权来保证安全
3)Prompts:预定义的提示模板,用来引导模型完成特定任务,比如代码审查、生成 commit message、总结会议内容,能提高交互效率。通过这三类能力,MCP Server 让模型不仅能"看懂"信息,还能"动手"完成任务社区维护的 MCP Servers
Repository 和 Awesome MCP Servers 里有大量开源的 MCP Server 实现。TypeScript 写的MCP Server 通常用 npx 命令运行,Python 写的用 uvx 命令启动,部署起来很方便。
(四)通信方式
两种通信机制
MCP 支持两种底层传输方式,适用场景完全不同:
Stdio 模式:基于标准输入输出流,Client 和 Server 跑在同一台机器上,通过进程间管道通信。启动快、延迟低、调试方便,本地开发首选。Claude Desktop 默认就用这种方式启动本地 Server。
SSE 模式:基于 HTTP 长连接,Server 可以部署在远端。Client 通过 HTTP POST发请求,Server 通过 Server-SentEvents 推送响应。适合分布式部署、跨网络调用的生产场景。
与传统 Function Calling 的区别
很多人会问:MCP 和 OpenAI 的 Function Calling 有什么区别?
核心差异在于标准化和解耦。
传统 Function Calling 是模型厂商各搞各的,OpenAI 有一套格式,Claude 有另一套,换个模型就得改代码。工具定义也是硬编码在应用里,每接一个新工具就得改应用代码重新部署。MCP 把这套流程标准化了:工具以 Server 的形式独立部署,Client 通过协议发现和调用工具。换模型不用改 Server,加工具不用改 Client。就像 USB 接口一样,只要符合协议,插上就能用。
(五)工作流程
MCP 的核心工作流程是一个客户端-服务器协作的闭环,整体分为7个阶段:
1)初始化连接:主机应用启动后,MCP Client 与 MCP Server 建立连接。一个主机可以同时连多个 Server,每个 Server负责不同的工具和资源。
2)获取工具列表:Client 从 Server 拉取可用的工具清单,包括每个工具的名称、参数、用途描述。这一步相当于"能力注册",让模型知道手里有哪些牌可以打。
3)构造 Function Caling 请求:用户输入问题后,Client 把工具描述和用户问题一起打包发给 LLM。传输格式是结构化的Function Calling,告诉模型"你现在能调用这些函数"。
4)模型智能决策:LLM 根据上下文和工具信息,判断是否需要调用外部工具、调用哪个、传什么参数。比如用户问天气
模型就会选择 getWeather 工具并填入城市参数。
5)工具调用执行:如果模型决定调用工具,Client 把调用请求转发给 Server;Server 负责实际执行--跑脚本、查数据库、调 API,然后把结果返回。
6)结果整合:工具执行结果传回 LLM,模型把这个结果和原始问题、对话上下文糅在一起,生成最终的自然语言回答,
7)用户响应输出:Client 把模型生成的回答展示给用户,完成一次完整的人机协作。
(四)全流程示例图(续)
(六)面试官追问
提问:MCP Client 和 Server 之间的连接断了怎么办?有没有重连机制?
回答:MCP 协议本身定义了连接生命周期管理。Stdio 模式下,Server 进程挂了 Client 会收到 EOF 信号,可以选择重启Server 进程。SSE 模式下,HTTP 长连接断开后 Client 可以重新发起连接。具体的重连策略、重试次数、退避算法这些是Client 实现层面的事,协议没有强制规定,得看各家 SDK 怎么实现。
提问:如果模型一次需要调用多个工具,MCP 怎么处理?
回答:MCP 支持串行和并行两种模式。串行就是一个工具执行完拿到结果,再决定下一步调哪个。并行就是模型一次返回多个工具调用请求,Client 同时发给 Server 执行。具体用哪种取决于模型的推理结果和工具之间的依赖关系。比如先查用户ID再查订单,这种有依赖的只能串行;查天气和查股票这种独立的就可以并行。
提问:MCP 和 LangChain 的 Agent 有什么关系?能一起用吗?
回答:两者解决的问题不在一个层面。LangChain Agent 是个编排框架,负责把多个步骤串起来、管理对话状态、处理工具调用结果。MCP 是个通信协议,定义 Client 和 Server 怎么交互。完全可以在 LangChain Agent 里接入 MCP Client,让Agent 通过 MCP 调用外部工具。LangChain 社区已经有 MCP 的集成方案了。
提问:MCP Client 和 MCP Server 之间是怎么通信的?用的什么协议?
回答:MCP 底层用的是 JSON-RPC 2.0 协议,传输层支持两种方式:一种是 stdio,适合本地进程间通信;另一种是 HTTF+SSE,适合远程服务调用。stdio 方式下 Client 直接 fork 一个 Server 进程,通过标准输入输出交换 JSON 消息,延迟低、实现简单。HTTP+SSE 方式下 Client 用 HTTP POST发请求,Server 用 Server-Sent Events 推送响应,适合跨网络场景。
提问:一个 MCP Client 能同时连多个 MCP Server 吗?这种多连接场景下怎么管理?
回答:可以,MCP 设计上就支持一个 Client 同时连多个 Server。每个 Server 提供不同能力,Client 会维护一个 Server 列表,每次请求前先聚合所有 Server 的工具列表给模型。模型选择调用哪个工具时,Cient 根据工具归属把请求路由到对应的Server。Cursor 里配置多个 MCP Server 就是这个原理。
提问:MCP Server 的 Tools 和 Resources 有什么本质区别?
回答:Resources 是只读的数据,模型拿来参考用,不会产生副作用;Tools 是可执行的动作,会真正改变外部状态。
提问链接:如何将已有的应用转换成 MCP 服务? - 面试鸭 | 2026最新面试题+详细答案解析
(五)典型应用场景
开发工具集成:Git、Docker、Playwright 等通过 MCP Server 暴露为 Agent 可调用工具
-
企业系统对接:将内部 CRM、ERP、数据库封装为 MCP 服务,供智能客服调用。
-
多模态能力扩展:图像生成(Stable Diffusion)、语音识别(Whisper)等作为 MCP 工具接入。
生态现状:截至 2025 年 12 月,MCP 市场 已收录超 2000 个社区贡献的 MCP Server,涵盖开发、设计、办公、云服务等领域
二、A2A(Agent-to-Agent Protocol):Agent 的“通用协作语言”
(一)什么是 A2A?
A2A(Agent-to-Agent Protocol,智能体到智能体协议) 是由 Google 于 2025 年 4 月联合 Linux 基金会推出的开放标准其目标是:实现不同厂商、不同框架、不同平台的 AI 智能体之间的安全、高效、互操作协作。
简单理解:A2A 就像 TCP/IP 协议——让来自 CrewAI、AutoGen、LangGraph 的 Agent 能像人类团队一样自然协作。
(二)核心设计哲学
A2A 基于四大原则
-
不透明性(Opacity):Agent 无需暴露内部逻辑,仅通过接口交互,保护知识产权与隐私。
-
基于现有标准:构建于 HTTP、JSON-RPC 2.0、SSE(Server-Sent Events)之上,易于集成。
-
任务驱动:以“任务”(Task)为核心单元,支持长周期、多轮、异步协作。
-
默认安全:支持 OAuth 2.0、API Key、OpenID Connect 等企业级认证机制。
(三)核心组件
| 组件 | 描述 |
|---|---|
| A2A Client(客户端智能体) | 发起任务请求的 Agent(如“行程规划 Agent”) |
| A2A Server(远程智能体) | 接收并执行任务的 Agent(如“航班查询 Agent”) |
| Agent Card | 公开的 JSON 元数据文件(通常位于 |
| Task | 工作单元,有唯一 ID 和状态生命周期(submitted → working → completed/failed) |
| Message & Artifact | 通信基本单元(文本/文件/结构化数据)和任务产出物(如 PDF 报告、图像) |
(四)工作流程(三阶段)
(五)高级特性
-
流式传输:通过 SSE 实时推送任务进度、中间结果(如代码生成过程)。
-
异步通知:对长时间任务(数小时/天),支持 Webhook 推送最终状态。
-
多模态支持:消息和工件可包含文本、图像、音频、结构化 JSON 等。
-
状态管理:任务状态持久化,支持断点续做。
(六)典型应用场景
-
跨企业协作:零售库存 Agent 检测缺货 → 通过 A2A 调用供应商订单 Agent。
-
专业分工:招聘经理 Agent → 委托简历筛选 Agent → 再委托背景调查 Agent。
-
复杂任务编排:旅行规划 Agent 协调航班、酒店、景点、支付等多个专业 Agent。
生态进展:Google Cloud、IBM、阿里云等已宣布支持 A2A;CrewAI、LangGraph 等框架正逐步集成 A2A 客户端
三、MCP 与 A2A 的关系:互补而非替代
| 维度 | MCP | A2A |
|---|---|---|
| 作用对象 | Agent ↔ 外部工具/API/数据源 | Agent ↔ Agent |
| 抽象层级 | 工具层(“手和脚”) | 协作层(“社交网络”) |
| 通信模式 | 请求-响应(Request-Response) | 任务委派-状态同步(Task Delegation) |
| 典型传输 | stdio, HTTP | HTTP + SSE |
| 核心价值 | 赋能单个 Agent | 连接多个 Agent |
协同工作示例:汽车维修店智能系统
-
客户通过 A2A 与“店长 Agent”沟通问题。
-
店长通过 A2A 委派任务给“机械师 Agent”。
-
机械师通过 MCP 调用诊断工具和维修手册。
-
若需零件,机械师通过 A2A 联系“供应商 Agent”。
-
供应商通过 MCP 查询自身库存数据库。
关键结论:MCP 负责“做事”,A2A 负责“找人”。两者结合,才能构建真正强大的多智能体系统。
四、如何选择?实践建议
| 场景 | 推荐策略 |
|---|---|
| 为 Agent 添加新工具(如 Git、数据库) | 实现 MCP Server,发布到 MCP 市场 |
| 构建单 Agent 应用(如智能客服) | 优先使用 MCP 集成所需工具 |
| 需要多 Agent 协作(如供应链、招聘) | 设计 A2A 兼容的 Agent,并提供 Agent Card |
| 已有 CrewAI/AutoGen 系统 | 逐步将内部工具迁移到 MCP,对外暴露 A2A 接口 |
| 企业级部署 | MCP 用于内部系统集成,A2A 用于跨部门/跨企业协作 |
五、未来展望
MCP + A2A + ANP:随着 ANP(Agent Network Protocol) 的发展,未来将形成“工具接入(MCP)→ 智能体协作(A2A)→ 网络发现(ANP)”的完整协议栈
-
标准化加速:Linux 基金会、W3C 等组织正推动 A2A 成为正式 Web 标准。
-
生态爆发:开发者可像开发 npm 包一样,发布 MCP 工具或 A2A 智能体,形成繁荣的“Agent App Store”。
结语
MCP 与 A2A 的出现,标志着 AI Agent 技术从“各自为战”走向“互联互通”的新时代。MCP 解决了“能力接入”的标准化问题,A2A 解决了“智能协作”的标准化问题。二者如同“USB 接口”与“互联网协议”,共同为下一代 AI 应用奠定基础设施。
对于开发者而言,拥抱 MCP 与 A2A,不仅是技术升级,更是参与构建开放、互操作、可持续的 AI 生态的关键一步。
📚 延伸阅读:
MCP 官方文档
《AI Agent 工程化实践指南》(2025)
更多推荐

所有评论(0)