Appearance
MCP、A2A 与外部能力对接
当 AI 应用开始不只是在前端对话框里生成几段文本,而是真的要接文件系统、浏览器、知识库、内部服务,甚至开始让多个 Agent 协作时,后面很快就会碰到两个词:
MCPA2A
它们看起来都和“协作”有关,所以很容易被放在一起说。 但工程上这两个词关注的其实不是同一件事。
1. 把两个词分开
可以用一句话把它们拉开:
MCP更偏“宿主怎么标准化接外部能力”A2A更偏“不同 Agent 怎么协作完成任务”
也就是说:
MCP更关注能力接入A2A更关注任务协作
2. MCP 到底在解决什么问题
MCP 是 Model Context Protocol,模型上下文协议。
它更关注的是:
AI 宿主怎样以统一方式发现、读取和调用外部工具、资源和提示模板。
把这句话说得更工程一点,就是:
如果你的应用要接很多外部能力,例如:
- 文件系统
- 浏览器
- 搜索服务
- 数据库
- 知识库
那你总得有一种更统一的方式,把这些能力接进来,而不是每次都自己重新造一层接入逻辑。
2.1 MCP 主要带来了什么能力
它最核心的价值通常有这几件事:
- 让外部能力可以被标准化描述
- 让宿主应用可以统一发现可用能力
- 让工具、资源、Prompt 这些对象有更稳定的暴露方式
所以 MCP 的重点不是“替模型思考”,而是:
把外部能力接入这件事做得更标准。
2.2 什么场景更适合用 MCP
下面这些场景更接近 MCP:
- 宿主要接外部文件系统
- 宿主要接浏览器自动化服务
- 宿主要接搜索服务
- 宿主要接数据库或知识库能力
这时你最关心的通常不是“任务怎么拆给别的 Agent”,而是:
我有一堆外部能力,怎么稳定、统一地接给宿主应用。
3. A2A 又在解决什么问题
A2A 通常可以理解成 Agent-to-Agent。
它更关注的是:
不同 Agent 之间怎么分工、怎么交换任务、怎么回传结果。
落到系统协作上,通常就是把这几件事串起来:
- 一个主 Agent 怎么把子任务交出去
- 不同 Agent 怎么协作
- 子 Agent 的结果怎么回到主链路
3.1 A2A 主要适合什么场景
下面这些场景更接近 A2A:
- 一个 Agent 负责总控和目标拆解
- 一个 Agent 负责检索资料
- 一个 Agent 负责总结和输出
- 最后回到主 Agent 汇总最终结果
这时问题的重点不再是“接哪个工具”,而是:
这件事应该交给哪个 Agent 去做,以及结果怎么协同回来。
3.2 为什么 A2A 不是普通工具调用
因为工具调用更像:
- 调一个明确动作
- 拿一个明确结果
而 A2A 更像:
- 交出去一个子任务
- 让另一个 Agent 自己继续用它的能力往下处理
也就是说,A2A 面对的对象通常不是一个静态工具,而是另一个具备目标执行能力的 Agent。
4. 一张图看清它们分别站在哪
mermaid
flowchart LR
A[Host / App] --> B[MCP]
B --> C[Tool / Resource / Prompt]
A --> D[主 Agent]
D --> E[A2A]
E --> F[子 Agent 1]
E --> G[子 Agent 2]这张图里最重要的是:
MCP更像能力接入口A2A更像任务协作通道
5. 两者最核心的区别
| 维度 | MCP | A2A |
|---|---|---|
| 主要对象 | 宿主应用与外部能力 | Agent 与 Agent |
| 核心问题 | 怎么发现和调用外部能力 | 怎么拆任务、协作和回收结果 |
| 更像什么 | 能力接入协议 | 多 Agent 协作方式 |
| 典型对象 | Tool、Resource、Prompt | 主 Agent、子 Agent |
| 常见场景 | 接文件、浏览器、搜索、知识库 | 复杂任务拆分、子任务协作 |
6. 它们会不会一起出现
会,而且很常见。
例如一个调研型系统里,可能会这样配合:
- 主 Agent 先通过
MCP接浏览器、搜索和知识库能力 - 再通过
A2A把“网页搜集”“内容提炼”“最终汇总”交给不同 Agent
这时两者站的就不是同一层:
MCP负责接能力A2A负责协作任务
所以它们不是互斥关系,而是完全可能一起出现。
7. 这两个词最容易踩的误区
7.1 把 MCP 理解成模型接口
这不太准。
模型接口更关注“应用怎么调模型”,而 MCP 更关注“宿主怎么接外部能力”。
7.2 把 A2A 理解成普通工具调用
这也不太准。
工具调用更像调一个动作,A2A 更像把一个子任务交给另一个具备执行能力的 Agent。
7.3 以为有了 A2A 就不需要 MCP
也不对。
就算系统里已经有多个 Agent,它们内部真正要访问文件、浏览器、知识库时,仍然可能需要一层标准化的外部能力接入方式。
8. 一段更稳的总结
如果把这两个词压成一句话,可以记成:
MCP 解决“宿主怎么把外部能力标准化接进来”,A2A 解决“不同 Agent 怎么协作完成一个更复杂的任务”。一个更偏能力接入,一个更偏任务协作,真实项目里它们经常会一起出现,但并不站在同一层。