Skip to content

Agent 为什么会死循环,如何设计终止条件?

3 分钟速学卡

30 秒口述: Agent 死循环通常来自完成条件模糊、工具持续失败、Observation 没有带来新信息、状态未正确更新,或模型反复选择等价动作。终止不能只靠最大步数,我会同时设计业务完成条件、失败不可恢复条件、步数/Token/时间/成本预算、重复动作指纹、无进展检测和人工接管。每次停止都记录终止原因与最后有效状态,使系统能够澄清、降级或恢复,而不是静默截断。

  • 本质: Agent 终止是业务完成、失败、预算、重复、无进展和人工接管共同组成的控制面。
  • 核心机制: 完成必须有可验证证据;重复与无进展需要独立检测。
  • 关键判断: 预算至少覆盖步数、时间、Token 和成本;终止原因与状态必须可恢复、可审计。
  • 项目落地: 故障演练:Agent 连续用不同措辞搜索同一不存在的订单。两轮无新证据后触发澄清,并保存失败原因与搜索范围。
  • 边界与坑: “设置 max_steps 就行。” 只能止损,无法判断业务完成和无进展;“让模型自己输出 done。” 仍需程序校验完成证据。

目录

面试官为什么问

考察受控循环、成本治理、异常恢复和业务可解释性。

小白先看懂

导航让司机绕同一个街区,原因可能是目标地址模糊、道路一直封闭或定位没更新。除了限制最多绕三圈,还应识别“路线和位置没有变化”,询问新地址或转人工。

映射:目标地址是完成条件,封路是工具失败,位置是状态,重复路线是动作指纹。类比忽略了语义相同但文本不同的动作检测。

主题教学图片

图:教学图片|Agent 为什么会死循环,如何设计终止条件?

替代文本: 围绕“Agent 为什么会死循环,如何设计终止条件?”组织的中文教学图,通过分区、箭头和标签解释核心机制。

Agent 为什么会死循环,如何设计终止条件?教学图片

读图结论: 终止是多条件状态机,不只是最大步数。

这张图片用于建立主题机制的直觉。精确公式、参数、失败分支和事实边界仍以正文与 Mermaid 为准。

图片生成记录: model=gpt-image-2generated=2026-07-15prompt_version=v1reviewed=2026-07-16review_basis=user-confirmed查看生成 Prompt

图:状态图|Agent 循环的六类出口

替代文本: Agent 决策和工具观察循环中,完成、不可恢复错误、预算耗尽、重复动作、无进展和人工接管都可成为明确出口。

图表加载中…

读图结论: 可靠终止是多条件状态机,不是一个粗暴的最大循环次数。

终止节点要区分成功、失败、预算与接管,调用方才能采取不同后续动作。

核心原理

重复指纹可由工具名、规范化参数、关键结果摘要组成;无进展可用任务状态版本、已解决子目标或证据增量判断。自然语言差异不能掩盖语义重复。

项目和生产视角

故障演练: Agent 连续用不同措辞搜索同一不存在的订单。两轮无新证据后触发澄清,并保存失败原因与搜索范围;长期加入业务存在性检查和失败样本回归。

常见错误回答

  • “设置 max_steps 就行。” 只能止损,无法判断业务完成和无进展。
  • “让模型自己输出 done。” 仍需程序校验完成证据。
  • “超时全部重试。” 不可恢复错误和副作用未知状态不能盲重试。

递进追问

  1. 如何定义无进展?
  2. 语义重复动作怎样检测?
  3. 哪些终止应返回澄清,哪些应转人工?
  4. 如何给子 Agent 分配预算?

关联阅读

总结

一句话记忆: Agent 终止是业务完成、失败、预算、重复、无进展和人工接管共同组成的控制面。

  • 完成必须有可验证证据;
  • 重复与无进展需要独立检测;
  • 预算至少覆盖步数、时间、Token 和成本;
  • 终止原因与状态必须可恢复、可审计。