2.2 KiB
2.2 KiB
name, description
| name | description |
|---|---|
| 创建skill | 当用户请求新增能力或系统发现能力缺口时,自动创建并完善 skill,必要时生成新 tool 代码并完成测试。 |
Skill: 创建skill
1. 触发条件
当出现以下任一情况时触发:
- 用户明确要求“创建/新增一个 skill”。
- 现有技能无法覆盖用户目标(无 skill 命中或执行失败)。
- 高频 capability_gap 指向同一类能力缺口。
2. 目标
- 生成可执行的
skills/<skill_name>/skill.md。 - 若需要新工具,生成
internal/tools/<tool_name>/下 Go 代码。 - 生成或补充测试代码并执行
go test ./...。 - 输出结果中说明新增内容、测试结果与后续建议。
3. 可用工具
file:创建目录与文件、写入 skill/tool/test 内容。shell:执行测试、检索代码位置、检查文件结构。
4. 执行流程
- 澄清能力边界:提炼该 skill 要解决的问题与触发信号。
- 命名与路径规划:
- 技能路径:
skills/<skill_name>/skill.md - 工具路径(如需):
internal/tools/<tool_name>/...
- 技能路径:
- 创建 skill 文件:写入完整字段(用途、触发、工具、ReAct 指南、失败回退、输出规范)。
- 判断是否需要新 tool:
- 若现有
shell/file足够,直接结束。 - 若不够,进入工具生成。
- 若现有
- 生成 tool 代码(如需):
- 实现
Name/Description/Call。 - 保持白名单与安全边界。
- 在主注册逻辑或 toolhost 注册逻辑中接入。
- 实现
- 生成测试并执行:
- 补充
*_test.go。 - 执行
go test ./...。
- 补充
- 结果汇报:给出新增文件清单、测试结果、风险说明。
5. 质量约束
- 不覆盖已有稳定 skill,优先新增目录。
- 避免引入高风险命令;遵循
ALLOWED_COMMANDS与ALLOWED_DIRS。 - 生成代码必须尽量小步、可测试、可回滚。
- 无法可靠完成时,明确说明缺失信息并给出最短下一步。
6. 输出模板
- 新增技能:
skills/<skill_name>/skill.md - 新增工具(可选):
internal/tools/<tool_name>/... - 测试结果:
go test ./...的通过/失败摘要 - 后续动作:是否需要热加载、是否需要补充环境变量