目录结构
一个 Skill 是一个至少包含SKILL.md 文件的目录:
SKILL.md 格式
SKILL.md 文件必须包含 YAML Frontmatter,后接 Markdown 内容。
Frontmatter (必需)
| 字段 | 是否必需 | 约束 |
|---|---|---|
name | 是 | 最多 64 个字符。仅限小写字母、数字和连字符。不能以连字符开头或结尾。 |
description | 是 | 最多 1024 个字符。不能为空。描述 Skill 的功能及使用时机。 |
license | 否 | 许可证名称或对捆绑许可证文件的引用。 |
compatibility | 否 | 最多 500 个字符。指示环境要求(目标产品、系统包、网络访问等)。 |
metadata | 否 | 用于额外元数据的任意键值映射。 |
allowed-tools | 否 | 预先批准的 Skill 可能使用的工具列表(以空格分隔)。(实验性) |
name 字段
必需的 name 字段:
- 必须为 1-64 个字符
- 只能包含 Unicode 小写字母数字字符和连字符(
a-z和-) - 不能以
-开头或结尾 - 不能包含连续的连字符 (
--) - 必须与父目录名称匹配
description 字段
必需的 description 字段:
- 必须为 1-1024 个字符
- 应描述 Skill 的功能及使用时机
- 应包含有助于 Agent 识别相关任务的特定关键词
license 字段
可选的 license 字段:
- 指定应用于 Skill 的许可证
- 我们建议保持简短(许可证名称或捆绑许可证文件的名称)
compatibility 字段
可选的 compatibility 字段:
- 如果提供,必须为 1-500 个字符
- 仅当你的 Skill 有特定的环境要求时才应包含
- 可以指示目标产品、所需的系统包、网络访问需求等
大多数 Skill 不需要
compatibility 字段。metadata 字段
可选的 metadata 字段:
- 从字符串键到字符串值的映射
- 客户端可以使用它来存储 Agent Skills 规范未定义的额外属性
- 我们建议使你的键名尽可能唯一,以避免意外冲突
allowed-tools 字段
可选的 allowed-tools 字段:
- 预先批准运行的工具列表(以空格分隔)
- 实验性。对该字段的支持可能因 Agent 实现而异
正文内容
Frontmatter 之后的 Markdown 正文包含 Skill 指令。没有格式限制。编写任何有助于 Agent 有效执行任务的内容。 推荐部分:- 逐步指令
- 输入和输出示例
- 常见边缘情况
SKILL.md 内容拆分为引用的文件。
可选目录
scripts/
包含 Agent 可以运行的可执行代码。脚本应:- 自包含或清晰记录依赖项
- 包含有用的错误消息
- 优雅地处理边缘情况
references/
包含 Agent 在需要时可以读取的额外文档:REFERENCE.md- 详细的技术参考FORMS.md- 表单模板或结构化数据格式- 领域特定文件(
finance.md、legal.md等)
assets/
包含静态资源:- 模板(文档模板、配置模板)
- 图像(图表、示例)
- 数据文件(查找表、模式)
渐进式披露
Skills 的结构应利于上下文的高效利用:- 元数据 (~100 tokens):所有 Skill 在启动时都会加载
name和description字段 - 指令 (建议 < 5000 tokens):Skill 激活时加载完整的
SKILL.md正文 - 资源 (按需):仅在需要时加载文件(例如
scripts/、references/或assets/中的文件)
SKILL.md 在 500 行以内。将详细的参考资料移至单独的文件。
文件引用
在 Skill 中引用其他文件时,请使用相对于 Skill 根目录的相对路径:SKILL.md 一层深度。避免深度嵌套的引用链。
验证
使用 skills-ref 参考库来验证你的 Skills:SKILL.md Frontmatter 是否有效并遵循所有命名规范。