跳到主要内容

Tool Calling、MCP 与 A2A 的关系图

学到 Tool UseMCPA2A 之后,很容易出现一种情况:

  • 每个概念都知道一点
  • 但放在同一张图里时边界会开始变糊

这篇文档专门处理这个问题。

目标很明确:

把 Tool Calling、MCP 和 A2A 放回同一条系统链路里,讲清它们分别在解决哪一层问题。

1. 先看一句最短定义

可以先用最短定义分层:

  • Tool Calling:模型如何决定并调用某个能力
  • MCP:能力如何被标准化地暴露给 AI 应用
  • A2A:一个 Agent 怎样和另一个 Agent 协作

先记住这个三分法,方向通常不会偏。

2. 一张最简关系图

这张图可以这样读:

  • 当 Agent 要调一个能力时,它会进入 Tool Calling
  • 如果这个能力是通过协议化方式暴露出来的,底层可以走 MCP
  • 如果对面不是工具,而是另一个独立 Agent 系统,底层更可能走 A2A

3. 它们分别回答什么问题

3.1 Tool Calling 回答的是“怎么调”

核心问题是:

  • 现在需不需要调工具
  • 应该选哪个工具
  • 参数怎样生成
  • 结果怎样回到上下文里

这一层最靠近模型运行时。

3.2 MCP 回答的是“从哪里接、怎样统一接”

核心问题是:

  • 外部能力怎么暴露
  • 客户端怎么发现这些能力
  • 为什么除了 tools 还有 resources 和 prompts
  • 多个 AI 应用怎样共用同一套能力

这一层最靠近接入与协议治理。

3.3 A2A 回答的是“如何与另一个 Agent 合作”

核心问题是:

  • 怎么发现另一个 Agent
  • 怎么把任务发过去
  • 如何拿到状态和产物
  • 怎样处理长任务、流式更新和异步协作

这一层最靠近跨 Agent 互联。

4. 为什么 MCP 和 A2A 不是一回事

这两个概念经常一起出现,因为它们都在协议层。

但它们服务的对象不同:

  • MCP 服务的是工具、资源、提示
  • A2A 服务的是另一个 Agent

也可以直接这样区分:

  • MCP 把能力接进来
  • A2A 把协作者接进来

5. 为什么 Tool Calling 和 A2A 也不是一回事

很多系统会把“调用远程 Agent”包装成一个工具,这在实现上完全可行。

但从设计角度看,两者仍然不同:

  • Tool Calling 常常面向同步或近同步能力
  • A2A 更自然地面向任务、状态、产物和长时协作

如果下游对象有这些特征:

  • 自己维护状态
  • 会分阶段处理任务
  • 有中间结果与最终产物
  • 需要流式更新或推送通知

那它更接近 A2A,而不是普通工具。

6. 一个很实用的判断表

问题更接近哪一层
模型要不要调某个能力Tool Calling
这个能力怎样统一暴露给多个客户端MCP
这个下游对象是工具还是协作 AgentMCP / A2A 的分界点
需要管理远程任务状态、产物与进度A2A
只是调用一个本地函数或稳定 APITool Calling

7. 学习顺序为什么应该是 Tool Calling -> MCP -> A2A

这个顺序会更稳,因为:

7.1 先理解调用行为

也就是先明白:

  • 模型怎样选择工具
  • 参数怎样生成
  • 结果怎样回注

这对应 Tool Calling

7.2 再理解能力接入层

也就是再明白:

  • 工具、资源、提示怎样被统一接入
  • 多个 AI 应用怎样复用同一套能力

这对应 MCP

7.3 最后理解 Agent 互联层

也就是最后再看:

  • 一个 Agent 怎样把任务交给另一个 Agent
  • 如何处理状态、产物、异步协作

这对应 A2A

如果顺序反过来,协议层很容易先于问题本身膨胀起来。

8. 在真实项目里通常怎么组合

几种很常见的组合方式:

8.1 单 Agent + Tool Calling

适合:

  • 最小 demo
  • 单工具任务
  • 小型内部助手

8.2 单 Agent + Tool Calling + MCP

适合:

  • 工具来源越来越多
  • 需要统一接文件、设计稿、知识服务、外部系统
  • 希望多个客户端复用同一套能力

8.3 多 Agent + Tool Calling + A2A

适合:

  • 子任务委派
  • 独立 Agent 服务之间协作
  • 远程长任务与产物交付

8.4 多 Agent + MCP + A2A

适合:

  • 每个 Agent 既要接外部能力,又要和其他 Agent 协作
  • 团队已经开始做平台化能力治理

9. 和这个专题里的哪些文档最该一起看

最适合一起看的有:

10. 小结

把这三者放在一起看时,最重要的不是记住缩写,而是记住它们各自在系统里的位置:

  • Tool Calling 是调用行为层
  • MCP 是能力接入层
  • A2A 是 Agent 互联层

只要这个分层清楚了,后面无论接什么框架,判断都会稳很多。