目录结构
一个 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 的功能及使用时机
- 应包含帮助 agents 识别相关任务的特定关键词
license 字段
可选的 license 字段:
- 指定应用于 skill 的许可证
- 我们建议保持简短(许可证名称或捆绑许可证文件的名称)
compatibility 字段
可选的 compatibility 字段:
- 如果提供,必须为 1-500 个字符
- 仅应在您的 skill 有特定环境要求时包含
- 可以指示预期产品、必需的系统包、网络访问需求等
大多数 skills 不需要
compatibility 字段。metadata 字段
可选的 metadata 字段:
- 从字符串键到字符串值的映射
- 客户端可以使用此字段存储 Agent Skills 规范未定义的附加属性
- 我们建议使您的键名具有合理的唯一性以避免意外冲突
allowed-tools 字段
可选的 allowed-tools 字段:
- 预批准可运行的工具的空格分隔列表
- 实验性。对此字段的支持可能因 agent 实现而异
主体内容
frontmatter 之后的 Markdown 主体包含 skill 指令。没有格式限制。编写任何有助于 agents 有效执行任务的内容。 推荐的章节:- 分步说明
- 输入和输出示例
- 常见边缘情况
SKILL.md 内容拆分到引用的文件中。
可选目录
scripts/
包含 agents 可以运行的可执行代码。脚本应:- 自包含或清楚地记录依赖项
- 包含有用的错误消息
- 优雅地处理边缘情况
references/
包含 agents 在需要时可以阅读的附加文档:REFERENCE.md- 详细技术参考FORMS.md- 表单模板或结构化数据格式- 领域特定文件(
finance.md、legal.md等)
assets/
包含静态资源:- 模板(文档模板、配置模板)
- 图像(图表、示例)
- 数据文件(查找表、模式)
渐进式披露
skills 应结构化以高效使用上下文:- 元数据(约 100 个 token):所有 skills 的
name和description字段在启动时加载 - 指令(建议 < 5000 个 token):激活 skill 时加载完整的
SKILL.md主体 - 资源(按需):文件(例如
scripts/、references/或assets/中的文件)仅在需要时加载
SKILL.md 保持在 500 行以下。将详细参考材料移动到单独的文件中。
文件引用
在引用 skill 中的其他文件时,使用相对于 skill 根目录的路径:SKILL.md 深入一级。避免深度嵌套的引用链。
验证
使用 skills-ref 参考库来验证您的 skills:SKILL.md frontmatter 是否有效并遵循所有命名约定。