在《认识Agent skill》一文中,我们学习到skill的结构如下;
skill必须至少包含一个文件:SKILL.md
my-skill/
├── SKILL.md # 必填: 元数据(name、description) + 技能描述
├── scripts/ # 可选: 可执行的代码脚本
├── references/ # 可选: 参考文档
├── assets/ # 可选: 模板、资源文件
└── ...
下面我们来学习和了解skill的格式规范
SKILL.md文件必须是YAML格式的前置内容,以及markdown格式的正文描述
| 字段 | 是否必须 | 约束条件 |
|---|---|---|
| name | 必要 | 最多64个字符。仅限小写字母、数字和连字符。不得以连字符开头或结尾。 |
| description | 必要 | 最多1024个字符,描述技能的作用以及何时使用 |
| license | 可选 | 许可证类型 |
| compatibility | 可选 | 最多500字符。表示环境需求(预期产品、系统包、网络访问等) |
| metadata | 可选 | 任意键值映射以获取额外元数据 |
| allowed-tools | 可选 | 明确授权使用的工具 |
最小化样例
name: 技能名称
description: 描述这个技能能做什么,什么时候需要用这个技能
带有可选项的样例
name: PDF文件处理
description: 提取PDF文本、填写表单、合并文件。在处理 PDF 时使用
license: Apache-2.0
metadata:
author: 示例组织
version: "1.0"
可以看到SKILL.md文件中含有多个字段,有的是必选,有的是可选,那么下面我们就来逐条讲解
在SKILL.md文件中,name字段扮演着“唯一身份标识符”的核心角色,是Agent识别和调用特定 Skill的唯一凭证。Agent在底层处理时,依靠这个字段来区分不同的技能模块,确保在执行任务时能够精准定位到正确的指令集。
在Agent启动时,它会采用“渐进式披露”机制,仅预加载所有已安装Skill的元数据(即 name和description)。name就像是Skill的“名片”,Agent首先通过它来建立索引,知道“我拥有这个能力”,随后再结合description判断当前任务是否需要激活该Skill。
下面是官方对name字段的格式输入要求:
a-z,0-9和连字符-name的实战技巧为了确保 Agent 能够稳定识别,同时方便开发者后期维护,编写name时建议遵循以下规范:
PdfEditor或pdf editor。pdf-form-filler,而不是笼统地命名为pdf-tool。name字段中的名称与文件夹名称、引用路径保持严格一致。同时,要特别注意核心文件名必须严格写成SKILL.md(大小写完全一致),避免因命名错误导致Agent无法读取或上传失败。