目录

1 前言

2 什么是 Function Calling?

3 什么是 MCP?

4 核心区别

5 它们不是二选一,而是协作关系


1 前言

最近在学习 AI Agent 相关的技术时,发现很多同学对 MCP 和 Function Calling 这两个概念傻傻分不清楚。有人说它们是一回事,有人说 MCP 是 Function Calling 的替代品。今天我们就用一张图来彻底搞懂它们的区别。

下面通过用户和chatgpt聊天的流程来说明,我们本质使用的是大模型的API接口的。


2 什么是 Function Calling?

Function Calling(函数调用) 是 AI 模型的一种能力。它让大模型能够:

  1. 理解用户意图

  2. 决定调用哪个外部函数

  3. 生成符合函数签名的参数

  4. 将函数返回结果整合到回答中

简单说:模型学会了“喊人帮忙”

用户:纽约明天天气怎么样?
    ↓
模型思考:我需要调用“搜索天气”这个函数
    ↓
模型输出:{ "function": "search_weather", "params": {"city": "纽约"} }
    ↓
系统执行函数,拿到结果“24℃”
    ↓
模型:纽约明天24摄氏度

3 什么是 MCP?

MCP(Model Context Protocol) 是一个协议标准,由 Anthropic 提出。它定义了:

  • AI 应用如何与外部工具/数据源通信

  • 工具服务器的接口规范

  • 数据传输格式

可以把它理解为 AI 世界的 USB-C 接口

在没有 MCP 之前,每个 AI 应用要连接不同的工具,都需要写不同的适配代码。有了 MCP,任何支持该协议的 AI 客户端都可以无缝连接任何 MCP 服务器。


4 核心区别

维度Function CallingMCP
本质模型的一种能力一套通信协议
谁实现的模型提供商(OpenAI、Anthropic等)开发者自己搭建
作用范围模型 ↔ 调用方之间AI应用 ↔ 外部工具之间
类比你会“打电话”这个技能你们约定用“普通话”交流
依赖关系需要模型支持任何模型都可使用(通过适配层)

5 它们不是二选一,而是协作关系

很多人问:有了 MCP,还需要 Function Calling 吗?

答案是:都需要,而且它们配合使用

一个典型的流程:

用户提问
    ↓
AI 模型使用 Function Calling 能力决定调用哪个工具
    ↓
MCP 客户端将这次调用转换为 MCP 协议格式
    ↓
MCP 服务器接收请求,执行实际操作(查数据库、调API等)
    ↓
结果通过 MCP 返回给模型
    ↓
模型生成最终回答

Function Calling 是“决策层”,MCP 是“通信层”。

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐