规范 - 智能体技能
来源: https://agentskills.io/specification 抓取时间: 2026-07-21 16:19:13
本页内容
- 目录结构
- SKILL.md 格式
- 前言
- name 字段
- description 字段
- license 字段
- compatibility 字段
- metadata 字段
- allowed-tools 字段
- 主体内容
- 可选目录
- scripts/
- references/
- assets/
- 渐进式披露
- 文件引用
- 验证
规范
完整的智能体技能格式规范。
目录结构
技能是一个目录,至少包含一个 SKILL.md 文件:
skill-name/
├── SKILL.md # 必需:元数据 + 指令
├── scripts/ # 可选:可执行代码
├── references/ # 可选:文档
├── assets/ # 可选:模板、资源
└── ... # 任何额外的文件或目录
SKILL.md 格式
SKILL.md 文件必须包含 YAML 前言,后跟 Markdown 内容。
前言
| 字段 | 必需 | 约束 |
|---|---|---|
name | 是 | 最多 64 个字符。只能是小写字母、数字和连字符。不能以连字符开头或结尾。 |
description | 是 | 最多 1024 个字符。非空。描述技能的功能和使用时机。 |
license | 否 | 许可证名称或对捆绑许可证文件的引用。 |
compatibility | 否 | 最多 500 个字符。指示环境要求(预期产品、系统包、网络访问等)。 |
metadata | 否 | 用于额外元数据的任意键值映射。 |
allowed-tools | 否 | 技能可以使用的预批准工具的空格分隔字符串。(实验性) |
最小示例: SKILL.md
---
name: skill-name
description: 描述该技能的功能和使用时机。
---
带有可选字段的示例: SKILL.md
---
name: pdf-processing
description: 提取 PDF 文本、填写表单、合并文件。在处理 PDF 时使用。
license: Apache-2.0
metadata:
author: example-org
version: "1.0"
---
name 字段
必需的 name 字段:
- 必须是 1-64 个字符
- 只能包含 Unicode 小写字母数字字符(
a-z、0-9)和连字符(-) - 不能以连字符(
-)开头或结尾 - 不能包含连续连字符(
--) - 必须与父目录名称匹配
有效示例:
name: pdf-processing
name: data-analysis
name: code-review
无效示例:
name: PDF-Processing # 不允许大写
name: -pdf # 不能以连字符开头
name: pdf--processing # 不允许连续连字符
description 字段
必需的 description 字段:
- 必须是 1-1024 个字符
- 应该描述技能的功能和使用时机
- 应该包含帮助智能体识别相关任务的特定关键词
好的示例:
description: 从 PDF 文件中提取文本和表格,填写 PDF 表单,并合并多个 PDF。在处理 PDF 文档或用户提到 PDF、表单或文档提取时使用。
差的示例:
description: 帮助处理 PDF。
license 字段
可选的 license 字段:
- 指定应用于技能的许可证
- 我们建议保持简短(许可证名称或许可证文件的名称)
示例:
license: 专有。LICENSE.txt 包含完整条款
compatibility 字段
可选的 compatibility 字段:
- 如果提供,必须是 1-500 个字符
- 只有当你的技能有特定的环境要求时才应该包含
- 可以指示预期产品、所需系统包、网络访问需求等
示例:
compatibility: 专为 Claude Code(或类似产品)设计
compatibility: 需要 git、docker、jq 和互联网访问
compatibility: 需要 Python 3.14+ 和 uv
大多数技能不需要 compatibility 字段。
metadata 字段
可选的 metadata 字段:
- 从字符串键到字符串值的映射
- 客户端可以使用它来存储智能体技能规范未定义的额外属性
- 我们建议使你的键名合理唯一,以避免意外冲突
示例:
metadata:
author: example-org
version: "1.0"
allowed-tools 字段
可选的 allowed-tools 字段:
- 预批准运行的工具的空格分隔字符串
- 实验性的。对该字段的支持可能因智能体实现而异
示例:
allowed-tools: Bash(git:*) Bash(jq:*) Read
主体内容
前言后的 Markdown 主体包含技能指令。没有格式限制。写任何能帮助智能体有效执行任务的内容。推荐部分:
- 分步说明
- 输入和输出示例
- 常见边缘情况
请注意,一旦智能体决定激活技能,它将加载整个文件。考虑将较长的 SKILL.md 内容拆分为引用文件。
可选目录
scripts/
包含智能体可以运行的可执行代码。脚本应:
- 自包含或清楚地记录依赖关系
- 包含有用的错误消息
- 优雅地处理边缘情况
支持的语言取决于智能体实现。常见选项包括 Python、Bash 和 JavaScript。
references/
包含智能体在需要时可以阅读的额外文档:
REFERENCE.md- 详细技术参考FORMS.md- 表单模板或结构化数据格式- 特定领域文件(
finance.md、legal.md等)
保持各个参考文件的重点。智能体按需加载这些文件,因此较小的文件意味着更少的上下文使用。
assets/
包含静态资源:
- 模板(文档模板、配置模板)
- 图像(图表、示例)
- 数据文件(查找表、模式)
渐进式披露
智能体渐进式加载技能,仅在任务需要时引入更多细节。技能应结构化以利用这一点:
- 元数据(约 100 个令牌):
name和description字段在启动时为所有技能加载 - 指令(建议 < 5000 个令牌):技能激活时加载完整的
SKILL.md主体 - 资源(按需):文件(例如
scripts/、references/或assets/中的文件)仅在需要时加载
保持你的主要 SKILL.md 低于 500 行。将详细的参考材料移到单独的文件中。
文件引用
在引用你技能中的其他文件时,使用从技能根目录的相对路径: SKILL.md
详见[参考指南](references/REFERENCE.md)。
运行提取脚本:
scripts/extract.py
保持文件引用从 SKILL.md 开始只有一层深。避免深度嵌套的引用链。
验证
使用 skills-ref 参考库来验证你的技能:
skills-ref validate ./my-skill