Skip to content

19. 如何实现工具的并行调用?什么时候该串行? ​

难度 P0 必背 · 岗位 应用 · 频率 ★★★ · 预计阅读 5 min

本题阅读地图 ​

  1. 💡 简要回答
  2. 📝 详细解析
  3. 🎯 面试总结

👔面试官:如何实现工具的并行调用?什么时候该串行?

🙋‍♂️我:并行就是同时调多个,串行是一个调完再调下一个。

👔面试官:对,但关键是判断依据:工具之间有没有依赖关系?结果是否相互独立?并行能省时间,但串行更可控。你能讲清楚决策逻辑吗?

🙋‍♂️我:独立的就并行,有依赖的就串行?

👔面试官:对,但还有:并行的并发数控制、超时处理、部分失败怎么办。而且有些场景可以"准并行":先调一个,拿到部分结果后调其他的。

TL;DR 速记 ​

  • 是什么:工具调用是否并行,核心看工具之间有没有数据依赖,以及结果能否独立汇总。
  • 决策法:独立任务并行,有前后依赖串行,先拿关键输入再并行分支就是准并行。
  • 怎么答:「并行不是简单 gather,还要治理并发数、超时、取消、部分失败和结果汇总;否则省下的延迟会变成下游压力和不稳定。」

图解 ​

图 1:并行、串行、准并行的判断 ​

相关题

本题是 工具调用 里「多个 tool_calls」的工程化展开;错误、超时和重试治理可继续看 错误与重试。

💡 简要回答 ​

并行 vs 串行决策:

场景方式示例
工具独立,无依赖并行同时查天气、查汇率、查新闻
有依赖关系串行先查订单,再查物流(需要订单号)
部分独立准并行先查用户画像,再并行查推荐商品和优惠券

并行治理:

  • 并发数限制(避免压垮下游)
  • 超时控制(最快返回 vs 等全部)
  • 部分失败处理(全部失败 vs 部分成功)

📝 详细解析 ​

并行调用 ​

适用场景:

  • 查询天气、汇率、股票(相互独立)
  • 多源搜索(百度 + Google + 知乎)
  • 并行验证(同时查数据库和缓存)

实现方式:

python
import asyncio

results = await asyncio.gather(
    tool1.call(),
    tool2.call(),
    tool3.call()
)

治理要点:

  • 并发数限制:最多同时调 N 个
  • 超时策略:等最快返回 / 等全部返回 / 超时取消
  • 部分失败:一个失败全部失败?还是返回部分结果?

串行调用 ​

适用场景:

  • 有依赖关系:先查订单状态,再决定是退款还是发货
  • 需要前序结果:先搜索,再对搜索结果做深度分析

实现方式:

python
result1 = await tool1.call()
result2 = await tool2.call(param=result1.id)

准并行(混合模式) ​

先串行获取关键信息,再并行调多个独立工具。

示例:

  1. 串行:查询用户画像(拿到用户标签)
  2. 并行:根据标签同时查询推荐商品、匹配优惠券、查历史订单

常见踩坑与反例 ​

踩坑 1:看到多个工具就无脑并行 ​

错误描述:「要查订单和物流,那就两个工具一起调」。

正确做法:先判断依赖。物流查询需要订单号,就必须先查订单,再拿订单号查物流。

踩坑 2:只写并行代码,不控并发 ​

错误描述:一次性把 100 个工具调用全丢给下游 API。

正确做法:用信号量、连接池、队列限制并发,结合下游限流规则设置批量大小和退避策略。

踩坑 3:没有部分失败策略 ​

错误描述:三个独立工具里一个超时,整个 Agent 直接失败。

正确做法:区分必需结果和可选结果。可选工具失败时返回 partial result,并把缺失信息明确告知 LLM 或用户。

踩坑 4:准并行场景被写成纯串行 ​

错误描述:先查用户画像,再一个个查推荐商品、优惠券、历史订单。

正确做法:关键依赖先串行拿到,后续互不依赖的分支并行执行,兼顾正确性和延迟。

面试官可能继续追问 ​

  • 追问 1:判断并行还是串行的核心标准是什么? 答题要点:看数据依赖、执行副作用和结果汇总方式。无依赖且无冲突可并行;后一步需要前一步结果就串行;部分依赖用准并行。

  • 追问 2:并行调用的超时策略怎么设计? 答题要点:按场景选择等全部、等最快、超时取消或返回部分结果;要给每个工具设置单独 timeout,也要有整体 deadline。

  • 追问 3:一个并行工具失败怎么办? 答题要点:先判断是否关键依赖。关键结果失败就重试 / 降级 / 失败退出;非关键结果可标记缺失,让 LLM 基于部分结果生成保守答案。

  • 追问 4:怎么避免并行调用压垮下游? 答题要点:并发限流、批量大小控制、指数退避、熔断和隔离仓;不同工具按下游 SLA 配不同并发上限。

🎯 面试总结 ​

决策逻辑:独立并行,依赖串行,混合用准并行。并行要治理:并发数、超时、部分失败。


章节首页 · ← Q18 · Q20 →

最后更新2026-05-01
难度P0
频率medium
阅读5 min
主题llm
觉得有帮助?把这个链接转给正在求职的朋友 · 用 Ctrl + K 全站搜索其它题