Files
go-tiny-claw/cmd/claw/main.go
T
zhuyongxin deb1b6e660 v1.5 Edit 工具 + 四级容错替换算法
- 新增 EditFileTool,支持局部字符串替换
- 四级容错降级:精确匹配 → 换行符归一 → Trim Space → 逐行滑动窗口
- 工具集扩展至 4 个(read/write/edit/bash)
- 新增 server.go 测试目标文件
2026-05-15 18:32:57 +08:00

47 lines
1.2 KiB
Go

package main
import (
"context"
"log"
"os"
"go-tiny-claw/internal/engine"
"go-tiny-claw/internal/provider"
"go-tiny-claw/internal/tools"
)
func main() {
workDir, _ := os.Getwd()
// 1. 初始化真实的 Provider大脑
// 这里你可以任意切换 NewZhipuClaudeProvider 或 NewZhipuOpenAIProvider,效果完全一致!
llmProvider := provider.DeepseekOpenAIProvider("deepseek-v4-flash")
registry := tools.NewRegistry()
// 挂载工具全家桶
registry.Register(tools.NewReadFileTool(workDir))
registry.Register(tools.NewWriteFileTool(workDir))
registry.Register(tools.NewBashTool(workDir))
registry.Register(tools.NewEditFileTool(workDir))
// 实例化引擎,开启 EnableThinking = true
eng := engine.NewAgentEngine(llmProvider, registry, workDir, false)
// 发起一个需要局部修改的指令
prompt := `
我当前目录下有一个 server.go 文件。
请帮我把里面 "TODO: 增加鉴权逻辑" 下面的那个 if 语句,整个替换为:
if user == nil {
fmt.Println("Forbidden!")
return
}
`
err := eng.Run(context.Background(), prompt)
if err != nil {
log.Fatalf("引擎运行崩溃: %v", err)
}
}