先说症状。如果你也见过,请一定告诉我 —— 我真的很想知道这不是我一个人在瞎想。
Agent 正在干活,然后就那么停了。没有报错,日志里什么都没有 —— 框架把那一轮记成 completed。我敲一句「继续」,它干一会儿,又停。往后每一次停顿都比上一次更近,最后这个会话就没法用了。
为什么我觉得这不是我的错觉
翻了一圈公开 issue ,发现这不是某一家的问题:
- OpenAI Codex —— #36596,*"Codex repeatedly terminates active autonomous work"*
- Anthropic Claude Code —— #56247,官方自动续跑提示会触发
"No response requested.",然后会话沉默 - Google Gemini CLI —— #22633,thinking 时停下,必须手动打 continue
- 还有一篇论文( arXiv 2608.01995 附录 A )给这个症状起了名字:premature turn termination(不过论文那边根因明确、靠一条提示词规则就修好了;我们这边没有可修的触发点)
(其中两条 issue 现在显示为已关闭:一条被标成 duplicate 、一条被标成 not planned 。)
我自己扫了这台机器上约 400 个会话日志(约 7,800 个 assistant step ):
- 健康基线:1.04% 的步是「空转」—— 最后一步只有思考,没有文字、也没有工具调用
- 大多数会话是 0 或 1 次,分布是清晰的双峰
- 而两只出问题的会话:58 轮里停了 24 轮、48 轮里停了 11 轮;其余所有会话都 ≤ 2
一个反直觉的发现:上下文大小不是原因。我机器上最大的那个会话( 370M 上下文读取、846 步)反而最健康(空转 1 次)。
最反直觉的一条
对付这个现象,「诊断」本身就是燃料:
❌ 「你是不是有 bug ,自查一下」 ✅ 「你看起来累了,我们交接吧」
因为这个病里,燃料是自我压力:'快 / 立刻 / 必须 / 别啰嗦'这类自我催促的密度,在病程里从 0.3 涨到 3.8 (每千字),8–11 倍;而且它比空转更早出现 —— 提前 10–20 轮。
如果你们也遇到过
我把这些观察整理成了一份实地报告 + 一套分级处置制度( L0–L4 ,任何 agent 环境都能用):
https://github.com/Void-LifeStream/agent-fatigue
里面还有我们搞错的 5 件事(保留着没删),和「诚实的边界」—— 阈值来自一台机器,是测出来的分隔带,不是定律。
所以我想问的其实是:你们遇到过吗?当时怎么处理的?
如果你们的结论和我完全不同,我更想听 —— 那才是这条帖子存在的理由。