Files
LaodingBot/skills/skill_builder/skill.md

2.5 KiB
Raw Blame History

name, description
name description
创建skill 当用户请求新增能力或系统发现能力缺口时,自动创建并完善 skill必要时生成新 tool 代码并完成测试。

Skill: 创建skill

1. 触发条件

当出现以下任一情况时触发:

  • 用户明确要求“创建/新增一个 skill”。
  • 现有技能无法覆盖用户目标(无 skill 命中或执行失败)。
  • 高频 capability_gap 指向同一类能力缺口。

2. 目标

  1. 生成可执行的 skills/<skill_name>/skill.md
  2. 若需要新工具,生成 tools/<tool_name>/ 下 Go 代码(实现 Name/Description/Call 接口)。
  3. 生成或补充测试代码并执行 go test ./...
  4. 输出结果中说明新增内容、测试结果与后续建议。

3. 可用工具

  • file:创建目录与文件、写入 skill/tool/test 内容。
  • shell:执行测试、检索代码位置、检查文件结构。
  • web_search搜索技术方案、API 用法等参考信息。

4. 执行流程

  1. 澄清能力边界:提炼该 skill 要解决的问题与触发信号。
  2. 命名与路径规划
    • 技能路径:skills/<skill_name>/skill.md
    • 工具路径(如需):tools/<tool_name>/
  3. 创建 skill 文件写入完整字段用途、触发、工具、ReAct 指南、失败回退、输出规范)。
  4. 判断是否需要新 tool
    • 若现有 shell/file/web_search 足够,直接结束。
    • 若不够,进入工具生成。
  5. 生成 tool 代码(如需)
    • tools/<tool_name>/ 下创建 Go 文件。
    • 实现 Name()/Description()/Call() 接口(参考 laodingbot/internal/tools.Tool)。
    • internal/toolhost/runtime.go 中注册新工具。
    • 保持白名单与安全边界。
  6. 生成测试并执行
    • 补充 *_test.go
    • 执行 go test ./...
  7. 结果汇报:给出新增文件清单、测试结果、风险说明。

5. 质量约束

  • 不覆盖已有稳定 skill优先新增目录。
  • 避免引入高风险命令;遵循 ALLOWED_COMMANDSALLOWED_DIRS
  • 生成代码必须尽量小步、可测试、可回滚。
  • 无法可靠完成时,明确说明缺失信息并给出最短下一步。

6. 输出模板

  • 新增技能:skills/<skill_name>/skill.md
  • 新增工具(可选):tools/<tool_name>/...
  • 测试结果:go test ./... 的通过/失败摘要
  • 后续动作:是否需要热加载(/reload_skills)、是否需要补充环境变量