在当前的后端面试中,AI相关题目已成为高频考点,缺乏准备容易导致失误。本文将从技术层面深入解析MCP、Skill和Function Call这三个核心概念的区别与联系,帮助你系统掌握AI Agent开发中的关键组件,从容应对技术面试。
简要回答
这三个概念分别处于AI应用架构的不同层次,并非相互替代,而是协同工作。
- Function Call 是大模型调用外部工具的底层技术实现,解决“模型如何发起调用”的问题。
- Skill 是在工程实践中对一组相关Function的业务封装,解决“哪些工具组合起来提供特定能力”的问题。
- MCP 是更高层次的协议标准,旨在为模型、工具和数据源之间的互联互通建立统一的通信规范,解决“不同系统按什么规则对话”的问题。
简而言之,Function Call关注“怎么调”,Skill组织“调什么”,MCP规定“按什么规矩调”。
详细回答
Function Call:模型调用工具的底层能力
Function Call 是OpenAI为GPT-3.5和GPT-4引入的核心能力,它让大模型从被动的文本生成器转变为能主动识别意图并调用外部工具的智能体。

其工作原理是,开发者通过API向模型声明一组可用的函数及其参数结构。模型分析用户输入后,若判断需要调用工具,则返回一个结构化的JSON对象,包含函数名和参数值,应用层再据此执行实际函数。
以下是一个典型的代码示例:
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": "北京今天天气怎么样?"}],
functions=[{
"name": "get_weather",
"description": "获取指定城市的天气信息",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "城市名称"}
}
}
}]
)
在这段代码中,模型理解用户询问天气的意图后,会返回调用 get_weather 函数的指令,参数为 {"city": "北京"}。随后,后端代码才真正执行天气API查询,并将结果返回给模型进行后续对话。因此,Function Call的本质是“模型输出结构化调用指令”的一种技术机制。
Skill:业务能力的模块化封装
Skill 可以视为对Function Call的一种上层抽象和工程化组织。在实际项目中,单一函数的能力往往过于零散。例如,构建一个“智能邮件助手”可能需要发送、查询、标记、删除等多个函数协同工作。

这时,开发者通常会将这些相关的函数逻辑打包,形成一个独立的“邮件处理Skill”。这样做的好处显而易见:代码结构更清晰,模块复用性增强,团队协作也可以按Skill领域进行分工。从架构视角看,Skill是Function Call在复杂工程实践中自然演化出的、以业务功能为导向的组织形式。
MCP:旨在统一互联的协议标准
MCP 的全称是Model Context Protocol,由Anthropic在2024年底推出。它试图解决当前AI生态中的一个痛点:不同的大模型、工具和数据源之间缺乏统一的对接标准,导致开发者需要为每个系统编写特定的适配代码,效率低下。

MCP的愿景是成为AI应用领域的“通用接口”。它定义了一套标准化的通信协议,规范了服务端与客户端之间如何传递上下文、声明可用工具、返回执行结果等交互过程。如果MCP被广泛采纳,未来使用任何支持该协议的模型去对接任何同样支持M协议的工具或数据库,都将变得直接而高效,无需再编写大量胶水代码。
因此,MCP并非要取代Function Call或Skill,而是为它们所在的整个生态系统提供一套共同的“交流语言”和互联基础。
三者的关系总结
- Function Call 是技术实现层,奠定了模型主动调用工具的基础能力。
- Skill 是工程组织层,将零散的函数按业务逻辑封装成可复用的能力模块。
- MCP 是协议标准层,致力于在生态层面建立互联互通的一致性规范。
三者相辅相成,共同构成了现代AI Agent应用从微观调用到宏观集成的完整技术栈。理解它们的区别与联系,对于设计稳健的AI系统至关重要。更多技术讨论与实践分享,欢迎访问云栈社区与广大开发者交流。