从 0 开始构建 Agent Harness
Tony Bai
资深架构师
3948 人已学习
新⼈⾸单¥59
从 0 开始构建 Agent Harness
15
15
1.0x
00:00/00:00
登录|注册

08|并发提效:如何让 Agent 在单轮中并行调用多个互相独立的工具?

你好,我是 Tony Bai。欢迎来到《从 0 开始构建 Agent Harness》专栏的第八讲。
上一讲,我们直面了大模型在代码替换时的缩进幻觉,并为其量身定制了一把容错能力极强的手术刀——多级模糊匹配的 edit_file 工具。加上我们之前实现的 readwritebash,我们的 go-tiny-claw 在单线执行任务上,已经具备了极高的稳健性。
但是,在真实的工业级开发场景中,效率同样是极其重要的指标
试想这样一个场景:你对 Agent 说:“请帮我分析一下 handler.gomodel.gorouter.goconfig.yaml 这四个文件,找出它们在鉴权逻辑上的关联。”
由于我们底层接驳的前沿大模型(如 Claude 4.x Sonnet 和 GLM-5.x)都原生支持 Parallel Tool Calling(并行工具调用) 功能,模型在经过思考后,非常聪明地在一次 API 返回中,同时吐出了 4 个 read_file 的调用请求。
然而,如果你回头看看我们在 02 讲中手写的 Main Loop 核心代码:
for _, toolCall := range actionResp.ToolCalls {
result := e.registry.Execute(ctx, toolCall) // 串行执行,阻塞等待
// ...追加到 Context...
}
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 开始构建 Agent Harness》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(1)

  • 最新
  • 精选
  • Lee
    由 Harness 引擎(而非模型本身)在分发 ToolCall 批次时,检查本批次是否全部为只读工具调用。若是,则启用并发 Goroutine;若批次中存在任何写操作,则退化为顺序执行。 如果有写和读操作,顺序执行也无法解决TOCTOU(Time of Check to Time of Use)问题吧。例如先执行读再执行写。
    2026-05-08归属地:河北
收起评论
显示
设置
留言
1
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部