v1.5 Edit 工具 + 四级容错替换算法

- 新增 EditFileTool,支持局部字符串替换
- 四级容错降级:精确匹配 → 换行符归一 → Trim Space → 逐行滑动窗口
- 工具集扩展至 4 个(read/write/edit/bash)
- 新增 server.go 测试目标文件
This commit is contained in:
zhuyongxin
2026-05-15 18:32:57 +08:00
parent cefabd68dc
commit deb1b6e660
4 changed files with 219 additions and 7 deletions
+10 -7
View File
@@ -20,20 +20,23 @@ func main() {
registry := tools.NewRegistry()
// 挂载极简工具集
// 挂载工具全家桶
registry.Register(tools.NewReadFileTool(workDir))
registry.Register(tools.NewWriteFileTool(workDir))
registry.Register(tools.NewBashTool(workDir))
registry.Register(tools.NewEditFileTool(workDir))
// 实例化核心引擎,关闭慢思考阶段,享受 YOLO 急速模式
// 实例化引擎,开启 EnableThinking = true
eng := engine.NewAgentEngine(llmProvider, registry, workDir, false)
// 发起一个需要连贯物理动作的任务
// 发起一个需要局部修改的指令
prompt := `
请帮我执行以下操作:
1. 用 bash 查看一下我当前电脑的 Go 版本,我的电脑是windows系统。
2. 帮我写一个简单的 helloworld.go 文件,输出 "Hello, go-tiny-claw!"。
3. 用 bash 编译并运行这个 go 文件,确认它能正常工作。
我当前目录下有一个 server.go 文件。
请帮我把里面 "TODO: 增加鉴权逻辑" 下面的那个 if 语句,整个替换为:
if user == nil {
fmt.Println("Forbidden!")
return
}
`
err := eng.Run(context.Background(), prompt)