Claude Code 从零到精通:多Agent协作开发完全教程-第四章:Skills 技能系统
第四章:Skills 技能系统
Skills 是 Claude Code 的工作流定义,用自然语言描述一系列操作步骤。可以理解为"给 AI 的标准操作流程(SOP)"。
4.1 Skills 是什么?
Plaintext
┌─────────────────────────────────────────────────────┐
│ Skills 概念图 │
├─────────────────────────────────────────────────────┤
│ │
│ Skill = 一个可复用的工作流定义 │
│ │
│ 举例: │
│ ┌───────────────┐ ┌───────────────┐ │
│ │ fix-issue │ │ brainstorming│ │
│ │ 修复GitHub │ │ 头脑风暴 │ │
│ │ Issue的流程 │ │ 需求分析流程 │ │
│ └───────────────┘ └───────────────┘ │
│ ┌───────────────┐ ┌───────────────┐ │
│ │ code-review │ │ deploy │ │
│ │ 代码审查流程 │ │ 部署发布流程 │ │
│ └───────────────┘ └───────────────┘ │
│ │
│ 类比:就像公司的 SOP 文档 │
│ - 保洁的"扫地"是一个 skill │
│ - 保洁的"擦桌子"是另一个 skill │
│ - "保洁"这个角色 = Plugin(多个 skill 的集合) │
│ │
└─────────────────────────────────────────────────────┘
4.2 Skill 的存放位置与来源
Skill 可以从三种途径获得:
来源 路径 适用范围
个人自定义 ~/.claude/skills/<skill-name>/SKILL.md 你的所有项目
项目级自定义 项目/.claude/skills/<skill-name>/SKILL.md 仅当前项目
通过插件安装 安装插件后自动获得,以 plugin-name:skill-name 命名 启用该插件的项目
查看当前可用的 Skills:
Plaintext
/help # 查看所有可用命令和 Skills 列表
What skills are available? # 直接问 Claude
在交互模式中输入 / 会弹出所有可用的 skill 列表,选择即可调用。
4.3 创建你的第一个 Skill
目录结构:
Plaintext
.claude/
└── skills/
└── my-first-skill/
└── SKILL.md
SKILL.md 文件格式:
Markdown
name: api-conventions
description: REST API design conventions for our services
API 设计规范
- URL 路径使用 kebab-case
- JSON 属性使用 camelCase
- 列表接口必须支持分页
- API 版本号放在 URL 路径中 (/v1/, /v2/)
带工作流步骤的 Skill:
Markdown
name: fix-issue
description: Fix a GitHub issue
disable-model-invocation: true
分析并修复 GitHub Issue: $ARGUMENTS
- 使用
gh issue view获取 issue 详情 - 理解问题描述
- 在代码库中搜索相关文件
- 实现修复代码
- 编写并运行测试验证修复
- 确保代码通过 lint 和类型检查
- 创建描述性的 commit message
- 推送并创建 PR
4.4 Skill 的两种调用方式
自动调用:Claude 识别到上下文匹配 skill 描述时自动使用。
手动调用:使用斜杠命令:
Plaintext
/fix-issue 1234 # 调用 fix-issue skill,传入参数 1234
/api-conventions # 查看 API 规范
4.5 Skill 的高级配置
字段 说明 示例
name Skill 名称 fix-issue
description Skill 描述,用于自动匹配 Fix a GitHub issue
disable-model-invocation 设为 true 则只能手动 / 触发 有副作用的工作流应设为 true
user-invocable 设为 true 表示用户可通过 / 命令调用 默认 true
context 设为 fork 可在子agent中独立运行 避免污染主上下文
$ARGUMENTS 调用时传入的参数占位符 /fix-issue 1234 中的 1234
动态上下文注入:Skill 中可以使用反引号执行命令,将结果注入上下文:
Markdown
name: check-status
description: 检查项目当前状态
项目状态
当前 Git 状态:
!git status --short
最近的提交:
!git log --oneline -5
根据以上信息为用户总结项目状态。
4.6 实用 Skill 示例
头脑风暴 Skill:
Markdown
name: brainstorming
description: 在开始新功能开发前进行头脑风暴
头脑风暴工作流
- 使用 AskUserQuestion 询问用户要开发什么功能
- 探索当前代码库上下文
- 提出 3-5 个关键设计问题
- 展示 2-3 个可选方案及其优劣对比
- 等待用户确认方案后,生成完整的需求规格
- 将规格写入 SPEC.md
代码审查 Skill:
Markdown
name: code-review
description: 审查最近的代码变更
disable-model-invocation: true
审查代码变更:
- 运行
git diff查看所有变更 - 检查代码是否符合 CLAUDE.md 中的编码规范
- 检查是否有安全漏洞(SQL注入、XSS等)
- 检查是否有性能问题
- 检查测试覆盖率
- 以列表形式输出发现的问题和建议
4.7 用 skill-creator 快速创建 Skill
Claude Code 内置了一个元技能(Meta-Skill)叫 skill-creator,专门用来帮你创建新的 skill。你不需要手写 SKILL.md,只需用自然语言描述工作流,它会引导你完成整个过程。
使用方式:
Plaintext
/skill-creator 帮我创建一个"每日站会总结"的 skill
skill-creator 的工作流程:
Plaintext
┌──────────────────────────────────────────────────┐
│ skill-creator 工作流程 │
├──────────────────────────────────────────────────┤
│ │
│ 1. 交互式问答 │
│ skill-creator 会问你: │
│ - 这个 skill 要解决什么问题? │
│ - 输入是什么?输出是什么? │
│ - 有哪些步骤? │
│ - 什么时候应该自动触发? │
│ │ │
│ ▼ │
│ 2. 自动生成 │
│ - 创建文件夹结构 │
│ - 生成 SKILL.md(含 frontmatter + 步骤) │
│ - 整理所需的参考文件和脚本 │
│ │ │
│ ▼ │
│ 3. 评估与迭代 │
│ - 定义测试提示和预期结果 │
│ - 运行评估验证 skill 是否正常 │
│ - 优化 description 减少误触发 │
│ │
└──────────────────────────────────────────────────┘
skill-creator 的高级功能:
功能 说明
评估框架 定义测试提示 + 预期结果,自动验证 skill 是否达标
基准模式 追踪 eval 通过率、耗时、token 使用量
A/B 对比 用对比代理盲评输出,判断改动是否真的改进了
描述优化 分析 description 与示例提示的匹配度,建议优化
💡 核心理念:你不需要记住 SKILL.md 的语法格式,只需要清晰描述你的工作流程,skill-creator 会帮你把它变成一个可复用的 skill。