← 返回题库
Agent 智能体中等

Function Calling 与 MCP 是什么?有何区别?

#Function Calling#MCP#工具协议#标准化

题目

请说明 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 CallingMCP
层级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 高频问题》

本站内容整理自公开面经与开源仓库,仅供学习交流,严禁杜撰。