图片

什么是 Skills?

Skills 技能是一个个独立的功能包,它们能给 Claude 或编程环境添加专业知识、工作流程和工具。你可以把技能想象成某个专业领域的"使用手册"——能让 Claude 从一个什么都懂一点的助手,变成一个掌握特定专业知识的专家。

一个 Skill 可能包含

  1. 工作流程 - 针对特定领域的多步骤程序

  2. 工具 - 用于处理特定文件格式或 API 的说明

  3. 领域知识 - 特定知识、架构、业务逻辑等

  4. 资源 - 用于复杂和重复任务的脚本、参考资料和资产

在 Claude code 的 skill 文件夹中,包含一个必需的 SKILL.md 文件和可选的资源:

<span leaf="">skill-name/</span><span leaf=""><br></span><span leaf="">├── SKILL.md (必需) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;← YAML元数据 + Markdown指令</span><span leaf=""><br></span><span leaf="">│ &nbsp; ├── YAML frontmatter metadata (必需)</span><span leaf=""><br></span><span leaf="">│ &nbsp; │ &nbsp; ├── name: (必需)</span><span leaf=""><br></span><span leaf="">│ &nbsp; │ &nbsp; └── description: (必需)</span><span leaf=""><br></span><span leaf="">│ &nbsp; └── Markdown instructions (必需)</span><span leaf=""><br></span><span leaf="">├── scripts/ (可选) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;← 可执行代码 (Python/Bash等)</span><span leaf=""><br></span><span leaf="">├── references/ (可选) &nbsp; &nbsp; &nbsp; ← 参考文档 (按需加载)</span><span leaf=""><br></span><span leaf="">└── assets/ (可选) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;← 资源文件 (模板/图片/字体等)</span><span leaf=""><br></span>

最少必要信息

SKILL.md文档顶部 YAML 中的namedescription,决定了 Claude 何时使用该技能。要具体说明该技能的作用以及何时使用。应使用第三人称(例如 “This skill should be used when…” instead of “Use this skill when…”)进行描述。

图片

捆绑资源(可选)

脚本:用于需要确定性可靠性或反复重写的任务的可执行代码(Python/Bash/等)。

图片

参考资料:可根据需要加载到上下文中,以指导 Claude 的流程和思维。

图片

资源:文件不是为了被加载到上下文中,而是用在 Claude 生成的输出中。

图片

渐进式披露原则

skill 使用三级加载来高效管理 context:

  1. 元数据(名称 + 描述)- 始终在 context 中(~100 字)

  2. 技能触发时的 SKILL.md 正文(<5000 字)

  3. 资源 - 根据需要加载

技能创建流程

图片

第 1 步:通过具体示例理解技能

要创建好用的技能,首先要知道具体的使用例子,可以是用户提供的,也可以是你想出来后让用户确认的。比如,做一个图像编辑技能时,可以问这些问题:

这个技能要支持哪些功能?比如编辑、旋转,还有别的吗?

能举几个使用这个技能的例子吗?

用户可能会说’去掉照片的红眼’或’旋转这张图’。还有其他用法吗?

用户会怎么说来使用这个技能?

别一次问太多问题,先问最重要的,需要的话再追问。

第 2 步:规划可复用的技能内容

想要把具体例子变成实用的技能,方法是分析每个例子:

  1. 想想如何一步步完成

  2. 找出哪些脚本、参考文档和资源可以重复使用

例子 1:PDF 编辑技能

<span leaf="">当用户说</span><span><span leaf="">"帮我旋转这个 PDF"</span></span><span leaf="">时:</span><span leaf=""><br></span><span leaf=""><br></span><span leaf="">1. 每次旋转 PDF 都要写一样的代码</span><span leaf=""><br></span><span leaf="">2. 可以把 `scripts/rotate_pdf.py` 脚本保存在技能里,下次直接用</span><span leaf=""><br></span>

例子 2:网页应用构建技能

<span leaf="">当用户说</span><span><span leaf="">"做一个待办事项应用"</span></span><span leaf="">或</span><span><span leaf="">"做一个步数统计页面"</span></span><span leaf="">时:</span><span leaf=""><br></span><span leaf=""><br></span><span leaf="">1. 每次写网页应用都要用同样的 HTML/React 基础代码</span><span leaf=""><br></span><span leaf="">2. 可以把基础模板 `assets/hello-world/` 保存在技能里,下次直接用</span><span leaf=""><br></span>

例子 3:数据查询技能

<span leaf="">当用户问</span><span><span leaf="">"今天有多少人登录过"</span></span><span leaf="">时:</span><span leaf=""><br></span><span leaf=""><br></span><span leaf="">1. 每次查询 BigQuery 都要重新查找表格结构</span><span leaf=""><br></span><span leaf="">2. 可以把表格结构说明 `references/schema.md` 保存在技能里,下次直接查</span><span leaf=""><br></span>

总结:分析每个具体例子,整理出可以重复使用的内容,包括脚本、参考文档和资源文件。

第 3 步:创建技能文件

创建全新技能时,可以运行官方提供的 skill-creator 技能中的init_skill.py 脚本[1]

<span leaf="">scripts/init_skill.py &lt;技能名称&gt; --path &lt;保存位置&gt;</span><span leaf=""><br></span>

这个脚本会自动创建一个技能文件夹,里面包含所需的基础文件。

  • 一个 SKILL.md 模板文件,里面有格式和待填写的部分

  • 三个示例文件夹:scripts/(脚本)、references/(参考资料)和 assets/(资源文件),包含一些示例文件,可以根据需要修改或删除

创建后,再根据实际需要修改。

第 4 步:编辑技能

编辑技能时,要记住这个技能是给另一个 Claude 用的。重点写下那些对 Claude 有用但它不知道的信息。想想什么知识、专业细节或可以重复使用的文件能帮助 AI 更好地完成任务。

从可重用的内容开始

开始制作时,先处理脚本、参考资料和资源文件。这一步可能需要用户提供材料。比如做brand-guidelines技能时,用户可能要提供品牌素材或模板放到 assets/ 里,或提供文档放到 references/ 里。

更新 SKILL.md 文件

写作风格:整个技能都要用命令式写法(比如"做 Y 来完成 X”),不要用"你应该"这样的说法。用客观、说明性的语言(比如写"要完成 X,做 Y",而不是"应该做 X"或"如果需要做 X")。

完成 SKILL.md 文件时,回答这些问题:

图片

第 5 步:打包技能

技能准备就绪后,可将其打包为可分发的 zip 文件。

<span leaf="">scripts/package_skill.py &lt;path/to/skill-folder&gt;</span><span leaf=""><br></span>

打包流程会首先自动验证,以确保满足要求:

  • YAML 前置元数据格式和必填字段

  • 技能命名规范和目录结构

  • 描述的完整性和质量

  • 文件组织和资源引用

如果验证通过,将创建一个以技能命名的 zip 文件,包含所有文件和正确的目录结构。如果验证失败,脚本将报告错误并退出,需要修复错误并再次运行打包命令。

第 6 步:不断改进

用过技能后,你可能会发现需要改进的地方。改进步骤:

  1. 在真实工作中使用这个技能

  2. 记下遇到的问题或不方便的地方

  3. 想想需要修改 SKILL.md 文件或相关资源的哪些部分

  4. 修改完成后再测试一遍


下一篇我们来仔细拆解 Claude 官方的 Skills,加速学习进度🚀。

引用链接

[1]init_skill.py 脚本: https://github.com/anthropics/skills/tree/main/skill-creator/scripts

更多文章

情感计算新范式:语义空间论 (🔥 1w+ 阅读)

情绪大辩论——基本情绪论 vs 情绪建构论  (🔥 1k+ 转发)

什么是 World Model 世界模型?(🔥 1w+ 阅读)

表达欲,攻击性,冬去春来 ( 100+ 打赏)