52 lines
1.4 KiB
Go
52 lines
1.4 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, true)
|
|
|
|
// 发起一个需要局部修改的指令
|
|
//prompt := `
|
|
//我当前目录下有一个 server.go 文件。
|
|
//请帮我把里面 "TODO: 增加鉴权逻辑" 下面的那个 if 语句,整个替换为:
|
|
//if user == nil {
|
|
// fmt.Println("Forbidden!")
|
|
// return
|
|
//}
|
|
//`
|
|
|
|
prompt := `
|
|
我当前目录下有 a.txt, b.txt, c.txt 三个文件。
|
|
为了节省时间,请你同时一次性读取这三个文件,并将它们的内容综合起来,告诉我它们分别记录了什么领域的信息。
|
|
`
|
|
|
|
err := eng.Run(context.Background(), prompt)
|
|
if err != nil {
|
|
log.Fatalf("引擎运行崩溃: %v", err)
|
|
}
|
|
}
|