MCP、Function Calling 与 AI Agent:概念辨析与关系梳理
从工程实现角度理解 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 接口:
- 通过
tools/list获取可用的工具列表 - 拿到 function 后,仍然是包装成 tools 给 AI
- 执行时多包装一层 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 系统时做出正确的技术选型。
MCP、Function Calling 与 AI Agent:概念辨析与关系梳理
2026/01/06/MCP-Function-Calling-AI-Agent-关系辨析/
Comments
Comment plugin failed to load
Loading comment plugin