用Excel理解AI智能体:Skill与工具调用的本质区别

引言:从工具调用到Skill
在AI智能体(AI Agent)开发中,"工具调用"(Tool Call)和"技能"(Skill)是两个核心概念。很多开发者容易将它们混为一谈,但实际上Skill是对工具调用的一种更高层次的业务编排。本文通过一个Excel智能体的实际案例,深入解析Skill的运作原理和API调用链路,帮助你真正理解这两个概念的本质区别。
工具调用:原子化的单一操作
在之前的系列内容中,我们已经了解了工具调用的基本逻辑:智能体向大语言模型发送API请求时,会附带工具列表;模型根据用户意图返回需要调用的工具及参数;智能体在本地执行工具后,将结果返回给模型或直接展示。
工具调用(Function Calling / Tool Use)是2023年以来大语言模型API领域最重要的能力演进之一。OpenAI在2023年6月首次为GPT模型引入了Function Calling能力,随后Anthropic的Claude、Google的Gemini等主流模型也相继跟进。其核心机制是:在API请求中以JSON Schema的形式声明可用工具的名称、描述和参数结构,模型在推理过程中判断是否需要调用工具,并以结构化JSON格式返回工具名和参数值。这一机制使大模型从纯文本生成器进化为可以与外部系统交互的决策引擎,是构建AI Agent的技术基石。
以Excel智能体为例,它拥有的工具非常基础:
- get_cell_value:获取单个单元格的值(数据读取)
- set_cell_value:设置指定单元格的值(数据写入)

这些工具的特点是原子化——每个工具只完成一个最小粒度的操作。原子化(Atomicity)是软件工程中的经典设计原则,源自数据库事务的ACID特性。在AI Agent工具设计中,原子化意味着每个工具只负责一个不可再分的最小操作单元。这种设计遵循了Unix哲学中"做好一件事"的理念,带来了高度的可组合性和可测试性。原子化工具可以像乐高积木一样自由组合,而非设计一个庞大的多功能工具。这也与微服务架构中的单一职责原则(SRP)一脉相承。
比如你问"AI10单元格是什么数字",智能体调用get_cell_value工具,返回结果"123",整个过程只涉及一次简单的工具调用。
Skill:工具调用的业务编排
什么是Skill?
Skill(技能)本质上是对工具调用的一种业务编排,或者说是一种标准化执行手册(SOP)。它将多个原子化的工具调用组合起来,配合精心设计的提示词模板,完成一个更复杂的业务目标。
标准操作手册(Standard Operating Procedure, SOP)是企业管理和工业生产中的核心概念,用于将复杂流程分解为可重复执行的标准步骤。在AI Agent领域,SOP的概念被引入来描述Skill的编排逻辑,这与RPA(机器人流程自动化)领域的工作流编排有异曲同工之妙。不同之处在于,传统RPA的流程是硬编码的确定性路径,而AI Agent中的Skill编排借助大模型的推理能力实现了柔性编排——模型可以根据上下文动态决定工具调用的顺序和参数,具备一定的容错和自适应能力。
在这个Excel智能体中,定义了四个Skill,其中一个典型的例子是"数据汇总":
- 功能描述:对选定数据区域进行汇总,计算总和、平均值、最大值、最小值并返回结果
- 涉及工具:
sum_range(求和)、average_range(求平均)等 - Prompt模板:"请对数据区域{区域}进行汇总,计算总和、平均、最小、最大并返回结果"
可以看到,一个Skill背后需要协调多个工具的调用,并通过提示词模板来引导大模型正确编排执行顺序。
实际演示:数据汇总Skill的执行过程
当我们要求智能体"汇总AI10到AI12的数据"时,它需要读取三个单元格的数据,然后分别计算总和与平均值。

最终结果显示:总和为202,平均值为67.33。不过说个细节,最大值和最小值无法获取——因为工具列表中并没有提供计算最大最小值的工具。这恰好说明了一个重要原则:Skill的能力边界取决于底层工具的能力范围。
另一个更复杂的Skill是"画图":根据AH10到AI12的数据绘制柱状图,涉及数据读取、标签解析、图形绘制等多个步骤。这已经远远超出了单个工具调用的范畴,是多个工具协同工作的结果。
深入解析:Skill的API调用链路
为了彻底理解Skill的实现原理,我们来拆解"数据汇总"这个Skill的完整API调用链路。

整个过程分为两次API调用。这种"两次调用"模式在业界被称为ReAct(Reasoning + Acting)循环的一个完整迭代。ReAct框架源自2022年Google和Princeton大学联合发表的论文《ReAct: Synergizing Reasoning and Acting in Language Models》,其核心思想是让大模型交替进行推理(生成思考链)和行动(调用外部工具),并将观察结果作为下一轮推理的输入。第一次调用是Reasoning阶段,模型分析意图并决定行动方案;中间的本地执行是Acting阶段;第二次调用则是将观察结果(Observation)反馈给模型进行总结。在更复杂的场景中,这个循环可能迭代多次——模型可能需要3次、5次甚至更多轮的工具调用才能完成任务,每一轮都包含推理-执行-观察的完整闭环。LangChain、AutoGen等主流Agent框架都内置了这种循环机制,并提供了最大迭代次数、早停条件等工程化配置。
第一次调用:工具选择与参数确定
输入侧的构造:
- 系统角色设定:"你是一个Excel助手"
- 可用工具声明:以标准格式告知模型可用的工具名称和参数定义(如
sum_range、average_range) - 用户提示词:这里是关键——智能体并不是直接把用户的原始输入发给模型,而是先读取Skill表中的Prompt模板,将用户输入包装成更精确的指令:"请对数据区域AI10:AI12进行汇总,计算总和、平均、最小、最大并返回结果"
Prompt模板在Skill中扮演的角色远不止简单的文本替换。它实际上是一种"意图翻译层"——将用户的模糊自然语言表达转化为模型更容易理解和执行的结构化指令。这涉及到Prompt Engineering中的几个关键技术:指令明确化(将"汇总数据"转化为具体的计算要求)、上下文注入(将数据区域等参数嵌入提示词)、以及输出格式约束。高质量的Prompt模板可以显著提升工具调用的准确率,降低大模型"幻觉"或误判的概率。这也是为什么在生产级Agent系统中,Prompt模板的设计和迭代往往占据了大量的工程投入。
模型的响应:
大模型分析后,返回了它认为应该调用的工具及参数:
- 调用
sum_range,参数为AI10:AI12 - 调用
average_range,参数为AI10:AI12

第二次调用:结果回传与自然语言汇总
智能体拿到模型的"调用指令"后,在本地执行这些工具:
sum_range执行结果:202average_range执行结果:67.333
然后发起第二次API请求,这次的消息列表包含:
- 前三条为历史上下文(系统提示、用户输入、模型的工具调用决策)
- 最后追加工具执行结果:告知模型"sum_range的结果是202,average_range的结果是67.333"
模型拿到这些数据后,将结果包装成用户友好的表格形式返回,完成整个Skill的执行。
Skill的本质:提示词编排与工具组合
通过以上分析,我们可以总结出Skill的实现本质:
1. Skill并没有专门的API接口
在大模型的API层面,并不存在一个独立的"Skill调用"接口。Skill的实现完全依赖于现有的工具调用机制。
2. 核心在于提示词编排
Skill通过精心设计的Prompt模板,引导大模型正确地选择和组合多个工具。这也是为什么Skill定义中需要包含详细的描述和Prompt模板。
3. Skill = SOP + 工具集
可以把Skill理解为一份标准操作手册,它规定了"完成某个业务目标需要调用哪些工具、按什么顺序、用什么参数"。
4. 稳定性仍是关键挑战
由于Skill依赖大模型的理解和推理能力,同样的请求可能产生不同的结果。在演示中我们看到,多次调用才能得到正确结果,这是当前AI智能体开发中需要重点关注的工程问题。
大模型输出的不确定性源自其基于概率采样的生成机制。在推理阶段,模型对下一个token的预测本质上是一个概率分布,通过temperature、top-p等参数控制采样的随机程度。即使temperature设为0,不同的推理批次、模型版本更新、甚至API服务端的负载均衡策略都可能导致输出差异。在工程实践中,业界采用了多种策略来提升Agent的稳定性:包括设置temperature为0以减少随机性、使用结构化输出(Structured Output)约束返回格式、实现重试机制和结果校验逻辑、以及通过Few-shot示例在Prompt中提供标准执行范例。OpenAI在2024年推出的Structured Outputs功能和Anthropic的Tool Use规范,都在API层面为提升工具调用的确定性做出了改进。此外,评估驱动开发(Eval-driven Development)也成为Agent开发的最佳实践——通过构建自动化测试集来持续监控Skill执行的准确率和一致性。
总结
理解了Tool Call和Skill的区别,你就掌握了OpenAI Codex、Claude Code等主流AI智能体框架的核心设计思想。OpenAI Codex采用了代码执行沙箱作为核心Skill载体,将复杂任务编译为可执行代码片段,在隔离环境中运行并捕获输出;Claude Code则通过系统提示词中的详细指令集来定义Skill边界,强调工具链的顺序编排,并利用Anthropic的Tool Use协议实现精确的参数传递;微软的AutoGen框架引入了多Agent协作模式,不同Agent各自持有不同的Skill集合,通过对话协议完成跨Skill的任务分解与结果聚合。尽管实现路径各异,但底层逻辑一致:都是在工具调用API之上,通过提示词工程和流程编排构建更高层次的业务能力抽象。
工具是积木,Skill是用积木搭建的模型——真正的智能体开发,就是设计好原子化的工具,再通过Skill将它们编排成强大的业务能力。这个用Excel实现的智能体虽然简单,但完整展现了这一架构的精髓。
核心要点
- 工具调用是原子操作:每个工具只完成一个最小粒度的单一功能,遵循Unix哲学和单一职责原则
- Skill是业务编排:通过Prompt模板和工具组合,将多个原子操作编排为完整的业务流程
- Skill无独立API:在技术实现层面,Skill完全基于现有的工具调用机制,通过提示词工程实现更高层次的抽象
- ReAct循环是执行引擎:Skill的执行遵循推理-行动-观察的迭代循环,可能涉及多轮API调用
- 稳定性是工程核心:大模型的概率性输出要求开发者在Prompt设计、重试机制、结果校验等方面投入大量工程努力
- 能力边界由工具决定:Skill再强大,也无法超越底层工具集的能力范围
相关推荐

沃尔沃XC40插混版回归:传感器升级+Gemini AI加持
沃尔沃XC40 PHEV插电式混动版时隔三年重返市场,带来全新外观设计、升级传感器套件及谷歌Gemini AI车机系统。了解这款车型的核心升级亮点、插混回归的市场逻辑及生成式AI进入座舱的深远意义。

暴雪工会赢得历史性合同:游戏业劳工运动迎来转折点
暴雪娱乐员工成功签订历史性工会合同,成为游戏行业劳工运动的里程碑事件。本文深入分析游戏业长期缺乏工会的结构性原因、微软收购后的态度转变,以及这一先例对整个科技和游戏行业劳工权益的深远影响。

AI产品发布新范式:团队心血与用户社区的双向奔赴
探析AI产品发布中情感叙事与社区驱动增长的新趋势。从一条引发行业关注的推文出发,解读AI团队如何通过真诚投入、开放试用和社区建设,实现产品与用户的双向奔赴,构筑长期竞争壁垒。