在构建现代 AI 应用时,我们常听到 Skill、MCP 和 Function Call 这三个词。它们听起来相似,但实际处于不同的抽象层级。
简单来说:Function Call 是基础的调用机制,Skill 是面向用户的功能产品,而 MCP 则是连接 AI 与外部资源的新一代通信协议。
Function Call(函数调用)
这是最基础、最广泛使用的概念,主要由 OpenAI 在 2023 年引入并普及。
是什么:一种让大语言模型能够智能地决定何时、以何种参数调用开发者预先定义好的函数的机制。它不是直接执行代码,而是输出一个结构化的调用请求。
如何工作:
- 定义:开发者向模型描述一系列可用的函数(包括函数名、描述、参数列表及类型)。
- 决策:用户提问后,模型根据上下文判断是否需要调用函数,以及调用哪个函数、参数是什么。
- 响应:模型返回一个结构化的 JSON 对象(如
{"name": "get_weather", "arguments": {"location": "Beijing"}}),而不是自然语言。 - 执行:应用程序收到这个 JSON 后,在本地或服务器端实际执行对应的代码,获取结果。
- 回复:将执行结果返回给模型,模型再组织成自然语言回复给用户。
特点:
- 标准化:已成为众多模型支持的标准特性。
- 核心机制:是实现 AI 与外部世界交互的基石。
- 开发层:主要面向开发者,用户感知不强。
举个例子,你问'北京天气怎么样?',模型不会瞎猜,而是'调用'了你定义的 get_weather(location) 函数,并将 API 返回的真实数据告诉你。
Skill(技能)
这是一个更高层、更产品化的概念,常见于 AI 智能体和 AI 应用平台(如 Coze, GPTs, Dify)。
是什么:一个封装好的、可重复使用的功能模块或 AI 能力。一个 Skill 内部可能包含提示词、知识库、一个或多个 Function Call、工作流等。
如何工作:
- 构建:在平台上通过可视化或配置化的方式,将一个完整的能力打包。例如,一个'订机票'Skill 可能包含查询航班、获取价格、填写订单等多个步骤。
- 调用:用户通过自然语言触发(如'我想去上海'),AI 智能体自动识别并调用最匹配的 Skill。
- 执行:Skill 作为一个整体在后台运行,可能串联多个动作,最终返回结果。
特点:
- 产品化:是终端用户可以直接理解和使用的东西(如'翻译技能'、'画图技能')。
- 可组合性:可以在智能体中安装多个 Skills,让它具备多种能力。
- 封装性:隐藏了底层复杂的函数调用和逻辑,提供端到端的体验。
比如在 Coze 平台上,你安装了一个'全网搜索'Skill。当用户问'最近有什么科技新闻?'时,Bot 会自动使用这个 Skill 去搜索并返回结果。这个 Skill 底层就是通过 Function Call 来调用搜索 API。
MCP(Model Context Protocol,模型上下文协议)
这是一个由 Anthropic 提出并主导的开放协议,旨在标准化 AI 模型与外部资源(服务器、数据库、API 等)的交互方式。可以看作是 Function Call 的进化版或标准化版本。
是什么:一个客户端 - 服务器协议。它定义了一套标准,让任何兼容 MCP 的'服务器'(提供资源的工具)都能轻松地被任何兼容 MCP 的'客户端'(AI 应用或 IDE)使用。
如何工作:
- :任何工具(如文件系统、数据库、日历 API)都可以实现为 MCP 服务器,它向客户端宣告自己提供哪些'资源'和'工具'。


