MCP、Function Calling 与 AI Agent:概念辨析与关系梳理
Zhongjun Qiu 元婴开发者

从工程实现角度理解 MCP 和 Function Calling 的区别,以及它们与 AI Agent 的关系。

三个概念的澄清

最近在知乎上看到很多关于 MCP 的讨论,但很少有人讨论 Function Calling。这让我觉得有必要从工程实现的角度,理清楚这几个概念的关系。

Function Calling:基础能力

Function Calling(工具调用)是大模型的一个基础能力:

  • 模型接收工具描述(name + description + parameters schema)
  • 输出格式化的工具调用请求(通常是 JSON)
  • 由外部系统执行工具并返回结果

工程实现细节:现在的工具调用大部分都有专门的优化,这些工具描述不会放在 system message 或者 assistant message 中,而是放在专门的 tool message 里。

MCP:Function Calling 的扩展协议

MCP(Model Context Protocol)本质上就是比 Function Calling 多了一层 tools/list 接口:

  1. 通过 tools/list 获取可用的工具列表
  2. 拿到 function 后,仍然是包装成 tools 给 AI
  3. 执行时多包装一层 HTTP 请求

所以对模型本身来说,输入输出完全一致——它只看到一个带工具描述的 Prompt,输出一个 JSON。

MCP 的”万能”之处在于,它把多个子任务/子模型调用抽象成工具链,本质仍是 Tool 的链式调用。

与 AI Agent 的关系

AI Agent 是一个更上层的概念:

  • Function Calling 是 Agent 的”手”——让模型能够操作外部世界
  • MCP 是 Agent 的”标准化接口”——让不同服务能够以统一协议接入
  • Agent 则是完整的”大脑+手+反馈循环”系统

有趣的社区现象

一个有趣的现象是:

  • 知乎上没什么人讨论 Function Calling,都在讨论 MCP 😂
  • 但现在 Skills 出来了,大家又都去讨论 Skills 了,各种推广和教程 😂

这某种程度上反映了技术社区的”追新”特性。但从工程角度,理解底层原理比追逐新概念更重要。

总结

概念 本质 层级
Function Calling 模型输出结构化工具调用 基础能力
MCP Function Calling + 服务发现协议 协议层
AI Agent 完整系统(模型+工具+反馈循环) 应用层

理解这些概念的关系,有助于我们在构建 AI 系统时做出正确的技术选型。

 REWARD AUTHOR
 Comments
Comment plugin failed to load
Loading comment plugin