用途
write-a-skill 是一个用于创建新智能体技能(agent skill)的元技能。当用户想要创建、编写或构建一个新技能时,可以使用它。它指导用户按照规范的结构、渐进式披露(progressive disclosure)和捆绑资源来编写技能。
主要能力
该技能提供了一套编写技能的流程,包括需求收集、草稿撰写和用户评审三个阶段。
1. 收集需求
向用户询问以下问题:
- 该技能覆盖什么任务或领域?
- 它应该处理哪些具体用例?
- 它需要可执行脚本,还是只需要指令?
- 是否有需要包含的参考材料?
2. 起草技能
创建以下内容:
- SKILL.md,包含简洁的指令
- 如果内容超过 500 行,添加额外的参考文件
- 如果需要确定性操作,添加工具脚本
3. 与用户评审
展示草稿并询问:
- 这是否覆盖了你的用例?
- 是否有遗漏或不清晰的地方?
- 是否有某个部分需要更详细或更简略?
技能结构
技能目录采用如下结构:
skill-name/
├── SKILL.md # 主指令(必需)
├── REFERENCE.md # 详细文档(如需要)
├── EXAMPLES.md # 使用示例(如需要)
└── scripts/ # 工具脚本(如需要)
└── helper.js
SKILL.md 模板
---
name: skill-name
description: Brief description of capability. Use when [specific triggers].
---
# Skill Name
## Quick start
[Minimal working example]
## Workflows
[Step-by-step processes with checklists for complex tasks]
## Advanced features
[Link to separate files: See [REFERENCE.md](REFERENCE.md)]
描述(description)要求
description 是智能体在决定加载哪个技能时唯一能看到的信息。它会与所有其他已安装技能一起出现在系统提示中。智能体阅读这些描述,并根据用户请求选择相关技能。
目标是让智能体获得刚好足够的信息来判断:
- 该技能提供什么能力
- 何时/为何触发它(具体关键词、上下文、文件类型)
格式要求:
- 最多 1024 字符
- 使用第三人称
- 第一句:它做什么
- 第二句:“Use when [具体触发条件]”
好的示例:
Extract text and tables from PDF files, fill forms, merge documents. Use when working with PDF files or when user mentions PDFs, forms, or document extraction.
不好的示例:
Helps with documents.
不好的示例无法让智能体将此技能与其他文档技能区分开来。
何时添加脚本
在以下情况添加工具脚本:
- 操作是确定性的(验证、格式化)
- 同一段代码会被重复生成
- 错误需要显式处理
脚本相比生成的代码可以节省 token 并提高可靠性。
何时拆分文件
在以下情况拆分为单独文件:
- SKILL.md 超过 100 行
- 内容涉及不同领域(例如财务与销售 schema)
- 高级功能很少被使用
评审清单
起草后,验证以下各项:
- description 包含触发条件(“Use when...”)
- SKILL.md 少于 100 行
- 没有时间敏感的信息
- 术语一致
- 包含具体示例
- 引用只有一层深度
适用场景
适用于需要为智能体创建新技能的场景,例如用户希望编写、构建或创建新技能时。
限制
资料中未提供关于收费、价格、平台支持范围或具体效果的信息。