详解AI-Agent中的MCP(Model Context Protocol),与function call的区别与联系

📅 2026/6/25 12:21:21
详解AI-Agent中的MCP(Model Context Protocol),与function call的区别与联系
下面从工业级AI-Agent架构视角系统性拆解 MCPModel Context Protocol与 Function Call 的关系与差异。一、结论核心认知Function Call 是“调用工具的方法”MCPModel Context Protocol是“管理模型如何使用工具与上下文的协议层”一句话区分Function Call 动作ActionMCP 系统System / Protocol / Runtime二、Function Call 的本质回顾Function call 是 LLM 输出的一种结构化指令例如{name:get_weather,arguments:{city:Seattle}}它解决的问题模型如何调用外部工具输出结构化 action让系统执行函数但它的局限Function call 只解决“调用哪个函数 参数是什么”它不管理上下文怎么组织多轮工具链如何运行memory 如何接入多工具协同策略状态管理工具权限与路由多模型协作三、MCPModel Context Protocol是什么MCP 是一个**“模型 工具 上下文”的标准协议层”。可以理解为 MCP AI Agent 的“操作系统协议”1. MCP 的核心目标MCP 试图统一三件事1Context 标准化promptmemorytools schemasystem instructionsconversation state2Tool 接入标准化统一工具描述格式统一调用协议统一返回结构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 CallMCP层级执行层协议/架构层作用调用工具管理整个 agent 上下文范围单次动作全生命周期2. 关注点不同Function Call 关注调哪个函数参数是什么MCP 关注当前上下文是什么哪些工具可用是否允许调用如何调度多个函数memory 如何参与多轮状态如何演进3. 控制能力不同能力Function CallMCP工具调用✔✔多轮调度✖✔memory管理✖✔上下文治理✖✔tool routing✖✔agent runtime✖✔4. 关系包含 vs 被包含核心关系是MCP ⊃ Function Calling也就是说 Function Call 是 MCP 中的一种执行结果形式六、两者如何协作关键在 MCP 架构中Step 1MCP 构建上下文MCP 组装用户输入memorytool registrysystem promptStep 2LLM 决策模型输出{tool_call:{name:search,arguments:{query:AI trends}}} 这里就是 Function CallStep 3MCP 执行调度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 的操作系统 上下文管理器 工具调度层”