Skip to content

73. AI Agent 中 Function Call 和 MCP 的区别是什么? ​

难度 P1 高频 · 岗位 应用 · 频率 ★★★ · 预计阅读 5 min

本题阅读地图 ​

  1. 💡 简要回答
  2. 📝 详细解析
  3. 🎯 面试总结

👔 面试官:Function Call 和 MCP 都能让 Agent 调工具,有啥区别?

🙋 我:MCP 是新出来的,比 Function Call 更先进?

👔 面试官:「更先进」说明你没想清楚它们解决的是不同层次的问题。你能说清楚两者的关系吗?

这道题考的是分层思维,不是时间先后。

💡 简要回答 ​

Function Call 和 MCP 解决的是不同层次的问题,不是替代关系,而是层叠关系:

  • Function Call:解决的是「LLM 如何结构化地表达调用意图」——让模型输出 JSON 而不是自然语言来描述工具调用。
  • MCP:解决的是「工具如何被标准化暴露给任意 Agent」——在 Function Call 的基础上,定义了工具发现、通信、传输的完整标准协议。

可以这样理解:Function Call 是大脑发出的指令格式,MCP 是连接大脑和手脚的神经系统标准。

📝 详细解析 ​

从问题出发理解两者 ​

Function Call 解决的问题:LLM 只会输出文字,怎么让它「告诉」我要调哪个工具、参数是什么?

答案是:训练模型识别工具调用意图,并以结构化 JSON 格式输出调用请求,而不是自然语言。这是模型侧的能力,是 LLM 学会的一种「语言」。

MCP 解决的问题:工具越来越多,每个框架接每个工具都要写适配代码,生态碎片化怎么办?

答案是:制定标准协议,让工具提供方按标准开发 Server,Agent 框架按标准实现 Client,两者通过协议互通,不需要点对点适配。

层叠关系可视化 ​

用户意图
    ↓
LLM 推理 + Function Call  ← 「我要调 get_weather,参数是北京」(JSON 格式)
    ↓
MCP Client 发起请求      ← 「通过 MCP 协议,找到对应的 Server 并发请求」
    ↓
MCP Server 执行工具      ← 「调天气 API,返回结构化结果」
    ↓
结果回到 LLM

Function Call 发生在「LLM 决策层」,MCP 发生在「工具接入层」。两者协同工作,前者负责「想清楚要调什么」,后者负责「找到工具并调通」。

对比速查 ​

维度Function CallMCP
解决问题LLM 如何表达调用意图工具如何被标准化暴露
所在层次LLM 能力层(模型侧)工具集成层(架构侧)
关键产出结构化 JSON(tool_calls)统一通信协议(JSON-RPC)
发明方OpenAI(2023)Anthropic(2024)
关系基础能力在 FC 基础上的上层规范

🎯 面试总结 ​

别说「MCP 取代了 Function Call」,这两者根本不在同一层。答题时要点出层叠关系:Function Call 是模型学会的「调用语言」,MCP 是行业制定的「接入标准」,两者配合才构成完整的工具调用闭环。能画出上面那个调用链路图,这道题就答满了。


章节首页 · ← Q72 · Q74 →

最后更新2026-05-01
难度P1
频率medium
阅读5 min
主题agent / tool-use / protocol
觉得有帮助?把这个链接转给正在求职的朋友 · 用 Ctrl + K 全站搜索其它题