Skills:你的 agent 能加载的知识
Skill 是一个装着说明的文件夹,任务匹配时你的 agent 会自动加载它。
什么是 skill?
Skill 是一个包含名为 SKILL.md 文件的文件夹,里面写着操作说明。当任务与某个 skill 匹配时,Claude 会自动加载这份说明。你也可以直接调用一个 skill,用 /skill 名称。
SKILL.md 的结构
每个 SKILL.md 开头都有一段 YAML 头部,夹在两行 --- 之间,里面是 name、description 这类字段。头部之后是正文:也就是 Claude 收到的实际说明。一个 skill 还可以在同一文件夹里带上其他文件,比如 reference.md 或者一个脚本。Claude 只有在真正需要时才会加载这些额外文件。
Skill 还是斜杠命令?
斜杠命令最初只是 .claude/commands/ 里的普通 markdown 文件,这些文件现在依然能用。但 custom commands 已经并入了 skills。.claude/commands/deploy.md 这个文件和 .claude/skills/deploy/SKILL.md 这个 skill 都会生成同一个 /deploy 命令。一个 skill 还能额外带上一整个文件夹的文件,而且 Claude 可以在它匹配任务时自动加载。
什么时候值得写一个 skill?
你是不是老在聊天里反复输入同样的说明?你的 CLAUDE.md 里某一段是不是已经长成了一整套流程?这就是把它变成 skill 的好时机。Skill 只在需要时才加载自己的文字,比起始终整个加载的长篇 CLAUDE.md,这样能省下不少上下文。
Skill 放在哪里
- 个人级:
~/.claude/skills/<名称>/SKILL.md—— 你所有项目都能用 - 项目级:
.claude/skills/<名称>/SKILL.md—— 只对这个项目生效 - 插件级:
<plugin>/skills/<名称>/SKILL.md—— 插件启用的任何地方都能用
示例
文件 `.claude/skills/commit-message/SKILL.md`: --- description: 根据当前的 git diff 写一条 commit message。 --- 看一下当前的 git diff,为它写一条简短清晰的 commit message。 之后这样调用:`/commit-message`
小测验
custom commands 并入 skills 意味着什么?
来源
- Claude Code 文档:Skills ↗ code.claude.com
- Anthropic:用 Agent Skills 为现实世界武装 agent ↗ www.anthropic.com