Skill(技能)是 AI 系统中一种重要的行为定制机制——它本质上是一组预定义的指令模板,在需要时注入到系统的运行上下文中,指导 AI "以什么方式工作"。本教程将从概念本质、核心架构、类型分类和典型应用模式等角度,系统讲解 Skill 的完整知识体系。
前置教程
如想快速开始学习本教程,你可能需要先完成以下前置教程:
- Prompt概念详解及应用教程,Skill 的本质就是结构化、可复用的 Prompt 指令,理解 Prompt 是理解 Skill 的基础。
- Agent概念详解,Skill 常用于规范 Agent 的行为方式和输出标准,理解 Agent 有助于理解 Skill 的应用场景。
- Workflow概念详解与应用教程,Skill 可以与 Workflow 配合实现复杂的多步骤编排。
1. 什么是 Skill
1.1 概念起源与定义
Skill(技能) 的概念源自 AI 系统对"可复用行为模板"的需求。早期的 AI 应用每次交互都需要完整描述任务上下文和行为规范,这种方式存在明显的效率问题——相似的指令需要反复描述,行为标准难以统一。
Skill 的标准化定义是:
Skill 是一组预定义的指令模板,在需要时注入到 AI 系统的运行上下文中,作为行为指令的一部分,指导 AI 按照特定规范执行任务。
拆解这个定义,Skill 包含三个核心要素:
| 要素 | 含义 | 举例 |
|---|---|---|
| 指令模板(Instruction Template) | 预定义的规范化操作指南 | "按以下步骤审查代码:1.检查正确性 2.检查安全性" |
| 上下文注入(Context Injection) | 在特定时机合并到系统提示中 | 用户输入 /review 后 Skill 指令自动生效 |
| 行为引导(Behavior Guidance) | 持续影响后续交互的行为模式 | Skill 生效后,AI 始终按定义的规范输出 |
Skill 定义 AI 怎么做(行为方式),而不是 AI 做什么(任务目标)。
1.2 Skill 的核心特征
一个成熟的 Skill 机制通常具备以下五个核心特征:
| 特征 | 说明 | 类比 |
|---|---|---|
| 可复用性(Reusability) | 一次定义,多次调用 | 像编程中的函数,定义后可在任何需要时调用 |
| 可组合性(Composability) | 多个 Skill 可以同时生效,相互叠加 | 像乐高积木,不同 Skill 组合产生更复杂的行为要求 |
| 即时性(Immediacy) | 调用后立即生效,无需重启或重新加载 | 像按下遥控器按钮,功能立即切换 |
| 上下文相关性(Context-aware) | 可以接收参数,根据具体场景调整行为 | 像调查问卷模板,问题固定但答案因人而异 |
| 作用域限定(Scope-bound) | 在限定的会话或任务范围内生效 | 像临时备忘录,用完即弃 |
1.3 指令系统的发展演进
AI 系统的指令机制经历了从简单到复杂的演进过程:
| 阶段 | 形式 | 特点 | 局限性 |
|---|---|---|---|
| 内嵌指令 | 每次对话手动输入完整指令 | 灵活但重复劳动 | 每次都要重新描述 |
| 系统预设 | 固定的系统提示词 | 统一的初始行为规范 | 无法动态调整 |
| Skill 机制(当前) | 可动态加载的指令模板 | 按需加载、可组合、即时生效 | 需要一定的定义规范 |
| 智能编排(未来) | AI 自主创建和组合指令 | 完全自动化 | 技术尚未成熟 |
2. Skill 的核心架构
2.1 架构总览
现代 AI 系统的 Skill 机制可以抽象为四个核心模块,协同完成从定义到生效的完整流程:
Definition Layer] --> 注册层[注册层
Registry Layer] 注册层 --> 调度层[调度层
Dispatch Layer] 调度层 --> 执行层[执行层
Execution Layer] style 定义层 fill:#d6eaf8,stroke:#2980b9 style 注册层 fill:#ebdef0,stroke:#8e44ad style 调度层 fill:#d5f5e3,stroke:#27ae60 style 执行层 fill:#fdebd0,stroke:#e67e22
2.2 定义层(Definition Layer)
定义层负责 Skill 的编写和结构设计,是 Skill 的起点。
元数据(Metadata):描述 Skill 的基本属性和调用规则
| 元数据项 | 说明 | 示例 |
|---|---|---|
| 名称 | Skill 的唯一标识 | code-review |
| 描述 | 简短说明 Skill 的用途 | "审查代码质量,检查正确性和安全性" |
| 调用权限 | 谁可以调用(用户/AI/两者) | user-invocable: true |
| 触发条件 | 自动调用的匹配规则 | 当检测到代码审查需求时触发 |
| 作用域 | Skill 的生效范围 | 会话级别 / 任务级别 |
指令正文(Instructions):Skill 的核心内容,定义 AI 应遵循的行为规范
审查范围:
- 逻辑是否正确,边界条件是否完备
- 是否存在安全漏洞(注入、XSS 等)
- 代码是否易于维护
输出格式:
- 每个问题标注:类别、位置、严重程度、原因
变量模板(Variables):允许 Skill 接收外部参数,动态调整行为
为 $TASK_NAME 生成 API 文档:
1. 读取 $TARGET_FILE 的源代码
2. 提取接口定义
3. 按 $FORMAT 格式输出
2.3 注册层(Registry Layer)
注册层负责管理系统中所有可用的 Skill。
- 注册表(Registry):维护 Skill 的索引清单,记录每个 Skill 的名称、路径和元数据
- 发现机制(Discovery):系统启动或运行时扫描指定目录,自动发现和注册 Skill
- 校验机制(Validation):检查 Skill 定义是否完整,元数据是否正确
Skill 的注册来源通常有几种:
| 来源 | 作用范围 | 优先级 | 说明 |
|---|---|---|---|
| 全局注册 | 所有项目 | 低 | 用户级 Skill,全局通用 |
| 项目注册 | 当前项目 | 中 | 项目级 Skill,团队共享 |
| 内置注册 | 系统内置 | 最高 | 平台预置的固定 Skill |
2.4 调度层(Dispatch Layer)
调度层负责在合适的时间将合适的 Skill 注入到运行上下文中。
意图匹配(Intent Matching):分析当前任务,判断哪些 Skill 与之相关
用户输入:"审查一下 src/main.py 的代码"
→ 匹配到 "code-review" Skill(描述:审查代码质量)
→ 匹配到 "project-conventions" Skill(描述:项目编码规范)
上下文注入(Context Injection):将匹配到的 Skill 指令合并到系统的运行上下文中
原始上下文:
[系统提示] 你是一个 AI 助手,帮助用户完成编程任务。
注入 code-review Skill 后:
[系统提示] 你是一个 AI 助手,帮助用户完成编程任务。
[Skill: code-review] 审查代码时按以下标准执行:...
抑或是用户直接指定:
请使用 /code-review 审查 src/main.py 的代码
变量替换(Variable Substitution):将调用时传入的参数替换 Skill 模板中的变量占位符
Skill 模板:"为 $ARGUMENTS 生成 API 文档"
用户输入:"为 user/login 生成 API 文档"
2.5 执行层(Execution Layer)
执行层确保多个同时生效的 Skill 协调一致地工作。
行为引导:AI 在生成回复时遵循所有生效 Skill 中定义的行为规范
多 Skill 合并:当多个 Skill 同时生效时,按规则合并指令内容
当前生效的 Skill:
├── project-conventions(项目规范——始终有效)
├── code-review(代码审查规范——用户调用后生效)
└── python-style(Python 代码风格——自动匹配)
优先级裁决:当不同 Skill 的指令存在冲突时,按优先级裁定
| 优先级高低 | Skill 类型 |
|---|---|
| 最高 | 用户主动调用的 Skill |
| 中 | 系统自动匹配的 Skill |
| 最低 | 全局/项目默认 Skill |
3. Skill 的类型与分类
3.1 按定义方式分类
固定行为规范] C --> C1[独立目录
含元数据和资源] D --> D1[临时指令
一次性使用] B1 --> E[静态行为模板] C1 --> F[结构化 Skill 包] D1 --> G[动态临时 Skill] style A fill:#e8f4f8,stroke:#1a6b8a style B fill:#d6eaf8 style C fill:#ebdef0 style D fill:#fdebd0
| 定义方式 | 结构 | 适用场景 | 特点 |
|---|---|---|---|
| 配置文件方式 | 一个文件定义完整 Skill | 简单、单一的行为规范 | 轻量,适合 10-20 行指令 |
| 目录结构方式 | 独立目录,包含元数据 + 指令 + 资源 | 复杂 Skill,需要外部资源 | 功能完整,可包含模板和脚本 |
| 内联指令方式 | 启动时通过参数传入 | 调试、一次性任务 | 不持久化,用完即弃 |
3.2 按调用方式分类
| 类型 | 触发方式 | 调用者 | 适用场景 |
|---|---|---|---|
| 显式调用 | 用户通过命令主动调用 | 用户 | 用户主动触发特定行为 |
| 自动匹配 | AI 感知任务匹配后自动加载 | AI 系统 | 后台持续生效的行为规范 |
| 混合调用 | 两者皆可 | 用户 + AI | 通用 Skill,最常用 |
显式调用:用户在交互中输入特定命令(如 /skill-name)来加载 Skill。这种方式用户意图明确,适合需要用户主动决定是否生效的 Skill。
自动匹配:AI 系统根据当前任务内容,自动判断哪些 Skill 应该生效。用户无需手动操作,适合作为后台知识一直存在的规范类 Skill。
混合调用:同时支持以上两种方式,用户可以通过命令主动调用,AI 也可以在检测到相关需求时自动加载。
3.3 按作用范围分类
| 类型 | 生效范围 | 生命周期 | 示例 |
|---|---|---|---|
| 项目级 Skill | 特定项目/代码库 | 长期,版本化管理 | 项目编码规范、文档模板 |
| 用户级 Skill | 用户的所有项目 | 长期,用户自定义 | 个人偏好、常用模板 |
| 系统级 Skill | AI 平台内置 | 始终有效 | 安全限制、基础行为规范 |
| 会话级 Skill | 当前交互会话 | 临时,会话结束失效 | 临时定义的指导规则 |
4. Skill 与相关概念的关系
4.1 概念定位图谱
提示词] Skill[Skill
技能] end subgraph 执行环境层[执行环境层] Harness[Harness
运行时] end subgraph 任务执行层[任务执行层] Agent[Agent
智能体] Workflow[Workflow
工作流] end subgraph 能力扩展层[能力扩展层] Tool[Tool
工具] MCP[MCP
协议] end Prompt -->|结构化| Skill Skill -->|注入| Harness Harness -->|运行| Agent Harness -->|编排| Workflow Agent -->|调用| Tool Tool -->|连接| MCP style 行为定义层 fill:#d6eaf8,stroke:#2980b9 style 执行环境层 fill:#ebdef0,stroke:#8e44ad style 任务执行层 fill:#d5f5e3,stroke:#27ae60 style 能力扩展层 fill:#fdebd0,stroke:#e67e22
4.2 Skill 与 Prompt 的关系
Skill 本质上是结构化的、可复用的 Prompt 模板。两者具有天然的亲缘关系:
| 维度 | Prompt | Skill |
|---|---|---|
| 形式 | 一次性书写的指令文本 | 结构化的指令模板 + 元数据 |
| 复用性 | 每次需要重新编写或复制 | 一次定义,多次调用 |
| 组合性 | 通常独立使用 | 多个 Skill 可叠加共存 |
| 参数化 | 手动修改文本中的占位符 | 通过变量自动替换参数 |
| 生命周期 | 仅当前交互 | 跨会话持久化存储 |
Skill 是 Prompt 的"升级版"——它继承了 Prompt 的核心价值(引导 AI 行为),同时解决了 Prompt 不可复用、不可组合的问题。
4.3 Skill 与 Agent 的关系
Skill 和 Agent 是 AI 系统中两个不同层面的概念,既有区别又有联系(此处的Agent理解为Agent系统内的Sub Agent——子代理):
| 维度 | Skill | Agent |
|---|---|---|
| 本质 | 指令模板/行为规范 | 独立的任务执行单元 |
| 运行位置 | 注入到主线上下文 | 独立的子进程或子会话 |
| 执行方式 | 协同——与主体共享上下文 | 独立——拥有自己的上下文 |
| 并发能力 | 不可并发——所有 Skill 合并生效 | 可并发——多个 Agent 可并行运行 |
| 目标 | 改变 AI 怎么做 | 让另一个 AI 做什么 |
在实际应用中,Skill 和 Agent 经常配合使用:
- Agent 的任务定义可以用 Skill 规范化
- Agent 可以调用 Skill 来获取行为指导
- Skill 可以描述如何创建和使用 Agent
Skill 是"行为指南",Agent 是"执行者"。行为指南让执行者做事更规范,执行者让行为指南的价值得以落地。
4.4 Skill 与 Workflow 的关系
| 维度 | Skill | Workflow |
|---|---|---|
| 粒度 | 行为规则/指令模板 | 多步骤任务编排 |
| 作用 | 定义"怎么做" | 定义"按什么顺序做" |
| 控制流 | 无——持续影响行为 | 有——明确的步骤和分支 |
| 依赖关系 | Skill 可调用 Workflow | Workflow 可引用 Skill |
Skill 和 Workflow 是互补关系——Skill 定义行为规范,Workflow 定义执行路径。一个典型的协作场景是:Skill 的指令中包含 Workflow 调用,实现"一个命令启动复杂工作流"的效果。
4.5 Skill 与 Harness 的关系
Harness(执行引擎/运行时框架)是 Skill 得以生效的基础设施。简单来说:
Skill 定义 → Harness 负责在合适时机将其注入到运行上下文
↓
Harness 为 Skill 提供:
├── 注册表(Registry)—— 管理和索引所有 Skill
├── 匹配引擎(Matcher)—— 判断何时加载哪个 Skill
├── 注入器(Injector)—— 将 Skill 指令合并到上下文中
└── 冲突解决(Resolver)—— 处理多 Skill 间的优先级冲突
没有 Harness,Skill 只是一个静态文本文件;有了 Harness,Skill 才能被动态加载、匹配和执行。
5. Skill 的典型应用模式
5.1 行为规范模式
场景:团队需要统一 AI 的工作方式和输出标准,确保质量和一致性。
工作流程:
特点:
- Skill 定义行为标准和检查清单
- 注入后持续影响后续所有交互
- 适用于代码审查、文档规范、安全审计等场景
5.2 流程模板模式
场景:某个任务有固定的操作步骤,每次执行都需要按照相同的流程进行。
工作流程:
特点:
- Skill 定义固定的操作流程
- 接收参数(
$ARGUMENTS)实现模板化 - 适用于 API 文档生成、迁移文件创建、报告生成等场景
5.3 后台知识模式
场景:某些规范自动生效,无需用户主动调用或关注。
工作流程:
特点:
- 用户不可见,后台自动生效
- 不需要用户主动调用
- 适用于编码规范、项目约定、安全规则等场景
5.4 多 Skill 叠加模式
场景:项目需要同时应用多个方面的规范和标准,多角度约束 AI 行为。
效果示意:
任务:审查 src/user.py 的代码
当前生效的 Skill:
├── project-conventions(项目规范——始终有效)
│ └── Python 缩进用 4 空格,导入按标准库/第三方/本地排序
├── code-review(代码审查——用户主动调用)
│ └── 审查维度:正确性 > 安全性 > 可维护性 > 性能
├── security-check(安全检查——自动匹配)
│ └── 额外检查:SQL 注入、XSS、敏感信息泄露
└── python-style(Python 风格——自动匹配)
└── 函数不超过 50 行,参数类型必须标注
AI 综合所有 Skill 要求执行审查 → 输出同时满足四套规范的审查报告
叠加原则:
| 原则 | 说明 |
|---|---|
| 合并生效 | 所有匹配的 Skill 指令合并为完整的行为约束集 |
| 后覆盖前 | 后加载的 Skill 在冲突时覆盖先加载的 |
| 显式优先 | 用户主动调用的 Skill 优先级高于自动匹配的 |
| 去重合并 | 相同领域的规范自动去重融合 |
6. 总结
6.1 核心内容回顾
- Skill(技能) 是预定义的指令模板,在需要时注入到 AI 系统的运行上下文中,指导 AI 按照特定规范执行任务。
- Skill 的五大核心特征:可复用性、可组合性、即时性、上下文相关性、作用域限定。
- Skill 的核心架构分为四层:定义层、注册层、调度层、执行层。
- Skill 可按定义方式(配置文件/目录结构/内联指令)、调用方式(显式/自动/混合)、作用范围(项目级/用户级/系统级/会话级)分类。
- Skill 是 Prompt 的升级版,与 Agent、Workflow、Harness 等概念紧密关联但定位不同。
- Skill 的典型应用模式有 行为规范、流程模板、后台知识、多 Skill 叠加 四种。
6.2 常见问题与解答
问:Skill 和普通的提示词有什么区别?
Skill 是对提示词的结构化封装——它解决了普通提示词不可复用、不可组合、不可参数化的问题。可以理解为"可调用的提示词模板"。
问:一个系统可以同时生效多少个 Skill?
理论上没有数量限制,但实践中建议控制在 3-5 个。过多的 Skill 指令会占用有限的上下文窗口,也可能产生指令冲突。
问:Skill 的定义修改后需要重启系统吗?
不需要。Skill 的核心优势之一就是即时生效——修改定义后,下次调用时自动加载最新版本。
问:不同 Skill 的指令冲突了怎么办?
按照优先级裁决规则处理:用户主动调用的 Skill 优先级最高,然后是自动匹配的 Skill,最后是默认的全局/项目 Skill。后加载的 Skill 覆盖先加载的同级 Skill。
问:Skill 和插件(Plugin)有什么区别?
Skill 改变的是 AI 的行为方式(怎么做),Plugin 扩展的是 AI 的能力边界(能做什么)。两者可以配合使用——Plugin 提供新工具,Skill 规范如何使用这些工具。
举手提问