首先分享几个关键判断:AI 的工作效率,很多时候并不取决于它有多聪明,而在于你为它准备了怎样的“入职文档”。许多人依然使用冗长的提示词,期望 AI 一次性消化所有规则,结果往往事倍功半。本文旨在彻底讲透这一主题——如何利用 Skills 替代低效的提示词,让 AI 真正成为你的高效助手。
本文将重点讨论以下几方面:
- Skills 与普通提示词的本质区别
- 标准 Skill 目录的结构与内容
- Skills 在实际项目中的部署与高效使用方法

Skills 到底是什么?
用一个生动的例子来说明。你刚进入一家新公司,虽然人很聪明,但对业务逻辑、代码规范、文档模板一无所知。这时,如果有人递给你一本《新员工手册》,其中包含:
- 代码提交的流程
- 周报的撰写方法
- 常见问题的处理方式
你是不是能迅速上手?Skills 就是 AI 的“员工手册”。
但更准确地说,它不是一个简单的文档,而是一整个文件夹。其中包含操作手册、模板文件、脚本工具和参考资料。AI 不需要一次性读完所有内容,而是根据当前任务,按需打开对应的章节。
这就是 Skills 与普通提示词的最大区别。Skills 并非“加强版提示词”。许多人初次接触时会想:“这不就是把提示词存储为文件吗?”实际上并非如此。下面的对比表格能直观展示二者的差异。

总结起来,可以这样理解:提示词是一张写满规则的纸,AI 每次都必须从头读到尾;而 Skill 是一个按需查阅的工具箱,AI 只打开当前需要使用的那个抽屉。
Skill 的目录结构详解
以 workbuddy 为例(其他工具如 Claude Code 类似)。一个完整的 Skill 就是一个文件夹,存放于 ~/.workbuddy/skills/(用户级别)或项目的 .workbuddy/skills/ 下(项目级别)。
标准 Skill 目录结构如下:
my-skill/ ← Skill 根目录(命名规范:小写字母+连字符)
├── SKILL.md ← ★ 必需文件,入口文件
│
├── references/ ← 可选,存放详细参考文档
│ ├── api.md ← API 接口说明
│ ├── examples.md ← 示例和用法
│ └── faq.md ← 常见问题
│
├── scripts/ ← 可选,可执行脚本
│ ├── setup.sh ← 初始化脚本
│ ├── process.py ← 数据处理脚本
│ └── generate.js ← 生成工具
│
├── assets/ ← 可选,模板和静态资源
│ ├── template.md ← 输出模板
│ ├── config.json ← 配置文件
│ └── example-output.html ← 示例产物
│
├── hooks/ ← 可选,生命周期钩子
│ └── HOOK.md
│
└── sub-module/ ← 可选,子 Skill
├── SKILL.md
├── references/
└── scripts/
每个部分的作用,下面逐一详细说明。
SKILL.md:入口文件(必需)
这是整个 Skill 的“门面”。AI 第一时间只读取这个文件。它要解决的问题只有一个:告知 AI 这是什么、何时使用、基本流程是什么、以及去哪里查找更详细的信息。
SKILL.md 应尽量精简。原因在于它每次都会被加载,消耗 token。详细内容应放入 references/ 中,待需要时再读取。
一个典型的 SKILL.md 长这样:
---
name: my-skill
description: |
简要描述这个 Skill 的功能。
说明触发条件,使 AI 知道何时该启用它。
---
# My Skill
一句话概括这个 Skill 解决的核心问题。
## 核心规则
- 必须遵守的规则(AI 每次执行前必须查看)
- 安全边界与限制条件
## 决策表
| 用户意图 | 操作 | 读取 |
|---------|------|------|
| 执行任务A | 按照流程A | references/guide-a.md |
| 执行任务B | 按照流程B | references/guide-b.md |
## 快速参考
| 场景 | 处理方式 |
|------|---------|
| 场景1 | 执行某操作 |
| 场景2 | 执行某操作 |
## 详细参考
- 完整 API 说明见 `references/api.md`
- 更多示例见 `references/examples.md`
注意几个要点:
- description 至关重要。 AI 完全依赖这段话判断是否加载该 Skill。清晰描述触发条件最为重要。
- 决策表相当于路由器。 指示 AI 针对不同的用户意图选择对应路径,并读取相应文件。
- 详细参考仅列出路径,不包含具体内容。 这正是渐进式披露的关键:仅在需要时读取。
references/:详细参考文档
SKILL.md 负责概述与路由,references/ 负责展开细节。何时需要 references/?
- API 接口包含大量字段和参数需要详细说明
- 工作流过长,放入 SKILL.md 会导致入口文件过于臃肿
- 存在多种变体或分支情况,需要分别文档化
在 SKILL.md 中引用 references 的方式很简单,一句“详见 references/api.md”即可。AI 会自动读取该文件。
scripts/:可执行脚本文件
这是传统提示词无法实现的功能。如果你需要 AI 执行自动化操作(如调用外部 API、处理数据、生成文件),仅靠自然语言描述是不够的。应将逻辑写成脚本放入 scripts/ 目录,并在 SKILL.md 中告知 AI 如何调用。
## 使用方法
### 自动处理(推荐)
```bash
node scripts/process.js --input data.json --output result.json
assets/:模板与资源文件
如果你有设计规范,如 logo、VI 标准等,均可放置于此。该目录用于存放 AI 可直接复制使用的模板文件、示例输出及配置文件。
例如,一个“写周报”的 Skill,assets/ 目录中可包含:
assets/
├── weekly-template.md ← 周报模板,AI 读取后按格式填充
├── example-report.md ← 一份优秀的周报示例
└── team-conventions.md ← 团队周报撰写规范
子 Skill:模块化组合策略
当一个 Skill 覆盖范围过大时,可拆分为多个子 Skill,通过 SKILL.md 中的决策表进行路由。
以“腾讯 IMA 助手” Skill 为例:
腾讯ima/
├── SKILL.md ← 主入口,包含模块路由决策表
├── ima_api.cjs ← 共享 API 调用脚本
│
├── notes/ ← 子 Skill:笔记模块
│ ├── SKILL.md
│ └── references/
│ └── api.md
│
└── knowledge-base/ ← 子 Skill:知识库模块
├── SKILL.md
└── references/
└── api.md
主 SKILL.md 里的决策表长这样:
| 用户需求 | 路由至 | 加载文件 |
|---------|--------|------|
| 搜索笔记、创建笔记 | notes 模块 | `notes/SKILL.md` |
| 上传文件、搜索知识库 | knowledge-base 模块 | `knowledge-base/SKILL.md` |
当用户说“帮我搜一下知识库里关于 AI 的文章”,AI 读取主 SKILL.md,命中决策表第二行,随后加载 knowledge-base/SKILL.md。当用户说“新建一篇笔记”,AI 仅加载 notes/SKILL.md,完全不会涉及知识库模块的内容。
渐进式披露与按需加载机制
这是 Skills 与提示词的本质区别,值得单独深入讲解。
假设你有一个很长的提示词,里面包含:
- 角色设定(约200字)
- 写作规范(约500字)
- 排版要求(约300字)
- API 调用说明(约800字)
- 三种不同场景的处理流程(约1200字)
- 常见问题 FAQ(约400字)
总计约3400字。每次与 AI 对话,这3400字都会被塞入上下文,消耗 token。问题是:用户本次可能仅需 AI 搜索笔记,完全用不上写作规范、排版要求、API 调用说明,但仍需全量加载。
Skills 则很好地解决了这一问题。它将内容拆分为多层,按需逐层加载:
- 第 1 层(始终加载): SKILL.md —— 约300字,包含角色设定、决策表、路由规则,以及指向第 2 层的引用路径
- 第 2 层(按需加载): references/ 目录中的具体文档 —— 仅读取当前任务所需的内容
- 第 2 层(按需调用): scripts/ 目录中的脚本 —— 仅在需要执行自动化时调用
- 第 2 层(按需路由): 子 Skill —— 根据用户意图仅加载相应的子模块
以一个实际案例说明,假设这是一个内容创作助手 Skill:
content-assistant/
├── SKILL.md ← 约300字,始终加载
│ - 角色设定
│ - 决策表:写文章→references/writing.md
│ 做图→references/design.md
│ 排版→references/format.md
│
├── references/
│ ├── writing.md ← 约800字,仅在写文章时加载
│ ├── design.md ← 约600字,仅在作图时加载
│ ├── format.md ← 约400字,仅在排版时加载
│ └── seo.md ← 约500字,仅在 SEO 优化时加载
│
└── scripts/
└── publish.py ← 仅在发布时调用
用户不同的指令,对应消耗如下:
| 用户指令 | AI 实际加载内容 | 消耗 token 量 |
|---------|------------------|-------------|
| "帮我写一篇关于 AI 的文章" | SKILL.md + references/writing.md | ~1100 字 |
| "帮这张图加个标题" | SKILL.md + references/design.md | ~900 字 |
| "帮我排版一下这篇文章" | SKILL.md + references/format.md | ~700 字 |
| "帮我写文章并做 SEO 优化" | SKILL.md + references/writing.md + references/seo.md | ~1600 字 |
如果使用提示词(全量加载),无论用户说什么都需消耗3000+字。这就是渐进式披露的意义:仅加载当前任务所需的知识,其余内容保留在磁盘上,不占用 token。
SKILL.md 写作规范:从触发到执行全流程
编写 SKILL.md 时,应将其视为两部分:顶部的文件头(Frontmatter)负责告知系统“何时唤醒我”,下方的正文结构负责指导 AI“唤醒后具体如何操作”。
文件头(Frontmatter)
文件头位于文档最顶端,采用 YAML 格式(被 --- 包围)。其作用不是编写具体任务指令,而是定义该 Skill 的身份标识与触发条件。
---
name: skill-name ← 必需,唯一标识符,建议使用小写字母+连字符
description: |
这是整个 Skill 的核心。
用一到两句话说明 Skill 的用途和触发条件。
AI 完全依赖这段话判断当前任务是否应加载该 Skill。
homepage: https://example.com ← 可选,相关主页
---
其中最重要的 description 如何编写?记住一个原则:包含清晰的场景和触发词,避免空洞宽泛。很多时候 Skill 不生效,正是因为 description 写得太模糊。
❌ description: "一个帮助处理视频内容的工具。"
✅ description: "短视频内容处理专家。当用户要求撰写短视频口播稿、拆解分镜脚本,或者提到 4-4-2 内容分发逻辑时使用。触发词:写脚本、改文案、短视频结构。"
✨ 进阶写法(划定边界,防止误触发):description: | 专注于 B2B 短视频逻辑的内容策划工具。当用户需要构建信任感、规划视频矩阵时触发。注意:若为普通纯娱乐搞笑视频,请勿触发此 skill。
正文结构(Body)
当系统通过文件头成功触发该 Skill 后,AI 将读取正文。正文无需长篇大论,应像一个交通枢纽,确立核心规则,然后将复杂任务指派给对应的子文件。一个逻辑清晰、对 AI 友好的 SKILL.md 正文通常包含以下四个标准模块:
# Skill 标题
用一句话简要概括当前激活的角色或工具库。
## 1. 核心规则(Rules)
**这是 AI 每次执行前必须阅读的“铁律”。**
- 规定语气和输出格式(例如:必须输出严格的 JSON 结构,或采用特定版式)。
- 规定安全边界(例如:绝对不虚构数据,遇到缺失信息必须向用户提问)。
## 2. 决策表(Routing Table)
**这是整个渐进式披露的核心,让 AI 根据不同意图按需查阅资料。**
| 用户意图 / 场景 | 执行动作 | 需要读取的外部参考 |
|--------------|--------|----------------|
| 需要编写分镜脚本 | 提取核心卖点并分镜 | 读取 `references/script-template.md` |
| 需要进行画面重组 | 调用特定代码或工具 | 执行 `scripts/split-tool.js` |
| 仅需文案润色 | 套用特定的排版风格 | 查阅 `assets/style-guide.json` |
## 3. 基础工作流(Workflow)
**给出处理通用任务的简要宏观步骤,避免 AI 无序操作。**
1. 步骤一:首先理解用户提供的原始素材。
2. 步骤二:根据决策表,读取对应的参考文件或模板。
3. 步骤三:生成初稿,并自行核对核心规则。
## 4. 详细参考资源(References)
**将所有具体细节剥离出去,仅在此保留路径。**
- API 调用参数详见:`references/api.md`
- 优秀输出范例详见:`references/examples.md`
写 SKILL.md 的常见错误与避坑指南
常见错误一:将所有内容塞进 SKILL.md。需要理解 SKILL.md 应该是目录和索引,而不是百科全书。详细内容应放入 references/。
# 反面示例:SKILL.md 写了8000字
---
name: my-skill
---
(包含8000字的详细文档,涵盖 API 说明、示例代码、FAQ...)
常见错误二:没有决策表,让 AI 自行判断读取哪个文件。AI 不知道 references/ 下有哪些文件,也不清楚哪个文件对应什么场景。应在 SKILL.md 中明确说明,或用表格列出。
# 反面示例:没有路由指引
详细说明请参考 references/ 目录下的文件。
常见错误三:description 过于简短,导致误触发或不触发。AI 完全不清楚何时应使用该 Skill。
# 反面示例
description: "helpful tool"
#skills
登录后即可查看剩余 70% 内容
