多智能体百度面经高频多智能体容错机制架构设计速答 · 约 6 分钟更新 2026-09-28

子 Agent 崩溃或超时,主流程怎么兜底?

一句话结论

应对子 Agent 异常的核心是先自救再上报,通过超时预算与异常分类进行检测,按重试、降级、委派、上抛的梯度执行兜底,并利用沙箱隔离与幂等设计保障全局状态的一致性。

先这样答

处理子 Agent 崩溃或超时,整体遵循隔离、检测、梯度兜底和状态保持四个步骤。设计原则是让异常限制在局部环境,按先自救再上报的顺序处理,避免脏数据污染全局。

隔离与检测是前提。子 Agent 需运行在独立的进程或沙箱中,确保崩溃不波及主循环与兄弟 Agent。主流程通过心跳机制或进度上报监控状态,并设置全局超时熔断防止死锁。针对每步设定工具级或任务级的超时预算。捕获异常后,系统会区分可重试的瞬时错误与不可重试的逻辑错误,以决定后续策略。

兜底执行采用逐级递进策略。首先是带退避机制的限次重试;若重试耗尽,则降级使用更简单的工具或小模型路径;若当前路径走不通,将任务委派给另一子 Agent;当横向尝试均失败,再向上抛出异常,由主 Agent 重新规划;最后才是转人工并向用户输出失败说明。此过程必须保证状态一致性。子 Agent 的写入要求幂等或事务化,失败后回滚现场再重试,防止半成品状态污染环境。对于长任务,引入检查点机制让任务从断点续跑,避免全量重来。

兜底顺序体现先自救再上报的逻辑,同时保证失败路径在日志和追踪中可观测,便于事后归因。

面试官会怎么追问

  • 「如果是子 Agent 调用外部工具时卡住,怎么防止主 Agent 被拖死?」 主流程需设置全局超时熔断机制。下发任务时给子 Agent 分配明确的超时预算。一旦到达截止时间,主流程直接在沙箱层面强杀子 Agent,回收资源并触发上抛逻辑,防止无限等待。
  • 「重试时怎么保证执行了一半的操作不产生脏数据?」 依赖状态一致性设计。要求工具调用具备幂等性,或采用事务化处理。触发重试前,主流程先执行现场回滚,清理半成品状态。对于长任务,依赖检查点机制从上一个断点恢复。
  • 「异常分类中,怎么区分瞬时错误和逻辑错误?」 通过解析错误信息判断。网络抖动、接口限流导致的超时归为瞬时错误,适合退避重试。模型幻觉导致的参数格式错误、权限拒绝属于逻辑错误,重试无效,需直接降级或交主 Agent 重新规划。

回答的坑

遇到异常直接回答让主 Agent 重新规划,忽略局部重试和降级,会导致算力浪费与延迟增加,正确方向是遵循梯度兜底顺序。

只强调重试次数,不提环境隔离与状态清理,会导致脏数据累积,正确方向是把幂等回滚和沙箱隔离作为前置条件。

—— 本题完 ——