语音摘要 — 点击播放以跟读:正在朗读的行会保持在顶部附近。
你将学到什么
预计时间:20分钟
完成本课程后,你将能够:
- 配置包括allowed-tools和model在内的高级技能元数据字段
- 编写能可靠触发正确请求的有效技能描述
- 使用allowed-tools限制技能激活时Claude可执行的操作
- 通过渐进式披露和多文件结构组织复杂技能
配置与多文件技能
(4分钟)
本视频涵盖使技能更强大的高级技巧:完整的元数据字段集、如何编写能可靠触发的描述、为安全敏感工作流限制工具访问,以及使用渐进式披露跨多文件组织大型技能。你将学会如何在支持复杂用例的同时保持技能高效。
关键要点
- name和description是必填项 — allowed-tools和model是可选项但能显著增强功能
- 优秀的描述需回答两个问题:该技能做什么?Claude应在何时使用它?
- allowed-tools限制技能激活时Claude可使用的工具 — 适用于只读或安全敏感的工作流
- 渐进式披露:保持SKILL. md不超过500行,并链接到支持文件(参考资料、脚本、资源),这些内容仅在需要时由Claude读取
- 脚本执行时不将其内容加载到上下文中 — 仅输出消耗token,保持上下文高效
基础技能只需名称和描述即可工作,但Claude Code中有几项高级技巧能大幅提升技能效果。让我们了解关键字段、描述的最佳实践、工具限制以及如何构建大型技能。
技能元数据字段
代理技能开放标准支持SKILL. md前言中的多个字段。其中两项为必填,其余为可选:
- name(必填) — 标识你的技能。仅使用小写字母、数字和连字符。最多64个字符。应与目录名匹配。
- description(必填) — 告知Claude何时使用该技能。最多1,024个字符。这是最重要的字段,因为Claude用它进行匹配。
- allowed-tools(可选) — 限制技能激活时Claude可使用的工具。
- model(可选) — 指定技能使用的Claude模型。
编写有效描述
指令要明确。如果有人告诉你"你的工作是帮助处理文档",你会不知所措 — Claude同样如此。
好的描述需回答两个问题:
- 该技能做什么?
- Claude应在何时使用它?
如果技能未按预期触发,尝试添加更多与你实际请求方式匹配的关键词。描述是Claude判断技能相关性的依据,因此措辞很重要。
使用allowed-tools限制工具
有时你需要一个只能读取文件而不能修改的技能。这适用于安全敏感的工作流、只读任务或任何需要设置防护的场景。
本例中,allowed-tools字段设置为Read, Grep, Glob, Bash。当该技能激活时,Claude无需请求许可即可使用这些工具 — 不能编辑或写入。
--- name: codebase-onboarding description: 帮助新开发者理解系统工作原理 allowed-tools: Read, Grep, Glob, Bash model: sonnet ---
如果完全省略allowed-tools,技能不会施加任何限制。Claude将使用其常规权限模型。
渐进式披露
技能与你的对话共享Claude的上下文窗口。当Claude激活技能时,它会将该SKILL. md的内容加载到上下文中。但有时技能需要依赖参考资料、示例或实用脚本。
将所有内容塞入一个2,000行的文件有两个问题:占用大量上下文窗口空间,且难以维护。
渐进式披露可解决此问题。将核心指令保留在SKILL. md中,将详细参考资料放入单独文件,仅在需要时由Claude读取。
开放标准建议按以下方式组织技能目录:
- scripts/ — 可执行代码
- references/ — 补充文档
- assets/ — 图像、模板或其他数据文件
然后在SKILL. md中,用清晰说明链接支持文件,指出何时加载它们:
本例中,仅当有人询问系统设计时,Claude才会读取architecture-guide. md。如果询问添加组件的位置,则永远不会加载该文件。这就像在上下文窗口中放置目录而非整个文档。
一个好的经验法则:**保持SKILL. md不超过500行**。如果超出,考虑是否应将内容拆分为单独的参考文件。
高效使用脚本
技能目录中的脚本可在不将其内容加载到上下文的情况下运行。脚本执行后,仅输出消耗token。SKILL. md中的关键指令是告诉Claude运行脚本而非读取它。
这在以下情况特别有用:
- 环境验证
- 需要保持一致性的数据转换
- 作为测试代码比生成代码更可靠的操作
课程反思
- 思考你想构建的一个涉及多文件的技能。你会如何构建SKILL. md与支持参考文件?
- 在你的团队工作流中,是否有使用allowed-tools限制工具访问能增加重要安全层的情况?
下一步
下一课中,我们将比较技能与定制Claude Code的其他方式 — CLAUDE. md、子代理、钩子和MCP服务器 — 以便你为每种情况选择合适工具。
反馈
在学习过程中,我们很想知道你如何在工作使用技能,以及你可能有任何反馈。在此处分享反馈。