v1.4 工具集扩展 + Windows 编码攻坚

- 新增 BashTool(bash 命令执行,30s 超时 + 自愈 + 截断)
- 新增 WriteFileTool(文件写入)
- Windows GBK 编码自动转 UTF-8(golang.org/x/text)
- OpenAIProvider 新增 API 交互日志
- dumpMessages 移除截断,完整展示上下文
- cmd/claw 三段式任务演示
This commit is contained in:
zhuyongxin
2026-05-15 17:11:43 +08:00
parent b94460083a
commit cefabd68dc
8 changed files with 497 additions and 274 deletions
+12 -10
View File
@@ -18,21 +18,23 @@ func main() {
// 这里你可以任意切换 NewZhipuClaudeProvider 或 NewZhipuOpenAIProvider,效果完全一致!
llmProvider := provider.DeepseekOpenAIProvider("deepseek-v4-flash")
// 3. 初始化真实的 Tool Registry
registry := tools.NewRegistry()
// 4. 将真实的 ReadFile 工具挂载到注册表中
readFileTool := tools.NewReadFileTool(workDir)
registry.Register(readFileTool)
// 挂载极简工具集
registry.Register(tools.NewReadFileTool(workDir))
registry.Register(tools.NewWriteFileTool(workDir))
registry.Register(tools.NewBashTool(workDir))
// 5. 实例化核心引擎,由于任务简单,我们关闭思考阶段 (EnableThinking = false) 以加快速度
// 实例化核心引擎,关闭慢思考阶段,享受 YOLO 急速模式
eng := engine.NewAgentEngine(llmProvider, registry, workDir, false)
log.Printf("registry: %s\n", registry)
log.Printf("engine: %s\n", eng)
// 6. 下发一个必须通过真实工具才能完成的任务
prompt := "请调用工具读取一下当前工作区目录下 hello.txt 文件的内容,并用一句话向我总结它说了什么。"
// 发起一个需要连贯物理动作的任务
prompt := `
请帮我执行以下操作:
1. 用 bash 查看一下我当前电脑的 Go 版本,我的电脑是windows系统。
2. 帮我写一个简单的 helloworld.go 文件,输出 "Hello, go-tiny-claw!"。
3. 用 bash 编译并运行这个 go 文件,确认它能正常工作。
`
err := eng.Run(context.Background(), prompt)
if err != nil {