Skip to main content
本文档定义了 Agent Skills 格式。

目录结构

一个 Skill 是一个至少包含 SKILL.md 文件的目录:
你可以可选地包含额外目录,如 scripts/references/assets/ 来支持你的 Skill。

SKILL.md 格式

SKILL.md 文件必须包含 YAML Frontmatter,后接 Markdown 内容。

Frontmatter (必需)

包含可选字段:

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 有效执行任务的内容。 推荐部分:
  • 逐步指令
  • 输入和输出示例
  • 常见边缘情况
请注意,一旦 Agent 决定激活某个 Skill,它将加载整个文件。考虑将较长的 SKILL.md 内容拆分为引用的文件。

可选目录

scripts/

包含 Agent 可以运行的可执行代码。脚本应:
  • 自包含或清晰记录依赖项
  • 包含有用的错误消息
  • 优雅地处理边缘情况
支持的语言取决于 Agent 的实现。常见的选择包括 Python、Bash 和 JavaScript。

references/

包含 Agent 在需要时可以读取的额外文档:
  • REFERENCE.md - 详细的技术参考
  • FORMS.md - 表单模板或结构化数据格式
  • 领域特定文件(finance.mdlegal.md 等)
保持单个文件引用的专注。Agent 按需加载这些文件,因此较小的文件意味着更少的上下文占用。

assets/

包含静态资源:
  • 模板(文档模板、配置模板)
  • 图像(图表、示例)
  • 数据文件(查找表、模式)

渐进式披露

Skills 的结构应利于上下文的高效利用:
  1. 元数据 (~100 tokens):所有 Skill 在启动时都会加载 namedescription 字段
  2. 指令 (建议 < 5000 tokens):Skill 激活时加载完整的 SKILL.md 正文
  3. 资源 (按需):仅在需要时加载文件(例如 scripts/references/assets/ 中的文件)
保持主 SKILL.md 在 500 行以内。将详细的参考资料移至单独的文件。

文件引用

在 Skill 中引用其他文件时,请使用相对于 Skill 根目录的相对路径:
保持文件引用距离 SKILL.md 一层深度。避免深度嵌套的引用链。

验证

使用 skills-ref 参考库来验证你的 Skills:
这将检查你的 SKILL.md Frontmatter 是否有效并遵循所有命名规范。