什么是 Skills
Skills 是把一项特定任务封装成可重复调用的能力单元。它通过技能描述、参数定义和执行逻辑,把用户的自然语言意图连接到真实系统操作。

简单说,Skills 就是智能体世界里的“能力积木”。一个 Skill 可以负责查天气、发邮件、创建提醒、订酒店、处理表格、调用内部系统或执行一段自动化流程。
Skills 解决的核心问题是:大语言模型能理解“你想做什么”,但模型本身不应该直接拥有全部系统权限,也不天然执行真实动作。Skill 把“理解意图”和“执行任务”之间的距离缩短了。
一句话定义:Skills 是面向智能体的语义化能力模块,让 AI 可以按需选择、填写参数、调用执行,并把结果返回给用户。
为什么 Skills 像搭积木
智能体开发越来越像搭积木,是因为开发者不再只写一条固定流程,而是在定义一组可组合的能力模块。

想象你要教一个机器人点咖啡。低效做法是每次都说:
- 打开咖啡应用。
- 选择拿铁。
- 加一份糖浆。
- 选择到店取。
- 支付订单。
更好的做法,是把这些步骤封装成一个 order_coffee Skill。以后用户只要说“帮我点一杯平时的拿铁”,模型就可以识别这是点咖啡任务,填入饮品、口味、取餐方式和支付偏好,再交给 Skill 执行。
这个过程像搭积木,因为每个 Skill 都是一个可命名、可复用、可替换的能力块。开发者可以先做小块,再组合成更复杂的任务。
Skills 和函数调用有什么区别
Skills 通常建立在函数调用、API、工作流或自动化脚本之上,但它强调的是语义级封装,而不是单个技术接口。

函数调用通常回答“调用哪个函数、传什么参数”。Skill 还要回答“这个能力适合什么场景、什么时候不该用、失败时怎么办、返回结果怎么理解”。
| 维度 | 函数调用或 API | Skills |
|---|---|---|
| 面向对象 | 主要面向开发者和程序 | 面向模型、智能体和开发者 |
| 关注重点 | 函数名、请求格式、返回值 | 用途描述、触发场景、参数语义、执行策略 |
| 抽象层级 | 技术接口 | 语义能力 |
| 典型粒度 | 一个查询、一次提交、一个端点 | 一个可完成的任务能力 |
| 失败处理 | 多由调用方代码处理 | 可以在 Skill 描述或逻辑中声明重试、降级、确认 |
因此,Skills 不是凭空出现的新魔法。它更像是把函数调用、API、权限控制和任务说明书包装成模型能理解的能力单元。
为什么现在反复提起 Skills
Skills 被反复提起,是因为大语言模型让自然语言变成了新的操作入口。

以前的自动化通常依赖按钮、菜单、表单、定时任务或规则引擎。用户必须知道在哪里点击、填什么字段、按什么顺序操作。系统处理的是结构化命令。
大语言模型改变了这一点。用户可以说“明天下午三点提醒我开会”“帮我整理这份表格”“把上周客户投诉总结成工单”。这些表达是模糊的、自然的、上下文相关的。
模型擅长理解这些自然语言意图,但模型本身并不直接执行任务。Skills 就是连接意图与执行的那只手:模型负责理解目标,Skill 负责把目标变成受控操作。
AI 助手如何调用一个 Skill
AI 助手调用 Skill 的过程通常包含意图识别、Skill 匹配、参数填充、执行和结果反馈五步。

以“明天下午三点提醒我开会”为例,系统背后可能发生这些动作:
| 步骤 | 发生了什么 | 例子 |
|---|---|---|
| 1. 意图识别 | 模型判断用户想创建提醒 | 创建提醒 |
| 2. Skill 匹配 | 模型选择 create_reminder Skill | 提醒类任务 |
| 3. 参数填充 | 模型从自然语言中提取时间和内容 | 时间:明天下午三点;内容:开会 |
| 4. 执行逻辑 | 宿主程序调用日历或提醒服务 | 写入提醒系统 |
| 5. 结果反馈 | 模型把执行结果转成自然语言 | “已为你创建提醒。” |
用户看到的只是一句话,背后是模型、Skill 和外部系统之间的协作。
Skills 为什么像智能体世界里的 App
Skills 可以理解为智能体世界里的 App:每个 Skill 专注一类任务,智能体根据用户意图打开合适的能力。

手机上的 App 有明确边界。计算器做计算,日历管日程,地图负责路线,外卖应用负责下单。用户不需要每次重新写程序,只要打开对应 App。
Skills 也是这样。一个智能体可以拥有多个能力:
get_weather:查询天气。send_email:发送邮件。create_ticket:创建工单。summarize_doc:总结文档。book_hotel:查询或预订酒店。
不同的是,Skills 没有图标,通常靠语言触发。用户说出目标,模型判断该“打开”哪个 Skill。
一个 Skill 由哪些部分构成
一个 Skill 通常由技能描述、参数定义和执行逻辑三部分构成。

这三个部分决定了模型能不能选对、填对、执行对。
| 组成部分 | 作用 | 示例 |
|---|---|---|
| 技能描述 | 告诉模型这个 Skill 能做什么、什么时候使用、有什么限制 | “当用户要求发送、回复或转发邮件时使用。” |
| 参数定义 | 告诉模型需要哪些输入、类型是什么、哪些必填 | 收件人、主题、正文、附件 |
| 执行逻辑 | 真正完成任务的代码、API、工作流或服务调用 | 调用邮件服务发送消息 |
一个简化的 Skill 定义可以这样理解:
{
"name": "create_reminder",
"description": "当用户要求创建提醒、会议提醒或待办提醒时使用。需要提醒时间和提醒内容。",
"parameters": {
"time": {
"type": "string",
"description": "提醒时间,必须能解析成具体日期时间"
},
"content": {
"type": "string",
"description": "提醒用户要做的事情"
}
}
}
这个结构的价值在于,模型不只看到一个函数名,还能理解这个能力的语义边界。
Skills 如何推动复用和组合
Skills 的最大工程价值是复用。一个写好的 Skill 可以被多个智能体、多个工作流和多个产品入口共同调用。

例如,一个 get_weather Skill 可以被不同场景复用:
- 闲聊助手:回答“今天上海会下雨吗?”
- 旅行规划器:根据目的地天气调整行程。
- 早晨简报:自动汇总当天温度和穿衣建议。
- 智能家居:根据天气决定是否关闭窗户。
同一个能力不需要重复开发。只要 Skill 的描述、参数和返回结果足够清楚,不同智能体就能把它放进各自的流程里。
这就是 Skills 让智能体开发像搭积木的原因:开发者先做小能力,再把小能力组合成大任务。
什么是能力型架构
能力型架构是先定义一组可调用的能力模块,再让模型或调度系统根据用户意图进行编排的开发方式。

传统软件开发常把界面、业务逻辑、数据流和操作入口绑在一起。用户通过固定页面和按钮触发固定流程。流程变化时,开发者常需要改界面、改后端、改状态机。
基于 Skills 的开发方式不同。开发者先把业务能力拆成模块:
- 查询类能力:查订单、查库存、查天气、查客户资料。
- 生成类能力:写邮件、生成报告、总结文档、生成工单说明。
- 操作类能力:创建提醒、提交订单、发送消息、更新 CRM。
- 编排类能力:把多个 Skill 串成一个多步任务。
模型变成调度中心。它根据用户意图选择能力、填参数、决定顺序,并在需要时请求用户确认。
能力型架构的关键价值是灵活性:业务流程变化时,很多场景只需要新增、替换或调整某个 Skill,而不是重写整个系统。
Skills 和低代码、RPA 有什么关系
Skills 不只属于 AI 领域。低代码平台和 RPA 早就在使用“把操作封装成可复用动作”的思想。

区别在于触发方式和理解能力不同。
| 维度 | 低代码动作 | RPA 脚本 | AI Skills |
|---|---|---|---|
| 触发方式 | 按钮、表单、工作流节点 | 定时、按钮、规则 | 自然语言、上下文、系统事件 |
| 输入来源 | 用户填表或系统字段 | 固定字段或页面内容 | 模型从用户表达中提取 |
| 灵活性 | 中等,依赖流程设计 | 较低,依赖稳定界面 | 较高,可结合上下文判断 |
| 适合任务 | 业务流程自动化 | 重复网页操作 | 意图驱动的多步任务 |
AI 的加入,让 Skill 的触发方式从“人点按钮”变成“人说目标”。这也是 Skills 最近被反复讨论的关键原因。
Skill 调用流程是什么
一个完整的 Skill 调用流程,可以看成用户、模型、Skill 库、执行器和外部系统之间的接力。

标准流程可以分为六步:
- 用户提出目标:例如“帮我把这份表格里的客户分组,并发给销售主管”。
- 模型理解意图:判断任务涉及表格处理和邮件发送。
- 检索可用 Skills:找到
analyze_spreadsheet和send_email。 - 填写参数:提取表格路径、分组规则、收件人和邮件正文。
- 执行 Skill:宿主程序校验权限并调用真实服务。
- 返回结果:模型汇总执行状态、失败原因或下一步建议。
这个流程里,模型不是唯一主角。真正可靠的系统还需要权限校验、参数校验、错误处理、日志记录和人工确认。
为什么 Skill 描述决定匹配质量
Skill 的描述质量直接影响模型能否选对能力。描述越具体,误触发和漏触发越少。

一个差的描述通常太短,例如:
发送邮件。
一个更好的描述会写清楚触发场景、必要输入和限制:
当用户要求发送、回复或转发邮件时使用。需要收件人、主题和正文。
如果用户没有明确收件人,先追问;如果邮件涉及合同、报价或正式通知,需要用户确认后再发送。
高质量 Skill 描述通常包含四类信息:
- 典型场景:用户在什么需求下应该使用这个 Skill。
- 关键词和同义表达:例如发送、回复、转发、通知、抄送。
- 前置条件:是否需要登录、授权、文件、用户确认或具体 ID。
- 能力边界:不能做什么,哪些动作必须人工确认。
如果有几十个甚至上百个 Skills,描述质量就是模型调度准确率的基础设施。
Skills 和自动化脚本有什么区别
Skills 不是普通自动化脚本的同义词。脚本偏固定流程,Skills 更强调语义触发、上下文判断和能力组合。

| 维度 | 自动化脚本 | Skills |
|---|---|---|
| 触发条件 | 固定按钮、命令或时间 | 自然语言意图和上下文 |
| 流程结构 | 通常预先写死 | 可根据参数、状态和模型判断分支 |
| 复用方式 | 复制脚本或改脚本 | 被不同智能体按描述调用 |
| 输入处理 | 依赖固定字段 | 可从自然语言中抽取参数 |
| 适合场景 | 稳定、重复、规则明确的操作 | 多入口、多表达、多步骤的任务 |
例如,同一个“订酒店” Skill 可以根据上下文决定是比价、筛选、生成候选列表,还是在用户确认后下单。普通脚本也能写分支,但它通常不负责理解用户自然语言里的真实意图。
结论是:脚本是固定动作,Skills 是可被模型理解和编排的能力。
智能家居如何使用 Skills 编排
智能家居是理解 Skills 编排能力的直观场景。每个设备能力都可以封装成一个 Skill,再由模型按场景组合调用。

假设家里有这些 Skills:
turn_off_light:关闭大灯。set_light_color:调整灯光颜色。close_curtain:关闭窗帘。set_air_conditioner:调整空调温度。turn_on_projector:打开投影仪。
当用户说“开启电影模式”时,系统不一定需要一个写死的“电影模式脚本”。模型可以根据用户偏好和设备状态组合调用:
- 关闭客厅大灯。
- 关闭窗帘。
- 把氛围灯调成暖黄色。
- 打开投影仪。
- 如果室温高于设定值,再调整空调。
用户说的是一个场景目标,系统执行的是一组能力块。这就是 Skills 编排的价值。
Skills 的限制和风险是什么
Skills 的价值很大,但它不是把所有 API 暴露给模型就结束了。真正可用的 Skill 系统必须处理权限、描述、可靠性和维护成本。
常见风险包括:
- 描述不清:模型可能选错 Skill,或者在不合适的场景触发。
- 权限过大:一个 Skill 如果拥有过多系统权限,会放大误操作风险。
- 参数不完整:缺少必要字段时,系统必须追问或拒绝执行。
- 缺少确认:支付、删除、发送正式邮件、提交合同等高风险动作应要求用户确认。
- 返回结果不可靠:外部 API 可能失败、超时、返回空数据或返回过期信息。
- Skill 过多:能力库膨胀后,如果缺少分类、检索和命名规范,模型更难选择。
生产级 Skill 系统通常需要最小权限、参数校验、人工确认、审计日志、失败重试和回滚策略。
Skills 适合哪些真实场景
Skills 适合“用户用自然语言提出目标,系统需要调用外部能力完成任务”的场景。
典型场景包括:
| 场景 | 可以封装的 Skills | 用户表达 |
|---|---|---|
| 办公助手 | 创建会议、发邮件、总结文档、生成待办 | “把这份会议纪要发给项目组。” |
| 客服系统 | 查订单、创建工单、退款申请、知识库检索 | “帮客户查一下退款进度。” |
| 数据分析 | 读取表格、清洗数据、生成图表、解释指标 | “把本月销售异常点标出来。” |
| 研发工具 | 读取文件、运行测试、生成 PR 描述、查日志 | “找出这个接口最近失败的原因。” |
| 智能家居 | 开灯、调温度、拉窗帘、切换场景 | “我准备看电影了。” |
| 个人自动化 | 订咖啡、设提醒、规划路线、整理账单 | “帮我安排明早的通勤提醒。” |
判断一个能力是否适合做成 Skill,可以看三个条件:是否会重复使用,是否有明确输入输出,是否需要模型按语义选择。
常见问题
Skills 是什么?
Skills 是把特定任务封装成可重复调用的能力单元。它包含技能描述、参数定义和执行逻辑,让智能体可以根据用户意图选择并调用对应能力。
Skills 和 Agent Tools 是一回事吗?
二者高度相关,但侧重点不同。Agent Tools 更强调智能体连接外部系统的工具接口,Skills 更强调可复用的语义能力封装。一个 Skill 通常可以通过工具调用、函数调用、API 或工作流来实现。
Skills 和 Function Calling 有什么区别?
Function Calling 是让模型输出函数名和参数的机制。Skills 是更高一层的能力设计,它会包含用途说明、触发条件、输入输出、执行逻辑、错误处理和权限边界。
为什么智能体开发会越来越像搭积木?
因为开发者可以把任务拆成多个 Skills,再让模型根据用户意图组合调用。新增业务能力时,很多时候只需要新增或调整一个 Skill,而不是重写完整应用流程。
Skill 越多越好吗?
不是。Skill 太多且描述混乱时,模型更容易选错。更好的做法是保持清晰命名、稳定参数、明确边界,并按场景分类管理 Skill 库。
哪些 Skill 必须要求人工确认?
涉及支付、删除、发送正式通知、提交合同、修改权限、访问敏感数据和不可逆操作的 Skill,应要求用户确认。低风险查询类 Skill 可以更自动化,高风险操作必须有权限和审计边界。
总结:Skills 把动手能力和思考能力接在一起
Skills 是 AI 时代对“可执行能力”的最小颗粒度封装。它把“能做某件事”变成了一个可以被模型理解、选择、组合和优化的单位。

理解 Skills,就能理解为什么智能体开发越来越像搭积木。模型负责理解语言和调度能力,Skills 负责把能力标准化、模块化、可复用化。
如果用一句话收尾:Skills 让机器人的“动手能力”和语言模型的“思考能力”真正长在了一起。

