什么是 Skill?
Skill 是可复用的 AI 指令模板,它定义了 AI 助手完成特定任务的方式。
核心概念
Skill 的定义
Skill 是一组结构化的指令,包含:
- What(做什么)- 通过
name和description说明 - How(怎么做)- 通过
prompt详细描述执行步骤 - Examples(示例)- 通过
examples展示输入输出
Skill 不是什么?
| ❌ Skill 不是 | ✅ Skill 是 |
|---|---|
| 特定代码片段 | 通用的执行模板 |
| 一次性指令 | 可复用的工作手册 |
| 配置文件 | 包含逻辑的智能模板 |
为什么需要 Skill?
场景 1:代码审查
没有 Skill 时:
你: 帮我审查这段代码
AI: 好的,这段代码看起来还行...
(每次都要解释审查标准)使用 Skill 后:
你: /review-code(触发 Skill)
AI: [自动按照预设标准审查]
✓ 代码风格检查
✓ 安全漏洞扫描
✓ 性能优化建议
✓ 可读性评估场景 2:文档生成
没有 Skill 时:
你: 给这个函数写文档
AI: 函数接受参数 x 和 y...
(格式不统一,质量不稳定)使用 Skill 后:
你: /generate-docs(触发 Skill)
AI: [自动生成标准格式文档]
## Function Name
**参数**:
- `x` (number): ...
- `y` (string): ...
**返回值**:...
**示例**:...Skill vs Tool
| Skill | Tool | |
|---|---|---|
| 作用 | 指导 AI 如何思考 | 让 AI 执行操作 |
| 输入 | 自然语言指令 | 结构化数据 |
| 输出 | 文本/建议/分析 | 文件修改/API 调用 |
| 例子 | 代码审查、文档生成 | Read、Write、Edit |
类比:
- Skill = 教练的战术指导(告诉你怎么踢)
- Tool = 球员的脚(实际去踢球)
Skill 的组成部分
一个完整的 Skill 包含四个核心组件:
json
{
"name": "skill-name", // 标识符
"description": "描述", // 功能说明
"prompt": "详细指令...", // 执行逻辑
"examples": [ // 示例
{"input": "...", "output": "..."}
]
}1. Name(名称)
- 使用 kebab-case(短横线连接)
- 简洁明了,一看就知道功能
- 例如:
explain-code、review-pr、write-tests
2. Description(描述)
- 一句话说明 Skill 的功能
- 帮助用户(和 AI)理解何时使用
- 例如:"解释代码的工作原理,包括逻辑流程和关键变量"
3. Prompt(指令)
- 最核心的部分
- 详细描述 AI 应该做什么
- 可以包含变量(如
)
4. Examples(示例)
- 展示输入和期望输出
- 帮助 AI 理解期望的格式和质量
- 通常包含 2-3 个典型示例
实际示例
示例 1:代码解释 Skill
json
{
"name": "explain-code",
"description": "解释代码的工作原理,包括逻辑流程、关键变量和潜在问题",
"prompt": "请详细解释以下代码:\n\n{{code}}\n\n请从以下角度分析:\n1. 整体功能:这段代码主要做什么\n2. 执行流程:代码是如何一步步执行的\n3. 关键变量:重要的变量及其作用\n4. 潜在问题:可能存在的 bug 或优化空间\n5. 最佳实践:是否符合编程规范",
"examples": [
{
"input": "function factorial(n) {\n if (n === 0) return 1;\n return n * factorial(n - 1);\n}",
"output": "## 整体功能\n这是一个计算阶乘的递归函数...\n\n## 执行流程\n1. 检查 n 是否为 0...\n\n## 关键变量\n- `n`: 输入数字...\n\n## 潜在问题\n- 没有处理负数输入...\n\n## 最佳实践\n- ✅ 使用了递归,代码简洁..."
}
]
}示例 2:PR 审查 Skill
json
{
"name": "review-pr",
"description": "审查 Pull Request,检查代码质量、安全问题和最佳实践",
"prompt": "请审查以下 PR 的代码变更:\n\n{{diff}}\n\n请从以下维度进行评估:\n1. 代码质量:可读性、命名规范、复杂度\n2. 安全性:是否有潜在安全漏洞\n3. 性能:是否有明显的性能问题\n4. 测试:是否有足够的测试覆盖\n5. 文档:是否有必要的注释和文档\n\n对每个问题给出具体建议和代码示例。",
"examples": [
{
"input": "diff --git a/src/auth.js b/src/auth.js...",
"output": "## 审查结果\n\n### 🔴 严重问题\n1. **明文存储密码** (第 15 行)\n - 问题:密码以明文形式存储...\n - 建议:使用 bcrypt 等库进行哈希...\n\n### 🟡 建议改进\n..."
}
]
}Skill 的优势
1. 一致性
所有用户得到相同质量的输出,不受 AI 随机性影响。
2. 可复用
写好一次,团队所有人都可以使用。
3. 可维护
需要调整时,修改 Skill 定义即可,无需重写所有提示词。
4. 可共享
Skill 是标准格式,可以在社区分享和复用。
常见误区
❌ 误区 1:Skill 越复杂越好
实际:简洁明确的 Skill 效果更好。过于复杂的指令反而让 AI 困惑。
❌ 误区 2:一个 Skill 做所有事
实际:保持 Skill 的单一职责。复杂任务拆分成多个 Skill 组合使用。
❌ 误区 3:不需要示例
实际:示例是帮助 AI 理解期望输出的关键,特别是格式要求。
下一步
现在你已经理解了 Skill 的概念,接下来学习如何创建你的第一个 Skill: