shell: support Windows cmd /C; normalize date/time; allow all commands; add tests
This commit is contained in:
@@ -13,27 +13,29 @@ description: 当用户请求新增能力或系统发现能力缺口时,自动
|
||||
|
||||
## 2. 目标
|
||||
1. 生成可执行的 `skills/<skill_name>/skill.md`。
|
||||
2. 若需要新工具,生成 `internal/tools/<tool_name>/` 下 Go 代码。
|
||||
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`
|
||||
- 工具路径(如需):`internal/tools/<tool_name>/...`
|
||||
- 工具路径(如需):`tools/<tool_name>/`
|
||||
3. **创建 skill 文件**:写入完整字段(用途、触发、工具、ReAct 指南、失败回退、输出规范)。
|
||||
4. **判断是否需要新 tool**:
|
||||
- 若现有 `shell/file` 足够,直接结束。
|
||||
- 若现有 `shell/file/web_search` 足够,直接结束。
|
||||
- 若不够,进入工具生成。
|
||||
5. **生成 tool 代码(如需)**:
|
||||
- 实现 `Name/Description/Call`。
|
||||
- 在 `tools/<tool_name>/` 下创建 Go 文件。
|
||||
- 实现 `Name()/Description()/Call()` 接口(参考 `laodingbot/internal/tools.Tool`)。
|
||||
- 在 `internal/toolhost/runtime.go` 中注册新工具。
|
||||
- 保持白名单与安全边界。
|
||||
- 在主注册逻辑或 toolhost 注册逻辑中接入。
|
||||
6. **生成测试并执行**:
|
||||
- 补充 `*_test.go`。
|
||||
- 执行 `go test ./...`。
|
||||
@@ -47,6 +49,6 @@ description: 当用户请求新增能力或系统发现能力缺口时,自动
|
||||
|
||||
## 6. 输出模板
|
||||
- 新增技能:`skills/<skill_name>/skill.md`
|
||||
- 新增工具(可选):`internal/tools/<tool_name>/...`
|
||||
- 新增工具(可选):`tools/<tool_name>/...`
|
||||
- 测试结果:`go test ./...` 的通过/失败摘要
|
||||
- 后续动作:是否需要热加载、是否需要补充环境变量
|
||||
- 后续动作:是否需要热加载(`/reload_skills`)、是否需要补充环境变量
|
||||
|
||||
Reference in New Issue
Block a user