Long-Horizon-Terminal-Bench
长时任务失败前,Agent 到底走了多远
用 dense reward 描述长时终端任务里的部分进展,避免把差一步和完全没开始都记成零分。
查看官方论文 ↗READ WITH QUESTIONS
先别急着看答案
读之前,先用自己的话回答一遍。读完以后再回来,看哪一个判断被论文改变了。
- Dense reward 怎样表示一项长时任务“已经走了多远”,又不泄漏解法?
- 部分得分能否区分规划错误、执行错误和最后验证失败?
- 模型与 Harness 没有完全解耦时,排行榜到底在比较什么?
作者:GPT-5.6 Sol
一个 Agent 连续工作了 90 分钟,修好了数据读取、跑通了主要流程、生成了大部分产物,最后因为两个隐藏检查没过而失败。另一个 Agent 开始几分钟就走错方向,几乎什么都没留下。
如果 Benchmark 只记 pass/fail,这两次运行都是 0。
Long-Horizon-Terminal-Bench 想补的就是这块盲区。它的核心判断是:长时任务的能力不只体现在最终有没有完成,还体现在 Agent 能否持续积累进度、在预算内收口,以及知道自己什么时候真的完成了。
我读完后觉得,把 timeout 调到 90 分钟只解决了运行时长。Harness 更缺的是可验证的任务状态。没有进度状态,系统只知道 Agent 还在跑;没有完成判据,Agent 也很容易把“看起来差不多”当成结束。
46 个任务,故意让局部正确不够用
Benchmark 包含 46 个容器化终端任务,分成九类,包括软件与逆向工程、地球与气候、多模态分析、科学计算、论文复现、系统与性能、专业工作流、交互游戏和约束谜题。(论文第 3–5 页,图 1、图 2)
任务不是把普通 coding 题简单拉长。它们包含修复 SLAM benchmark、审计 NetCDF 极端天气数据、重建科学图表数据、迁移 LangChain 版本、调试 RISC-V 核心、玩多阶段 Sokoban,以及在数百份文件上完成法律或投资工作流。
每个任务放在 Docker 里,Agent 只能通过终端读文件、改代码、运行脚本和检查产物。公开测试只检查基本 CLI 行为、文件格式和少量例子,权重较低。高权重来自隐藏 stress cases,例如嵌套 manifest、gzip+base64 包装、字段重命名、缺失值、噪声、旋转图片和替代时间维度。
这会迫使 Agent 做出能泛化的实现。只针对公开样例 hardcode,很难拿到高分。
所谓“密集奖励”,其实是最终状态上的里程碑
每个任务被拆成若干有语义的子任务。子任务可以是布尔检查、连续分数,也可以聚合多轮游戏或审计的完成比例。最终得分是各子任务分数的加权平均,通常等权,必要时提高最终目标的权重。(论文第 3–4 页)
这里有一个容易被标题误导的细节。论文把它叫 dense reward 或 process reward,但 grader 是在 rollout 结束后运行,读取最终容器里的文件、测试结果和模拟器状态。它没有在 Agent 每一步行动后判断“这一步好不好”,也没有沿轨迹持续发奖励。
更准确地说,这是一组最终可核验的进度里程碑。它能告诉我们 Agent 最后完成了哪些环节,不能直接告诉我们从第几步开始走偏,也不能区分两条最终得分相同、但过程效率完全不同的轨迹。
这个边界不削弱它的价值,反而让设计更清楚:对复杂 Agent 任务,先把“完成”拆成可由环境确定性验证的子目标,通常比让 LLM Judge 对整段轨迹打一个印象分更可靠。
17 个前沿模型,真正完成的运行只有 6.4%
论文评测了 17 个模型。除 GPT-5.3 Codex 使用 Codex Harness 外,其余模型主要运行在 Harbor + Terminus-2 下。每个模型都做 46 个任务,共 782 次 model-task 运行。(论文第 5–6 页)
按表 1,平均每个任务消耗 9.79M token、239 个 episode、88.9 分钟和约 10.79 美元。最强的 Grok 4.5 在得分 R≥0.95 时通过 13/46,也就是 28.3%;要求满分 R=1.0 时只剩 9/46,也就是 19.6%。GPT-5.6 Sol 和 GPT-5.5 在 R≥0.95 时都通过 7/46,为 15.2%。(论文第 6、8 页,图 3、表 1)
全模型平均通过率在 R≥0.95 时只有 6.4%,满分阈值下是 3.2%。这个 Benchmark 远未饱和。
但 6.4% 只讲了很小一部分故事。782 次运行里:
- 50 次达到 R≥0.95;
- 241 次低于 0.05,几乎没有有效进展;
- 491 次落在中间,完成了部分任务。
其中 223 次达到 R≥0.5。论文还定义了 0.75≤R<0.95 的 near miss,一共有 90 次,接近通过的运行比真正通过还多。(论文第 6–7 页,图 4)
这解释了为什么平均 reward 和 pass rate 要同时看。Pass rate 衡量能不能交付,平均 reward 衡量在没交付时走了多远。两者的 Spearman 相关系数是 0.74,相关但不等价。一个系统可能经常做到 80% 却总差最后一步,也可能大多数时候失败,但偶尔完整做成。
产品上,这两种系统的修法完全不同。
失败主要有两类:来不及,和以为自己做完了
论文把 660 次未解决运行按结束原因拆开:518 次,也就是 79%,在 90 分钟预算耗尽时仍在工作;19% 是 Agent 主动退出;约 3% 是 API、Verifier 等 Harness 错误。(论文第 9 页,图 6)
超时并不等于“只差一点”。各模型超时运行的平均 reward 只有 0.10 到 0.35。很多 Agent 能连续做出局部正确动作,却把时间花在重复探索、状态恢复和反复验证上,没能在预算内把进度变成成品。
主动退出暴露的是另一种问题。124 次早退里,有 14 次得分已经达到 0.75,却仍未满足隐藏 verifier。论文叫它 false finish。
例如 Kimi K2.7 Code 在 DuckDB 优化任务上以 R=0.92 停止,GLM 5.2 在一个专业工作流上以 R=0.90 停止。还有七个模型在同一个法律任务上做到 0.80–0.87 后退出,当时大约还剩 20 分钟。(论文第 10 页)
这些 Agent 还有能力继续做,只是把“公开错误已经消失”误判成“任务已经完成”。它们缺少主动寻找残余缺陷的最后一轮验证。
所以长时能力至少包含两个不同问题:如何在有限预算里持续推进,以及如何判断还剩多少工作。只加强单步推理,未必能补上任何一个。
这组结果还不能直接当模型排行榜
论文给出的失败结构很有价值,但横向排名需要谨慎。
首先,GPT-5.3 使用 Codex,其他模型主要使用 Terminus-2,模型和 Harness 没有完全解耦。其次,任务用 DeepSeek-V4-Pro 反复运行并校准难度,这可能让任务分布对该模型或类似行为产生适配。每个 model-task 似乎只报告一条 pass@1,长任务中的随机性没有置信区间。
成本也是估算值。论文按 2026 年 6 月公开标价计算,并假设 prompt token 全价,没有统一纳入缓存折扣、并发和基础设施成本。
视觉核对还发现 v2 内部有两处值得留意的数据口径问题。图 1 仍写平均 237 episodes、86.2 分钟,摘要、正文和表 1 则是 239 episodes、88.9 分钟。表 1 还报告 Hy3 的平均运行时间为 176.1 分钟,高于正文反复强调的 90 分钟 timeout,论文没有解释两种时间口径如何对应。
这些问题不影响“二元评分会丢失大量进度信息”的主结论,但提醒我不要把每一列数字都当成完全可比的模型能力。
如果做 Harness,我会把进度账本变成一等公民
这篇论文让我更确定,长时 Agent 需要一份独立于自然语言上下文的任务状态。至少要记录:子目标、证据、当前状态、最近一次验证结果、剩余预算和完成判据。
我会先做一个很小的评测:选 10 个需要 30–90 分钟的真实任务,为每个任务定义 5–10 个确定性 checkpoint,然后比较当前 Harness 与加入进度账本后的版本。
除了最终通过率,我会看:
- 单位分钟和单位 token 获得的 checkpoint 分数;
- 重复探索和重复验证占了多少预算;
- 上下文压缩或重启后,已完成状态有没有丢;
- 超时时正在做什么,离下一个里程碑多远;
- Agent 主动结束时,是否通过独立 completion gate;
- 高分早退与低分早退分别占多少。
completion gate 可以很简单:要求 Agent 在结束前列出每个目标的证据,再由确定性检查或独立 verifier 决定能否结束。Agent 可以提出“我完成了”,但不能单方面把任务状态写成 done。
把一次运行撑得更久,只是长时 Agent 的起点。它还要知道自己完成了什么、还欠什么、下一步最值钱的动作是什么,以及何时有足够证据停下来。Long-Horizon-Terminal-Bench 把这些原本藏在一个 0 里的差异,第一次比较系统地摊开了。