题目
请说明 Function Calling 与 MCP(Model Context Protocol)各自解决什么问题,以及二者的关系与区别。
参考答案
Function Calling(函数调用):
- 让 LLM 能调用外部工具的能力:开发者用 JSON Schema 描述可用函数(名称、参数、说明),LLM 根据用户意图输出结构化调用(函数名 + 参数 JSON),应用层执行后把结果回传 LLM。
- 解决了”LLM 不能联网/查库/执行代码”的封闭性问题。
- 痛点:各厂商 API 格式不统一(OpenAI、Anthropic、Gemini 各一套),工具不能跨模型复用。
MCP(Model Context Protocol,Anthropic 2024 提出):
- 一个开放标准协议,规范”应用(host)↔ 工具服务器(server)“之间的通信。
- 把工具、资源、提示词封装为标准 MCP server,任何支持 MCP 的 host(如 Claude Desktop、Cursor、Cline)都能用。
- 类比:MCP 之于 LLM 工具,如同 LSP 之于编辑器——标准化后生态可复用。
核心区别:
| 维度 | Function Calling | MCP |
|---|---|---|
| 层级 | LLM 能力(模型层) | 通信协议(应用层) |
| 范围 | 单次调用 JSON 描述 | 完整工具/资源/提示协议 |
| 标准化 | 各厂商各异 | 开放统一 |
| 复用 | 需为每家模型适配 | 写一次 server,多处用 |
| 传输 | 内嵌于 API 调用 | 独立通道(stdio/SSE/WebSocket) |
关系:MCP 不是替代 Function Calling,而是把工具标准化封装后供 host 调用。host 内部仍可能用 Function Calling 让 LLM 决定调用哪个 MCP 工具。即:MCP 管工具到应用的传输,Function Calling 管 LLM 到工具的决策。
典型场景:
- Function Calling:在自家应用里让 GPT 调几个内部函数,简单直接。
- MCP:做通用 Agent(如 Claude Desktop),希望接入海量第三方工具,用 MCP 让社区共建生态。
面试加分点:
- 指出 MCP 的价值在生态——把工具开发与模型解耦,工具方写一次 server,所有 MCP 兼容客户端都能用。
- 提及 MCP 的三类原语:Tools(可调用函数)、Resources(可读数据)、Prompts(可复用提示模板)。
- 类比 LSP(Language Server Protocol)让编辑器与语言服务器解耦,是理解 MCP 设计哲学的最佳参照。
出处:CSDN《Agent 大厂面试题汇总:ReAct、Function Calling、MCP、RAG 高频问题》、Anthropic MCP 文档。
内容来源
整理自 CSDN《Agent 大厂面试题汇总:ReAct、Function Calling、MCP、RAG 高频问题》
本站内容整理自公开面经与开源仓库,仅供学习交流,严禁杜撰。