v1.5 多工具并发执行
将引擎的工具调用从串行改为并行:预分配结果切片 + sync.WaitGroup + 按索引无锁写入,模型一次请求多个工具时同时执行。
This commit is contained in:
+12
-7
@@ -27,16 +27,21 @@ func main() {
|
||||
registry.Register(tools.NewEditFileTool(workDir))
|
||||
|
||||
// 实例化引擎,开启 EnableThinking = true
|
||||
eng := engine.NewAgentEngine(llmProvider, registry, workDir, false)
|
||||
eng := engine.NewAgentEngine(llmProvider, registry, workDir, true)
|
||||
|
||||
// 发起一个需要局部修改的指令
|
||||
//prompt := `
|
||||
//我当前目录下有一个 server.go 文件。
|
||||
//请帮我把里面 "TODO: 增加鉴权逻辑" 下面的那个 if 语句,整个替换为:
|
||||
//if user == nil {
|
||||
// fmt.Println("Forbidden!")
|
||||
// return
|
||||
//}
|
||||
//`
|
||||
|
||||
prompt := `
|
||||
我当前目录下有一个 server.go 文件。
|
||||
请帮我把里面 "TODO: 增加鉴权逻辑" 下面的那个 if 语句,整个替换为:
|
||||
if user == nil {
|
||||
fmt.Println("Forbidden!")
|
||||
return
|
||||
}
|
||||
我当前目录下有 a.txt, b.txt, c.txt 三个文件。
|
||||
为了节省时间,请你同时一次性读取这三个文件,并将它们的内容综合起来,告诉我它们分别记录了什么领域的信息。
|
||||
`
|
||||
|
||||
err := eng.Run(context.Background(), prompt)
|
||||
|
||||
Reference in New Issue
Block a user