Function Calling 是一种机制,MCP 是基于 Function Calling 构建的中控系统。Function Calling 和 MCP(Model Control Proxy) 是两个密切相关但层级不同的概念。它们经常被结合使用,但本质上功能定位不同。

项目 Function Calling MCP(Model Control Proxy)
本质 一种调用结构化函数的协议机制 一个中控代理系统,统一管理模型调用和插件调度
作用 把用户意图转为结构化函数调用(含参数) 接收模型生成的 Function Call,转发并管理实际调用过程
谁提出的? OpenAI、Claude等大模型厂商 各类平台实现(如 LangChain、Mindie、InternStudio 等)
属于哪一层? 通信协议层(模型输出) 调度执行层(中控系统)
1、MCP = 基于 Function Calling 的执行平台

MCP 的核心工作流程:

  1. 用户提问 → 模型推理输出 Function Call:
{
  "name": "search_docs",
  "arguments": {
    "query": "什么是量子纠缠"
  }
}
  1. MCP 识别这是一个结构化调用请求。
  2. MCP 查找注册的函数 search_docs,调用对应插件/API/本地函数。
  3. MCP 获取结果后返回给模型继续对话,或直接展示给用户。

➡️ 没有 MCP,仅有 Function Calling,模型没法实际执行任务。

能力 Function Calling MCP
结构化意图表达 ✅ 强 ⚠️ 不处理生成,仅执行
函数/插件注册 ❌ 无 ✅ 支持注册、权限控制、版本控制等
工具执行引擎 ❌ 无 ✅ 调度实际代码/API 执行
多轮调用上下文保持 ❌ 模型控制 ✅ 可封装 session 记忆
Fallback、容错、缓存 ❌ 无 ✅ 可实现
多模型协同 ❌ 限制多 ✅ 支持 GPT + Whisper + SD 联动等
2、典型交互流程图
用户输入
   ↓
模型输出 Function Call(如 search(query="量子纠缠"))
   ↓
[MCP识别] → 匹配注册的函数 → 执行真实 API 调用
   ↓
拿到结果后回传给模型继续推理或直接返回

实际示例:调用天气查询函数
Function Calling:

{
  "name": "get_weather",
  "arguments": {
    "city": "Beijing"
  }
}

3、MCP 处理逻辑:

# MCP 注册的函数
def get_weather(city):
    return call_openweathermap_api(city)

# MCP 调用逻辑
result = get_weather("Beijing")

最终结果由 MCP 返回模型或用户。

4、使用建议
场景 推荐
构建多工具协同的系统 ✅ 使用 MCP(基于 Function Calling)
构建对话式 API 接入 ✅ 结合 Function Calling + MCP
使用 OpenAI/Claude/RAG/插件/LLM 多模型接入系统 ✅ MCP 提供统一入口
只做语言生成,无插件需求 Function Calling 非必需,MCP 不需要
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐