name: skill-creator description: 创建有效代理技能的指南。当您想创建新技能、改进现有技能或学习技能开发最佳实践时使用。帮助将学到的模式编码成可重用、可发现的技能。 tags:
- meta
- skills
- learning
- documentation tools:
- skills_init
- skills_create
- skills_update
- skills_read
技能创建器
此技能提供创建有效技能的指导,这些技能通过专业知识、工作流程和工具扩展代理能力。
什么是技能?
技能是模块化、自包含的包,通过提供以下内容扩展代理能力:
- 专业工作流程 - 针对特定领域的多步骤程序
- 工具集成 - 用于处理特定文件格式或API的说明
- 领域专业知识 - 项目特定知识、模式、业务逻辑
- 捆绑资源 - 用于复杂任务的脚本、参考和资产
将技能视为“入职指南”,将通用代理转变为具备程序知识的专业代理。
技能解剖
每个技能包括一个必需的SKILL.md文件和可选的捆绑资源:
skill-name/
├── SKILL.md (必需)
│ ├── YAML 前言 (name, description, tags, tools)
│ └── Markdown 说明
└── 捆绑资源 (可选)
├── scripts/ - 可执行代码 (通过 skills_execute 运行)
└── references/ - 文档 (通过 skills_read 加载)
渐进式披露
技能使用三级加载系统:
- 元数据 (名称 + 描述) - 始终在上下文中 (~100字)
- SKILL.md 正文 - 当技能触发时 (<5k字)
- 捆绑资源 - 按需使用
保持SKILL.md简洁。将详细内容移至references/。
创建技能
步骤 1: 理解使用案例
创建前,理解具体例子:
- 什么触发应该激活此技能?
- 什么用户请求会从中受益?
- 它启用什么工作流程?
如果范围不清晰,请提问澄清。
步骤 2: 初始化技能
使用 skills_init 创建完整模板结构:
skills_init(
name: "my-skill",
description: "初始描述",
directory: ".opencode/skills"
)
这创建:
- 带有TODO占位符的SKILL.md
- 带有示例脚本的scripts/
- 带有示例文档的references/
步骤 3: 完成 SKILL.md
填写TODO占位符。关键部分:
前言 - 对可发现性至关重要:
---
name: my-skill
description: 它做什么以及何时使用它。具体说明触发场景。
tags:
- category
- domain
tools:
- tool_names_used
---
何时使用 - 具体触发场景:
## 何时使用此技能
- 当处理X类型任务时
- 当涉及匹配Y模式的文件时
- 当用户询问Z主题时
说明 - 可操作、命令形式:
## 说明
1. 首先读取配置文件
2. 创建前检查现有模式
3. 完成前始终验证输出
示例 - 真实用户请求:
## 示例
### 示例: 真实场景
**用户**: "帮助我做X"
**过程**:
1. 第一步
2. 第二步
3. 最终步骤
步骤 4: 添加捆绑资源 (可选)
scripts/ - 可执行助手:
- 用于重复自动化
- 令牌高效 (运行时不需读取)
- 通过
skills_execute运行
references/ - 按需文档:
- 对SKILL.md太长的详细指南
- API文档
- 复杂工作流程
- 通过
skills_read加载
步骤 5: 测试和迭代
- 使用
skills_use加载技能 - 在真实任务上尝试
- 注意困难或低效
- 基于经验更新SKILL.md
- 再次测试
最佳实践
元数据质量
name 和 description 决定何时触发技能:
好的描述:
- “创建MCP服务器的指南。当构建连接LLMs到外部API的工具时使用。”
- “文件组织助手。当下载文件夹混乱或文件需要重组时使用。”
坏的描述:
- “一个有用的技能” (太模糊)
- “处理文件的东西” (不可操作)
写作风格
全程使用命令/不定式形式:
- “首先读取文件” (不是"您应该读取文件")
- “检查模式” (不是"考虑检查模式")
保持SKILL.md简洁
- 仅核心说明 (<5k字)
- 将细节移至references/
- 谨慎使用示例
- 删除占位符部分
设计可发现性
- 标签帮助代理按类别找到技能
- "何时使用"部分启用正确触发
- 工具列表显示技能使用的功能
快速参考
创建技能
| 工具 | 使用时机 |
|---|---|
skills_init |
想要带有TODO的完整模板结构 |
skills_create |
有完整内容准备写入 |
swarm_learn |
将学到的模式转换为技能 |
管理技能
| 工具 | 用途 |
|---|---|
skills_list |
发现可用技能 |
skills_use |
通过加载内容激活技能 |
skills_read |
从技能加载参考文件 |
skills_update |
修改现有技能 |
skills_delete |
移除过时技能 |
执行
| 工具 | 用途 |
|---|---|
skills_execute |
运行技能的脚本 |
skills_add_script |
向技能添加新脚本 |
从学到的模式到技能
当您在工作中发现可重用内容时:
- 识别模式 - 什么工作得好?
- 考虑范围 - 是项目特定还是通用的?
- 使用
swarm_learn- 记录学习 - 创建技能 - 使用
create_skill=true或skills_init - 测试和精炼 - 基于使用迭代
技能通过为未来代理保存学到的知识,使群组随时间变得更聪明。