Skip to content

什么是 Skill?

Skill 是可复用的 AI 指令模板,它定义了 AI 助手完成特定任务的方式。

核心概念

Skill 的定义

Skill 是一组结构化的指令,包含:

  1. What(做什么)- 通过 namedescription 说明
  2. How(怎么做)- 通过 prompt 详细描述执行步骤
  3. 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

SkillTool
作用指导 AI 如何思考让 AI 执行操作
输入自然语言指令结构化数据
输出文本/建议/分析文件修改/API 调用
例子代码审查、文档生成Read、Write、Edit

类比

  • Skill = 教练的战术指导(告诉你怎么踢)
  • Tool = 球员的脚(实际去踢球)

Skill 的组成部分

一个完整的 Skill 包含四个核心组件:

json
{
  "name": "skill-name",           // 标识符
  "description": "描述",          // 功能说明
  "prompt": "详细指令...",        // 执行逻辑
  "examples": [                   // 示例
    {"input": "...", "output": "..."}
  ]
}

1. Name(名称)

  • 使用 kebab-case(短横线连接)
  • 简洁明了,一看就知道功能
  • 例如:explain-codereview-prwrite-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:

创建你的第一个 Skill

基于 MIT 许可发布