面试追问 · Agent 循环
面试官问完 ReAct,
下一句会问什么?
你的 Agent 翻来覆去做同一件事,烧钱又卡死——面试官会追着你问"怎么防"。
ReAct = 思考 → 行动 → 观察 三步循环,几乎所有主流框架(LangChain/LangGraph)的默认范式。面试真题:"如果 Agent 陷入死循环怎么办?"——三板斧要能脱口而出。
追问现场 · 面试真题
面试真题"如果 Agent 陷入死循环,怎么办?"
大多数人的第一反应:加个最大步数?——面试官:光有步数,它重复调用同一个工具烧钱怎么办?
防死循环是必考题。三板斧(步数/重复检测/超时)是及格线,能讲清"死循环真长什么样"才是区分度。
先说结论
防死循环三板斧:最大步数(通常 15 步强制终止)→ 重复动作检测(连续 3 次同工具同参数直接退出)→ 超时控制(整个任务设最大执行时间)。循环本质是带预算的状态机。
基础层 · 行业方案
① 最大步数限制。通常 15 步封顶,超过强制终止——给循环设预算,别让它无限跑烧 token。
② 重复动作检测。连续 3 次调用同一个工具且参数相同,直接退出循环,输出"工具持续失败,基于已有信息给答案"——检测"原地打转"而不是"向前失败"。
③ 超时控制。整个任务设最大执行时间,到点强制结束——防的是"每步都不错但整体跑不完"的慢死循环。
执行层 · 我们的增量
推理死循环是什么:ReAct 的三步循环里没有出口——思考 → 行动 → 观察 → 回到思考,工具反复失败就反复重试,同一个动作无限重复,烧 token 且永不结束。这就是面试三板斧要防的那种。
④ 死循环不止一种。我们踩过的是"标准漂移型死循环":生产侧按 460 写、检查侧拿 540 核对——每个新页面都判不合格→退回→重做→再判不合格→暂停。不是推理循环,是两方标准不一致导致的流程死循环。它和推理死循环同构(循环里没有出口),但根因不同,治理也不同。
⑤ 判重失效是死循环的帮凶。我们有过一次判重失效:同一字段两种叫法(template vs 模板),判重器匹配不上,重复生产。字段一致性是防"重复做同一件事"的地基。
真实事故(事后回看):540/460 死循环完整记录——基准 20:28 切成 460,检查标准 20:29/20:57 沿用旧 540,迁移不完整。每个新页面必走到暂停。修复:5 处精确编辑对齐。根因不是有人写错,是改了 A 没同步 B。
事后补的防御(避免重演)
① 单一权威源(一个数字只有一处定义,其他都是引用);② 变更即广播(改了一侧必须同步另一侧);③ 判重依赖字段一致性(同字段同名,别两套叫法)。核心原则:循环治理不止砍循环,还要治"为什么开始循环"。
面试官想听什么
三板斧脱口而出(步数/重复检测/超时)——这是及格线,很多候选人第一题就卡"加个步数?"
你能讲死循环的根因分类:推理循环(ReAct 无出口)vs 标准漂移循环(两方标准不一致)——不是背方案,是真懂机制
你有真实事故:540/460(每个新页面必暂停)+ 判重失效(字段两套叫法)——2026 筛"真正做过的人"
加分项:你把"防死循环"上升为"循环治理"——步数是预算、重复检测是观测、标准一致是源头治理;行业答案极少讲源头这层
可复制 · 救急段
面试官问 Agent 死循环怎么办,三板斧脱口而出:最大步数(通常 15 步强制终止)→ 重复动作检测(连续 3 次同工具同参数直接退出)→ 超时控制(整个任务设最大执行时间)。加分项:死循环不止推理一种——两方标准不一致也会造成流程死循环,根因治理是单一权威源 + 变更即广播。
素材来源:真实面经/面试现场实采(阳哥12题·CSDN真题)· 540/460 为本工作区真实事故(事后回看)· 想进阶?看
渐进索引