skills基础介绍
一文读懂 AI Agent 的 Skills(技能)
适用范围:Claude Skills / opencode skills 等基于
SKILL.md的技能体系,概念通用。
读完你将掌握:skill 是什么、怎么发展来的、如何自己动手做一个并用起来。
一、基本概念:skill 到底是什么?
1. 一句话定义
Skill = 一段高度结构化的"专家操作手册",被打包成一个文件夹,让 agent 在碰到对应任务时加载,从而稳定地产出高质量、符合特定风格/规范的成果。
它本质上是给 agent 的角色 + 流程 + 规则库的封装。没有 skill 时,你要靠每次打字把要求说清楚;有了 skill,一次 description 匹配,整本手册就自动注入。
2. Skill 的核心组成
一个典型的 skill 是一个目录,通常长这样:
my-skill/
├── SKILL.md # ★ 入口/说明书(必建)
└── references/ # 可选:参考资料(规则、反例、经验库)
├── rules.md # 详细规则
├── anti-patterns.md # 反例/禁忌
└── LESSONS.md # 实战经验库(自举式 skill 用)
SKILL.md 是最重要的一份文件,分两部分
① Frontmatter(YAML 头部)——给"发现系统"看的元数据
---
name: my-skill # 技能名
description: "在 XXX 场景下使用 ... 产出 ..." # 一句话说明用途/触发条件
version: 1.0.0 # 版本号(自举/演化时递增)
---
description 是灵魂——agent 判断"这个任务要不要加载我"就靠它。写得越贴合你的使用场景,匹配越准。
② 正文 Markdown——给"执行 agent"看的具体操作:使用方式、步骤流程、硬性规则、禁忌、样板输出等。
3. skill 与 agent / prompt / mcp 的区别(容易混淆)
| 东西 | 是什么 | 和 skill 的区别 |
|---|---|---|
| Prompt / 提示词 | 一次性说的话 | skill 是可复用、可共享、有结构的提示词包,还带文件 |
命令 / slash command(/xxx) |
你手动触发的一段指令 | 靠"人主动敲命令"触发;skill 靠"description 自动匹配",更被动但更省心 |
| Agent | 一个独立角色/子代理 | agent 是"人",skill 是"人用的手册";agent 可以加载多个 skill |
| MCP | 让 agent 调用外部工具/数据的协议 | skill 管"怎么干活",MCP 管"能连接什么";二者常配合 |
一句话:skill 补的是"专业能力 + 风格一致性",不补"工具连接"。
二、发展脉络:skill 是怎么来的?
第 1 阶段:Prompt 的野蛮生长
早期靠把一大堆要求写进系统提示词。问题很快暴露:提示词越攒越长、越混越乱,agent 读完没重点,还互相冲突。
第 2 阶段:Skill 出现(把"手册"打包)
生态开始把"特定领域的操作手册"独立成文件包,按需加载:碰到设计任务→加载设计 skill;碰到写 Go→加载 Go skill。核心思想:把大而全的系统提示词,拆成小而专、按场景注入的技能包。(Claude Skills 2025 年推出,opencode 等工具也采纳了 SKILL.md 约定。)
第 3 阶段:进阶形态
skill 越用越讲究,出现几个高级话题:
- 引用目录
references/—— 主SKILL.md保持精简(只放流程和硬规则),反例拆到 references,按需条件加载,避免一次读爆 token、关键信息被淹没。 - 自举式 / 自改进 skill —— 让 skill 用完自己反思、越用越准。典型机制:
- REFLECT(反思):执行后想"这次有什么新经验/坑"
- WRITE(沉淀):写进
references/LESSONS.md经验库 - PROMOTE(转正):同类问题出现 ≥3 次 → 升级为硬规则、写进
CHANGELOG.md、递增version:
发展主线总结
从"一次性的长提示词" → "可复用、按需加载的技能包" → "带资料库、能自我演化的自举技能"。
驱动逻辑始终是:少给模型"噪音",多给"对场景有用的专业知识"。
三、怎么使用:发现、创建、维护
1. 使用:加载一个已安装的 skill
- 发现/加载:skill 装好后(放进对应配置目录),agent 拿到任务 → 用
description和各 skill 描述做匹配 → 命中就加载对应SKILL.md。 - 你可以主动点名叫它(如
/skill名、或让 agent "用 XX skill 来做"),也可以让它自动匹配。 - 多个 skill 可以叠加(如前端 skill + 风格 skill 一起用)。
2. 创建:自己动手做一个(最小上手)
建议从"你反复要做、且想稳定风格"的事开始,别一开始就搞复杂。最小步骤:
① 建目录 + SKILL.md
├── my-skill/SKILL.md
② 写 frontmatter(name / description / version)
③ 写正文:使用方式 + 步骤 + 硬规则 + 禁忌 + 样板
④ 放好目录 + 让它能被 agent 发现(按你所用工具的约定目录)
⑤ 试用:让 agent 跑一次,验证 description 匹配、输出是否达标
什么时候不要做 skill(YAGNI):
- 只做一次的临时任务 → 直接说要求即可
- 要求会频繁变、没有稳定风格 → 固化反而成负担
- 判断标准:"经常做 + 要稳定 + 有专业门槛" 才值得做成 skill。
3. 维护:让它越用越准
- 用完检查:规则有没有写错、漏的场景?
- 用「自举协议」沉淀经验(REFLECT → WRITE → PROMOTE),让 skill 自我进化;
- 定期清理:删掉从没触发过的规则,防止技能包膨胀(克制比堆料重要);
- 一旦某条规则让输出变差,用 CHANGELOG 回滚版本。
四、经典 SKILL.md 模板(带反射自举 loop)
下面提供一个带反射自举 loop 的经典 SKILL.md 模板:
---
name: my-skill
description: "在 XXX 场景下,按本技能流程产出 YYY,风格/规范遵循 ZZZ"
version: 1.0.0
---
# My Skill
## 使用场景(description 命中后何时加载)
- 适合:...
- 不适合:...
## 工作流程(执行 agent 按顺序做)
执行前先查询 `CHANGELOG.md` 中的内容,再决定后续是否执行
1. 第 1 步:...
2. 第 2 步:...
3. 第 3 步:产出样板结果 ...
## 硬性规则(违反即不合格)
- 规则 1:...
- 规则 2:...
## 禁忌(禁止做)
- 不要 ...
- 不要 ...
## Self-improvement loop(自举协议 / 反射循环)
每次执行完本 skill 后,无触发信号则跳过 loop;有触发信号时,按顺序做三件事(总计 <2 分钟):
1. **REFLECT(反思)**:这次执行有哪些"参考资料没覆盖"的通用经验?
- 遇到了新的场景类型?
- 踩了什么坑(环境、依赖、用户习惯)?
- 有哪些"当时犹豫、事后证明该/不该做"的决策?
2. **WRITE(沉淀)**:把经验追加进 `references/LESSONS.md`(日期、场景、问题、解法、结论),只写有复用价值的,避免噪音。
3. **PROMOTE(转正)**:同一问题出现 ≥3 次 → 提炼成硬规则,升级 `version:` 字段并记入 `references/CHANGELOG.md`,写入的条目要带计算规则,否则无法评定问题出现计数;未达阈值则留在 LESSONS 累积观察。
### 触发信号(遇到这些 MUST 学习,不是可选)
- 用户的纠正 / 否定 / "这里不对"
- 运行时报错或输出明显失败
- 参考资料未覆盖的全新场景
- 临时绕开资料、最终证明正确的决策
> 禁止在未执行任务时凭想象补经验。学习只发生在真实执行之后。
配套目录结构:
my-skill/
├── SKILL.md # ← 上面的模板本体
└── references/
├── LESSONS.md # ★ 必建:经验库(每次执行后追加一条)
├── CHANGELOG.md # 可选:规则演化史(转正时记录,可回滚)
└── lessons/ # 可选:按场景拆片,SKILL.md 按关键词条件加载
└── xxx.md
反射 loop 写进
SKILL.md只是闭环的一半——references/LESSONS.md里第一条真实记录,请从"用户第一次纠正你"开始写,那是最有价值的反例数据。提示:自举 loop 不必无脑加。仅当你的 skill 需要持续吸收经验时才引入;一次性固定的 skill 加了反而拖慢执行。
五、设计原则速查(写 skill 时的清单)
| 原则 | 做法 |
|---|---|
| description 是灵魂 | 写清"什么场景用、产出什么",决定匹配准不准 |
| 正文给 agent 读 | 具体、可执行、有阈值和样板,别写空话 |
| 精简主文件 | 重认知进 references/,按需条件加载,防 token 爆炸 |
| 学习有钩子 | 用 REFLECT + 触发信号,不靠"用完顺便记" |
| 用户纠正是最高优先级 | 被纠正时必须沉淀为反例经验 |
| 阈值式转正 | 同类 ≥3 次才升级硬规则,防单次偏好污染 |
| 版本化可回滚 | CHANGELOG 记录每次规则变更 |
| 克制 YAGNI | 不是常用场景就别建,建了定期删冗余 |
附:快速上手的一页小结
- 是什么 → 给 agent 的"专家操作手册"文件夹,
SKILL.md是入口。 - 给谁读 → 规则正文给 agent 执行;人类是作者/维护者。
- 核心文件 →
SKILL.md(frontmatter + 正文)+references/(资料/经验库)。 - 怎么发展来的 → 长提示词 → 按需技能包 → 自举演化。
- 怎么用 → 装好 → description 自动匹配 / 手动点名 → agent 按手册干活。
- 怎么做 → 常见且要稳定风格的事才建;先最小化,再靠自举养熟。

浙公网安备 33010602011771号