如果 Agent 陷入了死循环怎么办?
· 4 min read
Agent 死循环不是极端情况,是给模型自由度必须付的代价。
- 直接原因:工具调用失败后盲重试——不换参数,反复撞同一堵墙。
- 深层原因:循环缺少收敛信号,Thought 和 Action 之间没有"该停了"的显式判断。
- 第一层防御:max_steps 硬限制,两行代码兜住 80% 的翻车。
- 第二层防御:把 Finish 做成一个 Action,循环有了天然终止条件。
- 第三层防御:system prompt 里写死"重试失败就换策略",主动避障。
- 工程底线:step_id + 全局超时 + 连续重复 Action 检测,别信 Agent 能自己收敛。
- 三层防御一起上,单靠任何一层都有盲区。