Agent Skill 设计与实践
Skill 规范

SKILL.md 规范

SKILL.md 文件的结构和规范

SKILL.md 是 Skill 的入口文件,所有技能都至少需要一个 SKILL.md 文件。尽管 SKILL.md 本质上就是一份自然语言描述的操作手册,但为了能让 Agent 的理解和使用,我们在编写 SKILL.md 时,需要遵循基本的规范和结构。

SKILL.md 的基本结构

Frontmatter 元数据

Frontmatter 是 Markdown 文件开头的 YAML 块,用于定义文档的元数据。 通过三个短横线 --- 包裹起来,里面可以包含各种键值对信息。

Markdown 的 Frontmatter 定义了 Skill 的元数据,至少需要包含 namedescription 两个字段。前者是技能的唯一标识,后者则是对技能功能的简要描述。

下面是一个 SKILL.md 的 Frontmatter 示例:

SKILL.md
---
name: contract-review
description: "根据合同审核标准对合同进行审核,并生成审核报告。当用户需要审核合同时,可以使用此功能。"
---

name 规范

Skill 的 name 是它的唯一标识,必须遵循以下规范:

  • 最多64个字符
  • 仅限小写字母、数字和连字符
  • 不得以连字符开头或结尾。
✅ 正确示例
  • contract-review
  • customer-support
  • data-analysis
❌ 错误示例
  • ContractReview (包含大写字母)
  • contract_review (包含下划线)
  • contract review (包含空格)
  • -contract-review (以连字符开头)
  • contract-review- (以连字符结尾)

description 规范

Skill 的 description 是对技能功能的简要描述,必须遵循以下规范:

  • 最多 1024 个字符。
  • 非空
  • 描述技能的作用和使用时机

Agent 是通过 name 来识别和调用技能,而 description 则是帮助 Agent 理解技能功能和使用场景的关键。 因此,编写清晰、准确的 description 对于确保 Agent 能正确选择和使用技能至关重要。

✅ 正确示例
description: "根据合同审核标准对合同进行审核,并生成审核报告。当用户需要审核合同时使用此功能。"

❌ 错误示例

description: 处理 PDF 文件  # 过于简略,缺乏具体信息

其他可选的 Frontmatter 属性

除了 namedescription,你还可以在 Frontmatter 中添加下面的属性来提供更多信息:

  • license: 许可证名称或对许可证文件的引用
  • compatibility: 兼容性信息,例如支持的 Agent 应用或依赖的运行环境1
  • metadata: 其他自定义的元数据字段,可以根据需要添加, 比如技能的版本号、作者信息、更新日志等 。
  • allowed-tools: 一组以空格分隔的、预先批准运行的工具,目前还处于实验阶段。例如 Bash(git:*) Bash(jq:*) Read
SKILL.md
---
name: pdf-processing
description: Extract PDF text, fill forms, merge files. Use when handling PDFs.
license: Apache-2.0
compatibility: Requires Python 3.14+ and uv
allowed-tools: Bash(git:*) Bash(jq:*) Read
metadata:
  author: SkillPKG Team
  version: "1.0"
---

正文

Frontmatter 元数据之后的 Markdown 正文包含自然语言描写的技能指令。格式没有限制, 编写任何有助于Agent有效执行任务的内容即可。

尽管没有限制,一个合格的 Skill 正文通常包含以下内容:

  • 执行步骤说明
  • 输入和输出示例
  • 常见边界情况

需要注意的一点: Agent 一旦决定使用某个技能,就会加载整个 SKILL.md 文件。为了避免上下文过长,建议将较长2的 SKILL.md 内容拆分为多个引用文件。 例如,你可以把技能的核心指令放在 SKILL.md 中,而把一些参考示例,模板文件放在 references 文件夹中的单独 Markdown 文件里,然后在 SKILL.md 中通过链接引用3它们。

Footnotes

  1. 大部分的Skill 都不会用到 compatibility 属性,如果你拿不准是否需要它,就不要使用。

  2. 官方建议 SKILL.md 的内容不要超过 500 行。

  3. Anthropic 官方发布了一个工具 skills-ref,可以用来验证引用的有效性。

On this page