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