详解AI-Agent中的MCP(Model Context Protocol),与function call的区别与联系
·
下面从工业级AI-Agent架构视角,系统性拆解 MCP(Model Context Protocol)与 Function Call 的关系与差异。
一、结论(核心认知)
Function Call 是“调用工具的方法”
MCP(Model Context Protocol)是“管理模型如何使用工具与上下文的协议层”
一句话区分:
- Function Call = 动作(Action)
- MCP = 系统(System / Protocol / Runtime)
二、Function Call 的本质(回顾)
Function call 是 LLM 输出的一种结构化指令,例如:
{
"name": "get_weather",
"arguments": {
"city": "Seattle"
}
}
它解决的问题:
- 模型如何调用外部工具
- 输出结构化 action
- 让系统执行函数
但它的局限:
Function call 只解决:
“调用哪个函数 + 参数是什么”
它不管理:
- 上下文怎么组织
- 多轮工具链如何运行
- memory 如何接入
- 多工具协同策略
- 状态管理
- 工具权限与路由
- 多模型协作
三、MCP(Model Context Protocol)是什么?
MCP 是一个**“模型 + 工具 + 上下文”的标准协议层”。
可以理解为:
🔥 MCP = AI Agent 的“操作系统协议”
1. MCP 的核心目标
MCP 试图统一三件事:
(1)Context 标准化
- prompt
- memory
- tools schema
- system instructions
- conversation state
(2)Tool 接入标准化
- 统一工具描述格式
- 统一调用协议
- 统一返回结构
(3)模型与外部系统解耦
- 模型不直接绑定某个工具框架
- tools 可插拔(plug-in architecture)
四、MCP 的典型结构(抽象)
一个 MCP 请求通常包含:
{
"context": {
"messages": [...],
"memory": {...},
"system": "..."
},
"tools": [
{
"name": "search",
"schema": {...}
}
],
"task": "用户问题"
}
返回:
{
"actions": [
{
"tool": "search",
"arguments": {...}
}
],
"updated_context": {...},
"final_answer": null
}
五、MCP vs Function Call 的本质区别
1. 抽象层级不同
| 层级 | Function Call | MCP |
|---|---|---|
| 层级 | 执行层 | 协议/架构层 |
| 作用 | 调用工具 | 管理整个 agent 上下文 |
| 范围 | 单次动作 | 全生命周期 |
2. 关注点不同
Function Call 关注:
- 调哪个函数
- 参数是什么
MCP 关注:
- 当前上下文是什么
- 哪些工具可用
- 是否允许调用
- 如何调度多个函数
- memory 如何参与
- 多轮状态如何演进
3. 控制能力不同
| 能力 | Function Call | MCP |
|---|---|---|
| 工具调用 | ✔ | ✔ |
| 多轮调度 | ✖ | ✔ |
| memory管理 | ✖ | ✔ |
| 上下文治理 | ✖ | ✔ |
| tool routing | ✖ | ✔ |
| agent runtime | ✖ | ✔ |
4. 关系:包含 vs 被包含
核心关系是:
MCP ⊃ Function Calling
也就是说:
👉 Function Call 是 MCP 中的一种执行结果形式
六、两者如何协作(关键)
在 MCP 架构中:
Step 1:MCP 构建上下文
MCP 组装:
- 用户输入
- memory
- tool registry
- system prompt
Step 2:LLM 决策
模型输出:
{
"tool_call": {
"name": "search",
"arguments": {
"query": "AI trends"
}
}
}
👉 这里就是 Function Call
Step 3:MCP 执行调度
MCP runtime 做:
- 校验权限
- 路由 tool
- 执行函数
- 捕获结果
Step 4:更新 Context
{
"observation": "search results...",
"memory_update": {...}
}
Step 5:再次喂给模型
进入下一轮:
MCP → LLM → Function Call → Tool → MCP loop
七、一个直观比喻(非常关键)
Function Call = 手机 App 的“点击按钮”
比如:
- 点“打车”
- 点“搜索”
MCP = iOS / Android 操作系统
负责:
- App 生命周期
- 权限管理
- 数据流
- 多任务调度
- 后台运行
- 内存管理
八、为什么 MCP 是下一代关键(重点)
Function Call 时代的问题:
- 工具越来越多 → 难管理
- prompt 越来越复杂
- multi-agent 难扩展
- memory 混乱
- tool chaining 手工写逻辑
MCP 解决的是:
从“函数调用系统”升级为“可编排的智能体运行时”
九、MCP 在真实 Agent 架构中的位置
典型架构:
User
↓
MCP Runtime
↓
LLM (Planner/Reasoner)
↓
Function Call (Tool invocation)
↓
Tools (API / DB / Code)
↓
MCP Runtime (state update)
↓
Loop
十、总结
Function Call 是“AI 的手”
MCP 是“AI 的操作系统 + 上下文管理器 + 工具调度层”
更多推荐

所有评论(0)