从本质上讲,技能是一个包含 SKILL.md 文件的文件夹。该文件包括元数据(至少包括 name 和 description)以及告诉智能体如何执行特定任务的指令。技能还可以捆绑脚本、模板和参考资料。
my-skill/
├── SKILL.md # 必需:指令 + 元数据
├── scripts/ # 可选:可执行代码
├── references/ # 可选:文档
└── assets/ # 可选:模板、资源
技能如何工作
技能使用渐进式披露来高效管理上下文:
-
发现:启动时,智能体仅加载每个可用技能的名称和描述,仅足以知道何时可能相关。
-
激活:当任务与技能描述匹配时,智能体将完整的
SKILL.md指令读入上下文。 -
执行:智能体遵循指令,根据需要可选地加载引用的文件或执行捆绑的代码。
这种方法使智能体保持快速,同时让它们能够按需访问更多上下文。
SKILL.md 文件
每个技能都从一个包含 YAML frontmatter 和 Markdown 指令的 SKILL.md 文件开始:
---
name: pdf-processing
description: 从 PDF 文件中提取文本和表格,填写表单,合并文档。
---
# PDF 处理
## 何时使用此技能
当用户需要处理 PDF 文件时使用此技能...
## 如何提取文本
1. 使用 pdfplumber 进行文本提取...
## 如何填写表单
...
SKILL.md 顶部需要以下 frontmatter:
name:一个简短的标识符description:何时使用此技能
Markdown 正文包含实际指令,对结构或内容没有特定限制。
这种简单格式具有一些关键优势:
-
自文档化:技能作者或用户可以阅读
SKILL.md并了解它的作用,使技能易于审计和改进。 -
可扩展:技能可以从简单的文本指令到可执行代码、资源和模板,复杂度范围广泛。
-
可移植:技能只是文件,因此易于编辑、版本控制和共享。
下一步
- 查看规范 以了解完整格式。
- 为您的智能体添加技能支持 以构建兼容的客户端。
- 在 GitHub 上查看示例技能。
- 阅读编写最佳实践 以编写有效的技能。
- 使用参考库 验证技能并生成提示 XML。