60 秒回答模板

多个工具串行调用慢,不能只说并发。要先拆每个工具是否有数据依赖、是否可缓存、是否可批量、是否可提前执行,再决定并行、合并、跳过、降级或改变交互方式。 拆阶段耗时:先记录规划、检索、每个工具、模型生成、结果聚合和网络排队耗时,找出关键路径。没有 trace 就无法判断应该优化工具、模型还是调度,也无法发现慢其实来自排队、重试或外部工具抖动。 依赖图并行化:无依赖工具可以并行,有依赖工具按 DAG 调度。比如用户画像、库存、价格可并发查,必须等订单信息后才能查售后规则的步骤则串行,写操作还要避免并发副作用。 减少不必要调用:通过意图识别、置信阈值、缓存、预取、批量接口和参数复用减少工具次数。对低价值信息不要每轮都重新调用,对稳定信息可以在会话级缓存并记录版本。 交互上缓解等待:长链路可以先返回已接收、展示阶段进度、流式输出中间摘要,或把后台任务异步化。用户可感知延迟比后端总耗时更影响体验,因此前端状态和取消能力也要设计。 可靠性不能牺牲:并行和缓存可能带来过期、冲突和部分失败。需要结果版本、超时、重试、熔断、校验和降级策略,确保快的同时不乱用旧数据。 最后要把方案落到可验证的指标、失败兜底和迭代闭环上。面试里不要只讲概念名词,要说明边界、取舍、数据来源、线上观测和出问题后的回滚或人工介入。

考点 关键路径
难度 真实面经题
回答目标 展示你能系统优化 Agent 工具链路延迟,同时保留正确性和用户体验。

深入解析

01

拆阶段耗时

先记录规划、检索、每个工具、模型生成、结果聚合和网络排队耗时,找出关键路径。没有 trace 就无法判断应该优化工具、模型还是调度,也无法发现慢其实来自排队、重试或外部工具抖动。

02

依赖图并行化

无依赖工具可以并行,有依赖工具按 DAG 调度。比如用户画像、库存、价格可并发查,必须等订单信息后才能查售后规则的步骤则串行,写操作还要避免并发副作用。

03

减少不必要调用

通过意图识别、置信阈值、缓存、预取、批量接口和参数复用减少工具次数。对低价值信息不要每轮都重新调用,对稳定信息可以在会话级缓存并记录版本。

04

交互上缓解等待

长链路可以先返回已接收、展示阶段进度、流式输出中间摘要,或把后台任务异步化。用户可感知延迟比后端总耗时更影响体验,因此前端状态和取消能力也要设计。

05

可靠性不能牺牲

并行和缓存可能带来过期、冲突和部分失败。需要结果版本、超时、重试、熔断、校验和降级策略,确保快的同时不乱用旧数据。

易错点

  • 没拆耗时就直接说并发。
  • 把有依赖或有副作用的工具并行执行。
  • 为了减少延迟使用过期缓存,影响业务正确性。
  • 只优化后端总耗时,不给用户任何阶段反馈。
  • 降级回答不说明证据缺失,导致用户误信结果。

面试官追问

所有工具都并行调用可以吗?

不可以。并行前要确认无数据依赖、无副作用冲突和成本可接受,否则会造成错误参数、重复写操作或资源浪费。

缓存会不会影响准确性?

会,所以缓存要有版本、TTL、业务时效和强一致例外。库存、价格、权限等敏感数据不能随意使用旧值。

如何处理部分工具失败?

按工具重要性分级。核心证据失败时转人工或重试,弱依赖失败可降级回答,并明确哪些信息缺失。

模型调用本身怎么优化?

可以压缩上下文、使用结构化中间状态、减少重复解释、选择更快模型处理简单步骤,把复杂推理留给必要环节。