前言
- Skill 是什么
- 本文主要介绍如何从零创建一个属于自己的 Skill
- 使用和推荐的Skill(持续更新ing)
一、Skill 是什么?
1.1 Skill 的基本概念
- Skill 可以理解为 AI Agent 的“操作手册”,Skills 本质上就是教 AI 按固定流程做事的操作说明书,一旦写好,就能像函数一样反复调用。我们可以把 Skills 看成把 某类事情应该怎么专业做 这件事,封装成一个可复用、可自动触发的能力模块。Skills 以 Markdown 文件形式存在,不执行功能,而是通过按需、渐进式加载,实现高效且可复用的经验传递
- 它用于告诉 Agent:
- 什么时候使用
- 如何处理任务
- 遵循什么流程
- 输出什么风格
1.2 Skill 和普通 Prompt 的区别
- Prompt 通常是一次性的
- Skill 更适合长期复用
- Skill 可以包含说明、模板、脚本和参考资料
| 对比项 | 普通 Prompt | Skills 机制 |
|---|---|---|
| 每次都要重新描述 | 是 | 否(只描述一次) |
| 上下文长度占用 | 每次全量塞入 | 渐进式加载(只在触发时才读完整内容) |
| 一致性 | 依赖每次 prompt 质量 | 高(固定 SOP + 模板) |
| 复用性 | 手动复制粘贴 | 自动匹配 / slash 命令 / 项目共享 |
| 维护方式 | 改一次 prompt 就要重新发 | 修改 SKILL.md 文件,全局项目生效 |
二、为什么要自己写 Skill?
2.1 开源 Skill 的局限
- 通用性强,但不够贴合个人项目
- 不知道自己的研究背景
- 不知道自己的代码结构
- 不知道自己的常用命令和实验指标
2.2 自定义 Skill 的优势
- 固化个人工作流
- 减少重复解释
- 提高 AI 回答稳定性
- 让 Agent 更理解项目上下文
- 方便后续持续迭代
2.3 一个典型例子
假设你经常让 AI 帮你写博客文章。
如果使用通用 Skill,它可能只知道:
- 帮助用户写一篇结构清晰的博客文章
- 优化语言表达
- 补充小标题
- 调整段落逻辑
但如果是你自己写的博客 Skill,就可以提前写清楚:
- 我的博客偏技术教程风格
- 文章要先讲背景,再讲操作步骤,最后总结
- 标题不要太夸张
- 每一节尽量配代码块或示例
- 语言风格要口语化一点,但不能太随意
- 输出内容要使用 Markdown 格式
- 遇到命令行操作时,要给出可以直接复制的命令
Agent 就会自动按照你的写作习惯和文章结构来生成内容。
这就是自定义 Skill 的价值,它不是让 AI “凭感觉回答”,而是让 AI 按照你提前设定好的工作流程来完成任务。
三、Skill 的基本结构
Skills 的核心就是:一个文件夹 + 一个 SKILL.md 文件。
3.1 最小目录结构
my-skill/
└── SKILL.md
3.2 推荐目录结构
my-skill/
├── SKILL.md
├── references/
│ ├── background.md
│ ├── common-errors.md
│ └── metrics.md
├── scripts/
│ ├── parse_log.py
│ └── compare_results.py
└── templates/
└── report_template.md
3.3 各目录的作用
| 文件 / 目录 | 是否必选 | 作用 |
|---|---|---|
SKILL.md | 必选 | Skill 的核心说明文件,用于描述 Skill 的用途、触发场景和工作流程 |
references/ | 可选 | 存放背景资料、常见问题、指标说明等参考内容 |
scripts/ | 可选 | 存放辅助脚本,例如日志解析、数据处理、自动化任务脚本 |
templates/ | 可选 | 存放报告、总结、邮件、文档等输出模板 |
四、创建第一个 Skill
在正式创建 Skill 之前,需要先想清楚一个问题:
这个 Skill 是只给某个项目使用,还是希望在所有项目里都能使用?
因此,Skill 一般可以分为两类:
- 个人全局 Skill
- 项目级 Skill
4.1 个人全局 Skill 和项目级 Skill
| 类型 | 存放位置 | 适合场景 | 特点 |
|---|---|---|---|
| 个人全局 Skill | 用户目录下,例如 ~/.claude/skills/ | 写作、代码审查、通用 Debug、个人工作流 | 所有项目都可以使用 |
| 项目级 Skill | 项目目录下,例如 .claude/skills/ | 某个具体项目的开发规范、实验流程、部署流程 | 跟随项目一起维护,适合团队共享 |
简单来说:
- 如果这个 Skill 是你个人长期都会用的,就放到个人全局目录
- 如果这个 Skill 只服务于某个项目,就放到项目目录
例如,一个通用的写作 Skill 可以放在:
~/.claude/skills/blog-writing-skill/
而一个只服务于当前项目的实验分析 Skill,可以放在:
my-project/.claude/skills/experiment-analysis-skill/
4.2 创建项目级 Skill
如果想创建一个项目级 Skill,可以先进入项目根目录:
cd my-project
然后创建 Skill 目录:
mkdir -p .claude/skills/experiment-analysis-skill
cd .claude/skills/experiment-analysis-skill
touch SKILL.md
项目级 Skill 的好处是,它和项目绑定在一起。以后别人 clone 这个项目时,也可以看到这个项目专属的 AI 使用说明。
4.3 创建个人全局 Skill
如果想创建一个个人全局 Skill,可以放到用户目录下:
mkdir -p ~/.claude/skills/blog-writing-skill
cd ~/.claude/skills/blog-writing-skill
touch SKILL.md
个人全局 Skill 更适合存放自己经常复用的工作流。
4.4 编写 metadata
一个 Skill 通常需要在 SKILL.md 开头编写 metadata,用来描述这个 Skill 的名称和触发场景。claude code启动时会预加载 Skills 的 name 和 description,真正的正文内容是在 Skill 被触发时才读取。
示例:
---
name: experiment-analysis-skill
description: Use this skill when analyzing reinforcement learning experiments, TensorBoard logs, result.json files, training commands, GPU usage, or debugging issues.
---
其中:
name:Skill 的名称description:Skill 的触发描述,告诉 Agent 什么时候应该使用这个 Skill
其中 description 很重要,因为 Claude 会根据它判断当前任务是否需要加载这个 Skill。
4.5 编写 Skill 正文
metadata 写完之后,就可以继续编写 Skill 正文。
一个 SKILL.md 通常由两部分组成:
| 部分 | 作用 |
|---|---|
| YAML metadata | 描述 Skill 的名称和触发场景 |
| Markdown 正文 | 编写具体背景、流程、规范、示例和命令 |
其中,正文部分比较自由,但不建议随便堆文字。
更推荐写成清晰的结构,让 Agent 能够快速理解这个 Skill 应该怎么使用。
五、利用 skill-creator 开发 Skill
除了手动编写 SKILL.md,也可以使用官方提供的 skill-creator 来辅助创建 Skill。
skill-creator 可以理解为一个专门用来“开发 Skill 的 Skill”。它可以帮助我们从自然语言需求出发,生成一个结构比较规范的 SKILL.md,并且还能帮助优化 description、补充工作流程、检查 Skill 是否清晰。
5.1 skill-creator 能做什么?
skill-creator 主要可以帮助完成以下事情:
| 能力 | 说明 |
|---|---|
| 创建 Skill | 根据自然语言描述生成初版 SKILL.md |
| 优化 description | 帮助改写触发描述,提高 Skill 被正确调用的概率 |
| 补充结构 | 自动补充 Context、Workflow、Examples 等部分 |
| 检查问题 | 检查 Skill 是否过于模糊、过长或缺少关键流程 |
| 迭代改进 | 根据实际使用效果继续修改 Skill |
简单来说,手写 Skill 更适合自己完全掌控内容;而 skill-creator 更适合快速生成第一版。
5.2 使用 skill-creator 的基本流程
第一步:创建全局 Skills 目录
先创建 Claude Code 的全局 Skills 目录:
mkdir -p ~/.claude/skills
第二步:下载官方 Skills 仓库
进入临时目录:
cd /tmp
然后 clone Anthropic 官方 Skills 仓库:
git clone https://github.com/anthropics/skills.git
下载完成后,会得到一个 skills 文件夹。
第三步:复制 skill-creator 到全局目录
官方仓库中,skill-creator 位于:
skills/skills/skill-creator/
将它复制到 Claude Code 的全局 Skills 目录:
cp -R skills/skills/skill-creator ~/.claude/skills/
第四步:检查是否安装成功
执行:
ls ~/.claude/skills/skill-creator
如果能看到:
SKILL.md
说明 skill-creator 已经复制成功。
第五步:在 Claude Code 中重新加载 Skills
进入 Claude Code:
claude
然后输入:
/reload_plugins
或者直接重启 Claude Code。
接着输入:
/skills
如果能看到类似:
skill-creator user
并且状态是 on,说明 skill-creator 已经被 Claude Code 识别并启用。
第六步:使用 skill-creator 创建新 Skill
安装完成后,就可以直接让 Claude Code 使用 skill-creator 创建新的 Skill。
可以使用/skill-creator直接触发,一步一步根据agent的指令来编写你的prompt;也可以把prompt写好,agent会自动调用skill-creator