**ToolCalling(工具调用)、MCP(Model Context Protocol,模型上下文协议)、Skills(技能)**是三个高频但容易混淆的概念,本文将围绕三者核心原理的区别来展开
一、极简总结:
1,ToolCalling(工具调用):大模型主动调用外部函数/工具的行为
2,MCP(模型上下文协议) :标准通信协议,统一大模型与外部系统、工具服务的对接规范
3,Skills(技能) :是业务流程封装单元,多工具、多步骤、带约束的复杂业务编排,可复用的工作流程。
通俗类比:ToolCalling是"动手",MCP是"通用接口插座",Skills是"成套干活的流程手册"。
二、三者定义与原理
1. ToolCalling(FunctionCalling)
ToolCalling是大模型的原生能力,也常被称作Function Calling,是大模型突破纯文本生成、对接外部世界的最基础能力。
为什么需要工具调用?
信息过时
模型训练数据有截止时间,无法获取最新消息,通过工具调用可以拿到实时数据
精确运算能力差
LLM是基于概率预测下一个具体字符的,对于处理高精度运算时极易出错,而工具调用则相当于给LLM安装了一个外部计算器。
无动手能力
普通LLM只能输出文本,但在实际业务中我们希望LLM可以实实在在的为我们做一些事,比如点外卖,发信息等等,而恰好工具调用就给LLM提供了实现这些操作的可能性。
工具调用过程

2. MCP(Model Context Protocol 模型上下文协议)
MCP是一种开放协议,通过标准化语言和接口,实现AI模型和外部工具的交互,MCP是一种协议,而不是工具。

为什么需要MCP?
MCP之前,每个AI应用对于不同的工具都要进行单独适配。MCP出现之后,多个AI应用只需要实现MCP客户端,各种工具只需要实现MCP服务器就可以进行通信,效率大大提升。

标准化的工具调用和使用:
MCP server标准化了工具的定义,使用方式,API等等,所有的工具都已统一的格式向MCP Client 暴漏API,使大模型可以发现并使用工具。总结来说就是MCP Server中装着各种工具

具体运转流程:
比如说你输入帮我推荐几部沈腾主演的搞笑电影,交互正式开始:
1,用户指令输入
Agent应用(下面用宿主应用来代替)把你的自然语言指令,连通工具菜单,发送给LLM
2,LLM进行思考并决策
LLM分析指令,发现需要调用外部工具,根据工具菜单决定调用哪个工具,生成包含工具名和具体参数(比如:actor = "沈腾",type = "搞笑")的结构化指令。
3,指令解析并转发(MCP Client来完成)
宿主应用进行指令拦截,交给MCP Client 。MCP Client进行指令解析,并转换成标注的的MCP数据格式,通过网络转发给MCP Server。
4,MCP Server接收指令并执行
首先是MCP网关接收指令,再进一步交给具体哪个MCP Server,调用大电影查询工具的API。拿到符合条件的结果,进一步将数据封装成JSON响应
5,结果回传
Client将收到的信息作为闲的上下文信息喂给LLM
6,LLM进行最后总结并输出
LLM结合拿到的数据进行总结,生成通顺的文本输出给用户。

3. Skills
Skills是包含skill.md文件的文件夹,该文件夹包含多种元文件(如操作脚本Scripts,参考资料References,说明说Skill.md等等),是基于ToolCalling/MCP基础能力,封装的多步骤、多工具、带业务规则、约束和上下文的完整工作流2。
通俗理解:MCP给AI装"手脚"(执行能力),Skills给AI装"大脑"(做事逻辑)。
典型场景:自动对账流程、客户售后工单处理、简历筛选分析、自动化周报生成。
为什么需要Skill?
1,按需加载
需要执行什么工作流就加载对应的Skill,不会出现回答一些与问题不相关的内容
2,固化经验
把某些问题的专业流程固化成特定指令,使智能体掌握最佳实践,
3,相互隔离
每个skill之间相互隔离,每个skill的修改不影响其他skill的内部流程
4,即拷即用
当你有不同类型的任务时,你不用每次都把具体的工作流程给LLM指示一遍,每次需要哪个Skill就使用哪个Skill,换个智能体Skill文件拷贝过去直接就可以用。
渐进式披露
试想一下,如果每个skill都有几千字的reference,每次加载全部skill说明,token消耗量巨大,同时AI的注意力也会被分散,难免会被其他不相关的信息干扰。而渐进式披露的设计理念则是然Agent通过分阶段加载信息,需要使用什么就加载哪部分信息,按需加载,涉及哪部分就加载哪部分
三、三者核心维度对比
| 对比维度 | ToolCalling(工具调用) | MCP(模型上下文协议) | Skills(技能) |
|---|---|---|---|
| 层级定位 | 模型基础能力层 | 架构协议基础设施层 | 业务应用编排层 |
| 核心作用 | 实现模型单次外部工具调用 | 标准化工具跨系统通信与复用 | 封装复杂业务流程与专家逻辑 |
| 粒度大小 | 原子级(单工具、单步骤) | 服务级(一组工具统一封装) | 业务级(多工具、多步骤闭环) |
| 标准化程度 | 碎片化、自定义无统一标准 | 全行业统一协议标准 | 业务自定义、场景化无统一标准 |
| 解决痛点 | 模型无法操作外部数据/服务 | 工具对接繁琐、无法跨端复用 | 单次工具无法完成复杂业务任务 |
| 依赖关系 | 无依赖,模型原生支持 | 基于ToolCalling能力做标准化升级 | 基于ToolCalling/MCP做业务编排 |
| 复用范围 | 单应用、单模型内复用 | 全平台、多Agent、多客户端通用 | 特定业务场景复用 |
四、三者完整协作链路
实际Agent开发中,三者是自底向上的层级依赖关系,完整链路如下:
底层:ToolCalling → 提供模型调用外部工具的原生能力,是所有外部交互的基础
中层:MCP → 将零散的工具统一封装为MCP Server,标准化注册、发现、调用、鉴权,解决工具碎片化问题
上层:Skills → 基于MCP标准化工具,编排多步骤业务流程,加入业务规则、约束、重试逻辑,形成可直接落地的业务技能
完整案例:企业自动报销Skill
-
底层ToolCalling:支持调用发票识别、金额校验、数据库查询、工单提交等原子工具
-
中层MCP:将所有报销相关工具封装为统一MCP服务,供企业所有Agent、办公系统通用调用
-
上层Skills:封装完整报销流程,形成自动报销技能,Agent可直接端到端完成任务
五、我问你答
1:ToolCalling和MCP的核心区别是什么?
二者核心是能力层与协议层的差异。第一,定位不同,ToolCalling是大模型原生的工具调用执行能力,属于模型基础能力,负责单次原子工具调用;MCP是通用标准化通信协议,负责统一大模型与外部系统的对接规范。第二,标准化程度不同,原生ToolCalling碎片化严重,无统一对接标准,每个项目需要自定义适配;MCP统一了工具注册、发现、调用、上下文传递和鉴权流程,实现工具一次开发、全平台复用。第三,复用范围不同,ToolCalling仅支持单应用内复用,MCP支持跨模型、跨Agent、跨系统通用复用。简单来说,ToolCalling是能不能调用工具,MCP是怎么规范、高效地调用所有工具。
2:MCP和Skills的区别与协作关系?
MCP是底层能力基建 ,Skills是上层业务封装,二者层级不同、互补协作。MCP解决的是AI如何标准化连接外部系统、获取工具能力,提供原子化、可复用的工具服务;Skills解决的是AI如何按照业务规则完成复杂任务,对多个MCP工具做流程编排。协作关系上,Skills依赖MCP的标准化工具能力,MCP为Skills提供稳定、通用的执行底座,没有MCP则工具复用成本极高,没有Skills则工具只能零散执行,无法落地复杂业务场景。
3:什么场景用原生ToolCalling?什么场景用MCP?
轻量化、单一场景、一次性工具调用场景,使用原生ToolCalling即可,比如简单的天气查询、单次翻译、查询,开发成本低、无需额外运维。企业级、多场景、多Agent复用、需要对接多个外部系统的场景,必须使用MCP,比如多智能体共享业务服务、第三方生态工具对接。MCP可以解决原生ToolCalling碎片化、无法统一管理的工程痛点,提升工具复用率和可维护性。
4:Skills和普通多轮工具调用的区别?
普通多轮ToolCalling是模型自主随机编排,无固定流程、无业务约束、容错性差,容易出现无效调用、逻辑混乱的问题。Skills是人工固化的标准化业务流程,包含固定步骤、业务规则、参数校验、异常重试、边界约束和话术规范,是可沉淀、可复用的专家业务能力。简单来说,多轮ToolCalling是AI随机摸索做事,Skills是AI按照成熟流程专业做事。
5:简述三者的层级架构
整体分为三层自底向上的架构:底层是ToolCalling,是模型原生的原子工具执行能力,是所有外部交互的基础;中层是MCP协议,作为通用基础设施,标准化工具的通信与复用,解决工程化问题;上层是Skills业务技能,基于底层工具能力和MCP基建,封装复杂、闭环的业务流程。三层各司其职:ToolCalling负责执行、MCP负责连接、Skills负责业务,共同构成Agent的工作体系。