Skill 与工作流

Skill(技能包)

Skill 是一种打包好的、可复用的能力单元——通常是一段说明文字,有时还搭配脚本或参考文件——智能体只有在任务真正用得上时才会把它加载进上下文。

智能体加载 Skill获得新能力
智能体加载匹配的 Skill,从而获得对应能力。

大多数智能体一开始只有一个通用的系统提示词和固定的工具集。如果什么能力都塞进提示词里,上下文很快就会被无关内容占满。Skill 的思路是把某个具体能力单独打包成一个文件夹——一份说明(有时还带脚本、模板或参考资料)——只有当前任务真的匹配得上,才把它加载进来。

这样做的核心好处是节省上下文:智能体可能“知道”几十个 Skill 的存在,但每次对话只会按需加载一两个真正相关的,而不是把所有可能用到的指令常年挂在提示词里。

Claude Skills 是这个模式的一个具体实现:每个 Skill 是一个文件夹,里面有一个 SKILL.md 文件,用 YAML frontmatter 写明名称和“什么情况下该用它”的描述,后面跟着具体操作说明。智能体在运行时会自己判断当前任务是否匹配某个 Skill 的描述。

怎么运作

实际运行时,智能体(或运行它的程序)会先低成本地保留所有可用 Skill 的名称和描述列表。一旦用户的请求看起来匹配某个 Skill 的描述,就把那个 Skill 完整的说明内容——以及它引用的其他文件——加载进上下文,智能体再照着这份说明继续干活。如果没有匹配上,这些内容完全不会被加载。

举个例子

skills/pdf-forms/SKILL.md
---
name: pdf-forms
description: 填写并压平 PDF 表单字段。当用户要求填写或补全一份 PDF 表单时使用。
---
1. 用 PDF 处理库识别表单字段。
2. 把提供的值对应到字段名上。
3. 填写并压平表单。

和相关概念的区别

Skill 和工具(tool)的区别:工具是一个输入参数固定的可调用函数(参见 function-tool-calling),而 Skill 是更大的一个说明和资源包,里面甚至可能会指导智能体该如何组合使用多个工具来完成任务。

常见误解

常被以为: Skill 必须包含代码或脚本才有用。
实际上: Skill 完全可以只是纯文字说明——一份告诉智能体该怎么做的 markdown 文件,不含任何可执行代码。
常被以为: 用 Skill 之前得像装插件一样先安装。
实际上: 在大多数实现里 Skill 就是一个智能体可以读取的文件,除了让这个文件可被访问到之外,没有额外的安装或构建步骤。

常见问题

Claude Code 里的 Skill 是什么?
是一种打包好的能力,通常是一个 SKILL.md 文件,里面有说明和可选的配套文件;只有任务匹配它的描述时,Claude 才会把它加载进上下文。
做一个 Skill 需要写代码吗?
不需要。很多 Skill 就是纯 markdown 说明;代码或脚本只是某些任务额外需要的补充。
Skill 和 tool 有什么区别?
tool 是一个单独的可调用函数;Skill 是更完整的说明包,可以指导智能体如何使用一个或多个工具。

最近核实: 2026-08-28

相关术语