How Fast Do Agents Rot? An Empirical Study of Long-Horizon Degradation in LLM Agents for Production Decision-Making
Shubhra Mittal
physics.soc-ph, cs.AI
2026-09-01
九模型、10664 条轨迹显示成功率服从几何律。真正的工具循环上,所有模型十六步内从接近满分掉到接近零;截断上下文让衰减更陡。
生产里跑 agent 编排的人经常撞上这件事:离线评测过关,一上线多步工作流就开始不可靠。Kwa 等人量过,模型能完成的任务时长大约随代际翻倍,但那些榜单几乎都停在短到中等的 horizon 上。Horizon 就是任务必须连续做对的依赖步数。
如果每一步独立成功的概率是 r,horizon 为 H 的任务成功率大约是 r 的 H 次方。短任务看起来接近满分,长任务按几何级数掉下去。这篇要验证这条曲线是不是真的,以及驱动衰减的到底是走了多少步,还是上下文变长了。
Shubhra Mittal(Microsoft AI 的 Principal Software Engineer,独立发表)做了一组可控实验:9 个指令微调模型,开源从 Llama-3.2-1B 拉到 DeepSeek-V3 的 671B,专有侧是 GPT-4o-mini、Gemini-2.5-Flash-Lite、Claude-3-Haiku;4 类任务,5 档 horizon,3 种上下文制度。streaming 和 agent 两族合计分析了 10664 条轨迹。温度固定,种子公开。成功与否全部由模拟器 oracle 判定,没有 LLM-as-judge 噪声。
四类任务都带工具循环:
前三类叫 streaming 家族,同一道题在三种上下文制度下配对跑。natural 每轮一条指令、保留完整多轮历史;compressed 操作和轮数不变,用携带状态加窗口历史把上下文截短;padded 把同一 horizon 的全部操作塞进单轮。这样就能把步数和上下文长度拆开。衰减形态在几何、阈值、线性三种里用 AIC 选。
36 个模型-任务格子里,28 个 AIC 选中几何律。剩下的是阈值或悬崖形:强模型在临界 horizon 之前接近满分,然后掉下去。没有任何非平凡任务上的逐步可靠度摸到 1,足够长的 horizon 上崩掉是数学必然。
衰减陡度跟着任务结构走。最强模型上 Refchain 最平,Ledger 中等,Cipher 最陡。这个排序在整份名单上足够稳定,任务结构几乎和模型能力一样决定曲线落点。
最重的结果在 ToolQA。horizon=2 时多数模型接近满分,题本身不难。horizon=16 时没有例外,全部掉到起点的一小截。
| 模型 | H=2 | H=4 | H=8 | H=16 |
| Llama-3.2-1B | 0.00 | 0.00 | 0.00 | 0.00 |
| Qwen2.5-7B | 1.00 | 0.07 | 0.13 | 0.33 |
| Llama-3.1-8B | 1.00 | 0.73 | 0.07 | 0.13 |
| GPT-4o-mini | 1.00 | 1.00 | 0.20 | 0.07 |
| Gemini-2.5-Flash-Lite | 0.20 | 0.53 | 0.00 | 0.00 |
| Claude-3-Haiku | 1.00 | 0.47 | 0.00 | 0.00 |
| Llama-3.3-70B | 1.00 | 0.93 | 0.67 | 0.00 |
| Qwen2.5-72B | 1.00 | 1.00 | 0.87 | 0.13 |
| DeepSeek-V3 | 1.00 | 1.00 | 0.67 | 0.27 |
Qwen2.5-72B 在 H=2 和 H=4 都是 1.00,只采样到这档的评测会放行;H=16 只剩 0.13。GPT-4o-mini 从 H=4 的 1.00 掉到 H=16 的 0.07。DeepSeek-V3 是这张表里 H=16 最高的,也只有 0.27。Claude-3-Haiku 和 Gemini-2.5-Flash-Lite 在 H=8 已经是 0。Llama-3.2-1B 从最短档就是 0。
开源梯子上逐步可靠度随参数量上升,对 log10(params) 的 Pearson r 是 +0.36,收益递减。专有模型和最强开源挤在一起,没有谁把 r 推到 1。
几何律假设每步失败率恒定。数据里 hazard(下一步失败的瞬时风险)在加速:长轨迹前三分之一的逐步准确率均值 0.58,后三分之一掉到 0.44。第一次出错大约落在轨迹三分之一处,出错之后几乎回不来。21% 的轨迹出现格式或 tool-call drift,输出解析不成合法动作,并且随 horizon 上升。错误表现得像吸收态,中间步骤单独看往往不像异常。
驱动因素是步数,不是上下文长度。natural 在每个 horizon 都最好。horizon 每翻倍的 logit 斜率:natural 为 -0.44,compressed 为 -0.69(相对 natural,p=3×10^-6),padded 为 -0.40(p=0.51,和 natural 分不开)。截断上下文让衰减更陡,跟 lost-in-the-middle(长输入中间的信息更容易被用不上)的预测相反。全部操作塞进单 prompt 的衰减速率几乎和 natural 一样,只是起点更低,多轮对话结构本身不是主因。
用测到的平均 r=0.61 往常见榜单的 horizon 上投影,GAIA 长度 8 步为 0.42,WebArena 15 步为 0.36,τ-bench 20 步为 0.33,SWE-bench 和 OSWorld 30 步为 0.30,生产百步为 0.24。
对跑 agent 编排的人,这条几何律把「榜单过了、线上不行」从玄学变成预算问题。该量的是自己任务上的逐步可靠度,可达成 horizon 由这个 r 决定,不是由 GAIA 或 SWE-bench 的总分决定。hazard 还会加速,预算要压在几何估计之下。
截断上下文是常见的省成本和延迟手段,这里会反噬。更有用的是步级校验:端到端成功率监控要等整条轨迹失败才报警。能插 oracle 或廉价一致性检查的地方,比等任务失败更早也更便宜。
对做评测的人,只报一个 pass rate 会采样在衰减曲线的平坦顶部。按 horizon 拆开报,才对生产有预测力。这是测量口径问题,谈不上方法创新。
任务是合成的,换来精确 oracle 和干净的 horizon 变量。ToolQA 用来挡「这根本不是 agent」的质疑,但对完全开放的真实工作流,生态效度这篇解决不了。
ToolQA 的 API 预算在最长 horizon 之前花完了,报告的 H=16 崩盘是严重程度的下界,不是上限。9 个模型跨 6 家厂商,不能证明所有现在和未来的模型都服从同一条几何形态。另有 3 个小模型因为走托管接口时不遵守结构化输出协议被剔除。解码温度固定在中等,对温度和其他解码参数的敏感性没测。
专有侧全是 mini / Flash-Lite / Haiku 这一档,没有 GPT-4o、Claude Sonnet 或 Gemini 旗舰。把「广泛部署的系统」读成前线模型,证据撑不住。
Qwen2.5-7B 在 ToolQA 上从 H=4 的 0.07 回到 H=16 的 0.33,Gemini-2.5-Flash-Lite 从 H=2 的 0.20 升到 H=4 的 0.53 再归零,和单调衰减不完全贴合。论文用 Wilson 区间是因为若干格子贴着 0 或 1,但 Table 2 没写每格试验次数,单点抖动可能被读成规律。