Anthropic 学院中文导读 / 课程目录 / 08

Agent Skills 入门:教 Claude 一次,以后自动照做

路线 B · 用 Claude Code 写代码Introduction to agent skills适合:用 Claude Code 的开发者;想把团队规范固化下来的人免费 · 英文 · 有结业证书
这是导读,不是翻译。先用 15 分钟拿到这门课的思想地图,再去 Anthropic Academy 原课程 → 注册学习(免费)。

一句话

Skill 是一个文件夹,核心是一份 SKILL.md:开头写名称和描述,正文写做事步骤,旁边可以放参考文档和脚本。Claude 平时只看描述,任务匹配时才加载正文。这门课教你写第一个 Skill、写出能稳定触发的描述、用渐进加载节省上下文,再通过仓库、插件和企业设置分享出去,最后讲怎么排查不触发和冲突。

这篇导读覆盖的课程

课程结构

什么是 Skills
Skill 解决什么问题,和每次重复交代有什么区别。
创建第一个 Skill
SKILL.md 的头部字段和正文;写一段能可靠触发的描述。
配置与多文件 Skill
渐进加载的目录结构;allowed-tools 限制工具;运行脚本而不占上下文。
Skills 与其他功能的区别
Skills、CLAUDE.md、hooks、子代理各自适合什么。
分享 Skills
提交到仓库、通过插件分发、用企业托管设置全组织部署;在子代理里使用 Skills。
排错
不触发、优先级冲突、运行时错误的排查方法。

精华:这门课真正要你带走的东西

Skill 解决“每次都要重新交代”的问题。你每次让 Claude 写发布说明,都要贴一遍格式要求;每次做代码审查,都要列一遍检查清单。Skill 把这些固定下来,Claude 在匹配的任务里自动使用。

最小的 Skill 只要一个文件:

.claude/skills/release-notes/SKILL.md
---
name: release-notes
description: 根据 git 提交记录写版本发布说明。用户要写 release notes、changelog 或版本说明时使用。
---
1. 读取上一个 tag 到 HEAD 的提交。
2. 按“新功能 / 修复 / 破坏性变更”分组。
3. 每条一句话,面向用户而不是开发者。

描述(description)决定会不会触发。Claude 在每次会话开始时只看到各 Skill 的名称和描述,靠描述判断当前任务要不要用。所以描述要同时写清“做什么”和“什么时候用”,并包含用户可能说的关键词。描述含糊,Skill 就不触发或乱触发。

渐进加载(progressive disclosure):只在需要时读需要的部分。第 1 层是描述,始终在上下文里,很短。第 2 层是 SKILL.md 正文,触发后才加载。第 3 层是同目录下的参考文件(如 reference.md、模板),正文里告诉 Claude“需要时再读”。这样一个 Skill 可以附带很多资料,却几乎不占平时的上下文。

脚本不占上下文。确定性的步骤(解析文件、校验格式)写成脚本放进 Skill 目录,让 Claude 直接运行。Claude 只看到运行结果,不需要把脚本源码读进上下文。用 allowed-tools 字段可以限制 Skill 运行期间能用的工具,例如只读 Skill 不许编辑文件。

和其他功能怎么分工:

分享的 3 个层级。个人:放 ~/.claude/skills/。项目:放仓库的 .claude/skills/ 并提交,团队成员拉代码即可用。更大范围:打包进插件,或由管理员用企业托管设置推送到全组织。

关键概念

SKILL.md
Skill 的主文件:YAML 头部(name、description 等)加 Markdown 正文。
description(描述)
Claude 判断是否使用 Skill 的唯一依据,要写清做什么和何时用。
渐进加载(progressive disclosure)
描述常驻、正文触发后加载、参考文件按需读取的三层结构,用来节省上下文。
allowed-tools
SKILL.md 头部字段,限制 Skill 激活时 Claude 可用的工具。
Skill 存放位置
个人目录 ~/.claude/skills/、项目目录 .claude/skills/、插件、企业托管设置,范围依次扩大。
斜杠调用
除了自动触发,也可以输入 /skill-name 手动调用一个 Skill。

学前准备

动手练一遍

  1. 写第一个 Skill:在项目里建 .claude/skills/ 下的一个目录,写 SKILL.md。内容选你最常重复的要求,例如提交信息格式。
  2. 测触发:新开会话,用 3 种不同说法提出这类任务(一句直接、一句含糊、一句用英文)。记录哪几次触发了。没触发就改描述,加入你实际会说的关键词。
  3. 改成多文件:把正文里的长示例挪到 examples.md,正文只写“需要示例时读 examples.md”。确认效果不变。
  4. 加脚本:写一个小脚本做一步确定性检查(例如检查提交信息是否以类型前缀开头),在 SKILL.md 里让 Claude 运行它。
  5. 分享:提交到仓库,让一位同事拉代码后试用。

容易卡住的地方

延伸阅读