ProgramBench 测试集档案
ProgramBench 测试集中文档案:只给编译好的程序和文档,让 AI 从零重写一个一模一样的 由 Meta(含 SWE-bench 作者 John Yang 等),2026-05,arXiv:2605.03546 组织,包含测试方法、典型任务、分数解读、沿革与局限。
- ProgramBench
- Program Bench
- ProgramBench(Anthropic Harness)
- Meta(含 SWE-bench 作者 John Yang 等),2026-05,arXiv:2605.03546
已发布事实
- 发布方
- Meta(John Yang、Ofir Press 等,含 SWE-bench 核心作者)
- 发布时间
- 2026-05(arXiv:2605.03546)
- 任务规模
- 200 个,从小 CLI 工具到 FFmpeg、SQLite、PHP 解释器
- 任务形态
- 洁净室重建:给可执行文件+文档,无源码、禁联网
- 判分方式
- agent 驱动 fuzzing 生成的隐藏行为测试套件比对
- 官方 harness
- mini-SWE-agent
它测什么
测的是 AI agent「整体开发一个软件」的能力,而不是修单个 bug 或补单个功能。玩法像「洁净室重建」:agent 拿到一个编译好的可执行文件和它的文档,看不到源码、不能联网,要自己设计架构、写出一份行为完全等价的代码库。这样设计是为了逼出模型的高层软件架构决策能力——现有编程榜大多只考局部修改,而这个榜考的是从零把一个程序「逆向再实现」出来。
怎么测
共 200 个任务,从小型命令行工具到 FFmpeg、SQLite、PHP 解释器这类广泛使用的软件。判分不看代码结构,只看行为:官方用 agent 驱动的 fuzzing 自动生成端到端行为测试套件,拿模型的重建版本跑这些隐藏测试。指标分两档:fully-resolved(全部测试通过才算真正解决)和 almost-resolved(通过绝大部分测试)。官方评测用 mini-SWE-agent 作为 harness。
分数怎么看
这个榜目前几乎没有「分数」可言:首期评测 9 个模型,没有任何模型在任何任务上做到 fully-resolved(全部测试通过),最好的模型也只在 3% 的任务上通过了 95% 的测试。论文还发现一个有趣现象:模型普遍偏好把所有代码堆进单文件的「一坨式」实现,和人类工程师写的代码结构差异极大。
局限
结论与形态相似的 MirrorCode 相反,引用时注意区分两者。Kimi K3 发布材料里的 "Program Bench" 指的就是这个榜。由于测试由 fuzzing 自动生成,「行为等价」的覆盖度取决于测试生成质量,0% 的解决率也意味着短期内它只能用来区分「都做不到」的细微差别。
典型任务
一个典型任务长这样:agent 面前放着一个编译好的 SQLite 可执行文件和它的使用文档,但没有一行源码。它得反复运行这个黑盒程序、试探各种输入的输出,推测内部行为,然后从零写出自己的 SQL 数据库实现。最后隐藏测试套件对原版和重建版跑同样的查询、比对行为是否一致。任务规模跨度很大,简单的可能只是几十行的小 CLI 工具,难的就是数据库、视频转码器、脚本语言解释器这种量级。
沿革
- 2026-05-05:arXiv v1 发布,提出洁净室重建式评测,200 任务
- 2026-05:Kimi K3 发布材料引用「Program Bench」成绩,此榜进入主流视野
- 2026-05-08:LessWrong 热帖「Is ProgramBench Impossible?」讨论其全体 0% 现象
- 2026-08:BenchLM 等第三方榜站收录,开始追踪各家 fully/almost-resolved 成绩