LoopsBench:Coding Agent 评测的范式转移——从 Harness 到 Loop

当 Agent 开始干「长活」

SWE-bench 及后续工作建立了一个有效但局限的评测范式:给 Agent 一个 issue,关进代码仓库,让它改,改完看测试过不过。这个范式衡量的是单次问题解决能力

但问题是:真实软件开发不是这样的。

真实软件开发是:

  • A 功能依赖 B 功能,B 功能还没实现,Agent 得知道先做哪个
  • 改了 C 模块,原来的 D 功能挂了,Agent 得能发现并修回去
  • 任务做到一半,上下文已经很长了,Agent 的「计划」还剩多少
  • 跑了 50 步之后,Agent 还记不记得最初的目标

这些问题,SWE-bench 根本测不到。因为它只测终点,不测过程。

LoopsBench 就是奔着这个来的。


核心机制:DAG 依赖 + 持续回归

LoopsBench 的设计想清楚了真实开发任务的两个本质特征

1. 任务是带依赖的有向无环图(DAG)

不是一件事,是一串前后依赖的事。比如:

[实现数据库Schema] → [写CRUD接口] → [写业务逻辑] → [联调测试]
         ↑                    ↑
    [设计数据模型]      [API规范先行]

每个节点都是一个可独立测试的开发单元。真实来源,真实依赖关系。

2. 已完成的节点要持续回归

这是 LoopsBench 和以往所有 benchmark 最大的区别。

旧范式:测最终结果,不管过程。 LoopsBench:每当一个节点完成,立即把它纳入回归测试集。后面改任何东西,都必须过这组回归。

这模拟的是真实工程场景:你的修改引入新 bug,测试套件会告诉你。LoopsBench 把这个机制内置到评测里,持续测,不是一次性测。

flow-aware runtime 会沿着 DAG 的 ready frontier 释放测试——只有当一个节点的所有依赖都完成时,它的测试才激活。已完成节点的测试持续运行,作为回归守护。


数据规模

  • 112 个任务,来自真实代码库
  • 8 种编程语言,9 个领域
  • 5300+ 个可独立测试的开发单元
  • 所有任务、代码、测试都开源:microsoft/Loopsbench

真实结果:比想象中更悲观

这是最值得深思的部分。

论文测试了前沿模型的多种配置组合,结果:

最优组合(Opus-4.7 + Claude Code + outer continuation)解决率:25.00%

四分之一。

而且还有两个更具体的观察:

计划只能恢复部分 DAG:Agent 生成的执行计划,并不能完整覆盖源代码给出的依赖关系。这意味着 Agent 在长 horizon 执行中会「迷路」——不是迷路到不知道下一步做什么,而是不知道这件事依赖什么。

回归事件在各 loop 配置中都可见:无论用哪种 loop 框架(ReAct、Plan-and-Execute、Outer Continuation……),回归 bug 都会发生。这说明回归问题不是某个特定 loop 框架的缺陷,而是长 horizon 执行的系统性问题。


为什么重要:「Harness Engineering → Loop Engineering」

论文给出了一个我认为非常有洞察力的行业判断:

Coding agent 基础设施的研究重心正在从 Harness Engineering 转向 Loop Engineering

Harness Engineering 解决的是:模型怎么访问代码、Shell、编辑器、测试环境。这是过去几年行业花的力气。

Loop Engineering 解决的是:Agent 如何跨越长的时间尺度组织工作,如何维护状态,当一次执行结束后如何继续推进。

类比一下:Harness 是给单个工具制造合适的把手,Loop 是设计如何使用工具的整个工作流程

工具再好,流程设计差,Agent 在长任务上还是拉胯。


我的判断

LoopsBench 的价值不在于那个 25% 的数字——那是当前模型的性能,会随着模型能力提升而改善。

它的价值在于把正确的问题放到了台面上

  • 评测从「能不能解决一个孤立问题」转向「能不能在依赖图上稳定推进」
  • 引入过程性指标(回归事件数、DAG 覆盖率、执行稳定性)作为补充
  • 标志行业开始正视 Agent 在软件工程中「持续工作」这个真实场景

值得持续关注的是:这个 benchmark 会怎么影响 loop 框架的研究方向,以及当模型能力继续提升后,瓶颈会从「模型」转移到「loop 框架设计」上——届时 Loop Engineering 会变成真正的工程问题,而不只是模型问题。


参考

  • 论文:arXiv:2608.00267
  • 项目页:https://loopsbench.ai
  • 代码:https://github.com/microsoft/Loopsbench