测试集:ProgramBench
| 名称 | ProgramBench |
|---|---|
| 类别 | coding |
| 主办方 | Meta(含 SWE-bench 作者 John Yang 等),2026-05,arXiv:2605.03546 |
| 开源状态 | open |
| 网址 | 官方页面 |
programbench0洁净室重建:给可执行文件+文档、无源码、禁联网、fuzzing 生成隐藏行为测试、200 任务含 SQLite/FFmpeg 量级、全体模型 resolved 率仍接近 0
测试集content/benchmarks/programbench.md
一句话
只给编译好的程序和文档,让 AI 从零重写一个一模一样的
测什么
测的是 AI agent「整体开发一个软件」的能力,而不是修单个 bug 或补单个功能。玩法像「洁净室重建」:agent 拿到一个编译好的可执行文件和它的文档,看不到源码、不能联网,要自己设计架构、写出一份行为完全等价的代码库。这样设计是为了逼出模型的高层软件架构决策能力——现有编程榜大多只考局部修改,而这个榜考的是从零把一个程序「逆向再实现」出来。
怎么测
共 200 个任务,从小型命令行工具到 FFmpeg、SQLite、PHP 解释器这类广泛使用的软件。判分不看代码结构,只看行为:官方用 agent 驱动的 fuzzing 自动生成端到端行为测试套件,拿模型的重建版本跑这些隐藏测试。指标分两档:fully-resolved(全部测试通过才算真正解决)和 almost-resolved(通过绝大部分测试)。官方评测用 mini-SWE-agent 作为 harness。
典型任务
一个典型任务长这样:agent 面前放着一个编译好的 SQLite 可执行文件和它的使用文档,但没有一行源码。它得反复运行这个黑盒程序、试探各种输入的输出,推测内部行为,然后从零写出自己的 SQL 数据库实现。最后隐藏测试套件对原版和重建版跑同样的查询、比对行为是否一致。任务规模跨度很大,简单的可能只是几十行的小 CLI 工具,难的就是数据库、视频转码器、脚本语言解释器这种量级。
分数怎么看
这个榜目前几乎没有「分数」可言:首期评测 9 个模型,没有任何模型在任何任务上做到 fully-resolved(全部测试通过),最好的模型也只在 3% 的任务上通过了 95% 的测试。论文还发现一个有趣现象:模型普遍偏好把所有代码堆进单文件的「一坨式」实现,和人类工程师写的代码结构差异极大。
含金量与局限
结论与形态相似的 MirrorCode 相反,引用时注意区分两者。Kimi K3 发布材料里的 "Program Bench" 指的就是这个榜。由于测试由 fuzzing 自动生成,「行为等价」的覆盖度取决于测试生成质量,0% 的解决率也意味着短期内它只能用来区分「都做不到」的细微差别。
冷知识
同属「看产物逆推实现」的 MirrorCode 与它形态几乎一样,结论却相反,两篇论文常被放在一起争论。另一个出圈发现:面对「重建 SQLite」这种任务,模型几乎清一色交出单文件「一坨式」实现,和人类工程师的分层模块化风格完全两个物种。
数据来源
本页由仓库 content/benchmarks/programbench.md 初始化。后续修订通过公开审核队列发布。