外观
Agent 为什么会死循环,如何设计终止条件?
3 分钟速学卡
30 秒口述: Agent 死循环通常来自完成条件模糊、工具持续失败、Observation 没有带来新信息、状态未正确更新,或模型反复选择等价动作。终止不能只靠最大步数,我会同时设计业务完成条件、失败不可恢复条件、步数/Token/时间/成本预算、重复动作指纹、无进展检测和人工接管。每次停止都记录终止原因与最后有效状态,使系统能够澄清、降级或恢复,而不是静默截断。
- 本质: Agent 终止是业务完成、失败、预算、重复、无进展和人工接管共同组成的控制面。
- 核心机制: 完成必须有可验证证据;重复与无进展需要独立检测。
- 关键判断: 预算至少覆盖步数、时间、Token 和成本;终止原因与状态必须可恢复、可审计。
- 项目落地: 故障演练:Agent 连续用不同措辞搜索同一不存在的订单。两轮无新证据后触发澄清,并保存失败原因与搜索范围。
- 边界与坑: “设置 max_steps 就行。” 只能止损,无法判断业务完成和无进展;“让模型自己输出 done。” 仍需程序校验完成证据。
目录
面试官为什么问
考察受控循环、成本治理、异常恢复和业务可解释性。
小白先看懂
导航让司机绕同一个街区,原因可能是目标地址模糊、道路一直封闭或定位没更新。除了限制最多绕三圈,还应识别“路线和位置没有变化”,询问新地址或转人工。
映射:目标地址是完成条件,封路是工具失败,位置是状态,重复路线是动作指纹。类比忽略了语义相同但文本不同的动作检测。
主题教学图片
图:教学图片|Agent 为什么会死循环,如何设计终止条件?
替代文本: 围绕“Agent 为什么会死循环,如何设计终止条件?”组织的中文教学图,通过分区、箭头和标签解释核心机制。

读图结论: 终止是多条件状态机,不只是最大步数。
这张图片用于建立主题机制的直觉。精确公式、参数、失败分支和事实边界仍以正文与 Mermaid 为准。
图片生成记录: model=gpt-image-2,generated=2026-07-15,prompt_version=v1,reviewed=2026-07-16,review_basis=user-confirmed;查看生成 Prompt。
图:状态图|Agent 循环的六类出口
替代文本: Agent 决策和工具观察循环中,完成、不可恢复错误、预算耗尽、重复动作、无进展和人工接管都可成为明确出口。
图表加载中…
读图结论: 可靠终止是多条件状态机,不是一个粗暴的最大循环次数。
终止节点要区分成功、失败、预算与接管,调用方才能采取不同后续动作。
核心原理
重复指纹可由工具名、规范化参数、关键结果摘要组成;无进展可用任务状态版本、已解决子目标或证据增量判断。自然语言差异不能掩盖语义重复。
项目和生产视角
故障演练: Agent 连续用不同措辞搜索同一不存在的订单。两轮无新证据后触发澄清,并保存失败原因与搜索范围;长期加入业务存在性检查和失败样本回归。
常见错误回答
- “设置 max_steps 就行。” 只能止损,无法判断业务完成和无进展。
- “让模型自己输出 done。” 仍需程序校验完成证据。
- “超时全部重试。” 不可恢复错误和副作用未知状态不能盲重试。
递进追问
- 如何定义无进展?
- 语义重复动作怎样检测?
- 哪些终止应返回澄清,哪些应转人工?
- 如何给子 Agent 分配预算?
关联阅读
总结
一句话记忆: Agent 终止是业务完成、失败、预算、重复、无进展和人工接管共同组成的控制面。
- 完成必须有可验证证据;
- 重复与无进展需要独立检测;
- 预算至少覆盖步数、时间、Token 和成本;
- 终止原因与状态必须可恢复、可审计。