Skill(技能)是 AI 系统中一种重要的行为定制机制——它本质上是一组预定义的指令模板,在需要时注入到系统的运行上下文中,指导 AI "以什么方式工作"。本教程将从概念本质、核心架构、类型分类和典型应用模式等角度,系统讲解 Skill 的完整知识体系。

前置教程

如想快速开始学习本教程,你可能需要先完成以下前置教程:

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 机制可以抽象为四个核心模块,协同完成从定义到生效的完整流程:

graph LR 定义层[定义层
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 按定义方式分类

graph LR A[Skill 定义方式] --> B[配置文件方式] A --> C[目录结构方式] A --> D[内联指令方式] B --> B1[单一配置文件
固定行为规范] 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 概念定位图谱

graph LR subgraph 行为定义层[行为定义层] Prompt[Prompt
提示词] 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 的工作方式和输出标准,确保质量和一致性。

工作流程

graph LR U[用户] -->|调用 Skill| S[行为规范 Skill] S -->|注入指令| C[AI 会话上下文] C -->|按规范执行| T1[任务 1] C -->|按规范执行| T2[任务 2] C -->|按规范执行| T3[任务 3] style U fill:#d6eaf8,stroke:#2980b9 style S fill:#ebdef0,stroke:#8e44ad style C fill:#d5f5e3,stroke:#27ae60

特点

  • Skill 定义行为标准和检查清单
  • 注入后持续影响后续所有交互
  • 适用于代码审查、文档规范、安全审计等场景

5.2 流程模板模式

场景:某个任务有固定的操作步骤,每次执行都需要按照相同的流程进行。

工作流程

graph LR U[用户] --> Skill[流程模板 Skill] Skill -->|展开为步骤| S1[步骤 1: 分析需求] S1 --> S2[步骤 2: 生成文件] S2 --> S3[步骤 3: 验证结果] S3 --> R([输出结果]) style U fill:#d6eaf8,stroke:#2980b9 style Skill fill:#ebdef0,stroke:#8e44ad style R fill:#d5f5e3,stroke:#27ae60

特点

  • Skill 定义固定的操作流程
  • 接收参数($ARGUMENTS)实现模板化
  • 适用于 API 文档生成、迁移文件创建、报告生成等场景

5.3 后台知识模式

场景:某些规范自动生效,无需用户主动调用或关注。

工作流程

graph LR C[AI 会话] -->|自动匹配| K1[编码规范 Skill] C -->|自动匹配| K2[命名约定 Skill] C -->|自动匹配| K3[项目约定 Skill] K1 -->|后台生效| R[AI 始终遵循规范工作] K2 -->|后台生效| R K3 -->|后台生效| R style C fill:#d6eaf8,stroke:#2980b9 style K1 fill:#ebdef0,stroke:#8e44ad style K2 fill:#ebdef0,stroke:#8e44ad style K3 fill:#ebdef0,stroke:#8e44ad style R fill:#d5f5e3,stroke:#27ae60

特点

  • 用户不可见,后台自动生效
  • 不需要用户主动调用
  • 适用于编码规范、项目约定、安全规则等场景

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 规范如何使用这些工具。