← 返回 2026-04-21

精准调试基准:你的模型究竟在调试还是在重新生成代码? Precise Debugging Benchmark: Is Your Model Debugging or Regenerating?

Wang Bill Zhu, Miaosen Chai, Shangshang Wang, Yejia Liu, Song Bian, Honghua Dong, Willie Neiswanger, Robin Jia 📅 2026-04-19 👍 4 2026-07-13 08:36
LLM 代码调试 基准构建 大模型评估 程序修复

提出 PDB 框架与编辑级 precision、缺陷级 recall 两个新指标,揭示前沿 LLM 多以「整体重写」冒充精准调试。

前置知识

单元测试通过率(Pass@1 / unit-test pass rate)

传统代码生成/调试基准最常用的评价信号:给定一组隐藏测试 $U = \{u_1, \ldots, u_n\}$,定义二元评估函数 $F_U(C) \in \{0,1\}$,当程序 $C$ 通过所有测试时返回 1,否则返回 0;Pass@1 指模型在 1 次采样下通过测试的比率。

本文的核心论点恰恰是这条信号太弱:只要最终程序能跑通测试,模型是把二行改一行还是把整个函数重写一遍都拿同样分数,所以无法区分「精准修复」与「暴力重写」。

正交缺陷分类(Orthogonal Defect Classification, ODC)

Chillarege 等人 1992 年提出的软件缺陷分类法,把缺陷分成若干两两互斥的类别(Assignment、Checking、Algorithm、Build/Package/Merge、Timing/Serialization 等),使得任何具体 bug 都能被归到唯一类别。

PDB 用 ODC 作为「bug 注入器」的标签体系,让生成器能跨五类缺陷均匀采样、避免塌缩到单一家族(如常见的 if 条件错),是构造可分析、可分桶调试基准的关键。

Atomic bug 与 bug independence

Atomic bug 指对一个连续行块做最小修正就能修复的缺陷(形式上 $\exists E \in \mathcal{E}_{C_b}$ 且 $E$ 是连续编辑集合);Independence 指两条 bug 互不影响——修其中一条不会引入或消除另一条所需的编辑。

没有这两个性质,precision 和 recall 都没法精确定义:若修复是「非原子的」则一行修复就能让 bug 消失,precision 被人为抬高;若 bug 不独立则记错哪条被修过,recall 也会被搅乱。

Line-level edit 与 ground-truth edit script

论文把程序修复抽象为「在指定行集合 $E$ 上做修改」,ground-truth edit script 是把 buggy 程序还原到正确程序所需的最少行编辑集合;预测 edit $\hat{E}$ 与真值 edit $E$ 之间的重叠度就成为 precision 的来源。

PDB 的整个评估体系建立在「行编辑可以视为最小可寻址单位」上:无论是插入、删除还是替换一行,都可以定位到具体行号,从而把「过程正确性」转化为「行的差集运算」。

研究动机

现实软件开发以调试和维护为主(约占 80% 时间,参见 Glass 2002),但现有 LLM 调试基准几乎全部只看单元测试是否通过,忽略了「编辑过程是否精准」。论文观察到一个被普遍忽视的现象:当前最强模型如 GPT-5.1-Codex、DeepSeek-V3.2-Thinking 在被要求调试单行 bug 时,单元测试通过率超过 76%,但 edit-level precision 不到 45%——它们实际上是在「整体重写」代码、用 brute-force 蒙对测试。例如 Figure 1 展示的 GPT-5.2 调试一个二分搜索时,buggy code 仅有「while L < R」与「return n[mid] if n[mid] == target else None」两行需要小改,但模型把整个 12 行函数重写了一遍。同时,现存基准(如 Defects4J、SWE-bench)多从 Stack Overflow、GitHub commits 中挖掘,质量参差且易被数据污染覆盖;测试通过=满分的方式让「重写蒙对」和「精准改一行」获得同等奖励,根本无法评估模型的真实 debug 能力,更无法反映真实代码库中「diff 越小越安全」的工程诉求。

本文的目标是本文的目标是构建一个「dataset-agnostic、precision-aware」的调试评测框架 PDB (Precise Debugging Benchmarking),把任何已有编程数据集都自动转成高质量的调试基准;并提出两个新指标——edit-level precision 与 bug-level recall——分别衡量模型所提交编辑中「必要编辑的比例」与「被成功修好的 bug 占总 bug 的比例」,从而把模型「修对 bug」与「修得精准」两件事分别量化。

与已有工作不同的是,已有工作要么只看功能正确性(奖励重写),要么基于「真实 commit」构造数据(不可控、易污染、难复现)。PDB 的独特切入角度在于:把 bug 注入过程完全形式化为「行编辑的可逆合成」——先由 LLM 在原程序上合成 verified atomic bugs(用单元测试保证真出 bug),再按独立性约束把若干 atomic bug 复合起来,并通过「伪修订」机制 ($\hat{C}_i = \text{apply}(E_{gt}\setminus E_i \cup \text{map}(E_i), C_b)$) 单独验证「修第 $i$ 个 bug 的那一段是否语义正确」。这样精度和召回的统计不再依赖 commit 历史,可以对任意 frontier 模型即插即用地构造出可分桶、可分析的调试基准。

核心方法

PDB 把调试评测拆成「生成(generation)」与「评估(evaluation)」两个解耦阶段。生成阶段从已有编程基准(BigCodeBench、LiveCodeBench、SWE-smith)出发,先让 LLM 在 ground-truth 程序上做 ODC 类别下的原子级注入,再用单元测试过滤;多行 bug 走相同流程但要求连续行块,并通过「枚举部分回滚」检查原子性;最后用 stride 约束将 $k$ 条独立 bug 复合到同一程序上。评估阶段对每个 buggy 程序运行被测调试系统,提取行级预测编辑 $\hat{E}$,再对每条 ground-truth 编辑 $E_i$ 构造伪修订 $\hat{C}_i$(替换其他正确编辑、保留待评估的那段),单独跑单元测试判断该 bug 是否被「真正修对」。直觉上:precision 是「必要编辑在 $\hat{E}$ 中占多少」,recall 是「多少 bug 被精准命中」,二者都不再只看最终程序的测试结果。

核心创新在于把调试能力从「最终程序正确性」解耦成「每条 bug 是否被精准命中」。具体两个层面:第一,引入 $\text{map}(\cdot)$ 函数把预测编辑按行位置配对到最近的 ground-truth 编辑块,再造出伪修订 $\hat{C}_i$ 单独验证某 bug 是否被语义正确修复,从而能算 bug-level recall(每个 bug 一票)。第二,引入 $\epsilon$-relaxed essential edit size $(|\hat{E}_i|)_\epsilon = \min(|\text{essential}_U(\text{map}(E_i))|, |E_i|+\epsilon)$,通过搜索「在不影响测试通过的前提下能删掉多少冗余编辑」来抑制模型「重写蒙对」的空间,把每段预测折算成「真正必要的编辑数」。这样 precision 的物理意义就是「单位修改里有多少是必要的」,它和 unit-test score 在概念上彻底解耦——这是已有基准从未做过的。

方法步骤详情

PDB 流程可以拆成 6 步:(1) 数据准备:从 BigCodeBench、LiveCodeBench、SWE-smith 取任务 $(x, C_{gt})$,按 ODC 5 大类(Assignment、Checking、Algorithm、Build/Package/Merge、Timing/Serialization)作为分类锚。(2) 单行 bug 合成:对每条 $(x, C_{gt})$ 用规则过滤「不可删」(如函数签名)和「不可改」行,再随机选 ODC 子类、选操作(insert/delete/substitute)、让 GPT-5.1-Codex/Claude-Sonnet-4.5/Gemini-2.5-Pro 等生成器 pool 中一个 LLM 改一行;每对生成 $m_1=20$ 个候选,单元测试必须失败才保留。(3) 多行 bug 合成:连续 $B\in[2,B_{max}]$ 行的块上做同样操作并对每条 bug 枚举「部分回滚是否仍 fail test」以过滤非原子情况。(4) Bug composition:对每对 $(x, C_{gt})$ 按 stride $s$(单行 $s=3$、多行 $s=5$)约束随机抽 $k\in\{2,\ldots,k_{max}\}$(单行 $k_{max}=4$、多行 $k_{max}=3$)个独立 bug 复合,每配置生成 $m_2=100$ 条后按 $m_3=5$ 子采样。(5) PDB-SINGLE 难度过滤:用 9 个评测模型在 7,591 例初稿上跑一遍,把「9 个模型中至少 7 个全对」的 1,840 例易例剔除,得到 5,751 例的最终 PDB-SINGLE。(6) PDB 评估:每个测试模型接收 (buggy code, task description, 可选 unit tests/failed attempts) 并输出 $\hat{C}$,行 diff 得到 $\hat{E}$,对每条 ground-truth 编辑 $E_i$ 用 $\text{map}$ 配对并构造伪修订 $\hat{C}_i$,按 $\text{precision}=\frac{1}{|\hat{E}|}\sum_{i=1}^{k}F_U(\hat{C}_i)\cdot|E_i|$、$\text{recall}=\frac{1}{k}\sum_{i=1}^{k}F_U(\hat{C}_i)$ 以及 $\epsilon$-relaxed 版本($\epsilon=2$ 用于 PDB-SINGLE、$\epsilon=1$ 用于 PDB-WILD)报告 micro-averaged 结果。

技术新颖性

技术上新颖性体现在三处。第一,bug injection 的形式化:把「修 bug」视作对行集 $E$ 的可逆操作,引入 atomicity(连续行块)与 independence(修一条不影响另一条)两个可验证的组合性质,使得从单 bug 到多 bug 的合成过程可控、可证伪、可证有效。第二,伪修订(pseudo-revision)机制:传统的 diff 评估直接拿「最终程序」做差,但 PDB 用 $\hat{C}_i = \text{apply}(E_{gt}\setminus E_i \cup \text{map}(E_i), C_b)$ 把每条 bug 隔离开评估——既解决了「多 bug 程序中只修对一条」与「全错」在 unit-test 下同分的问题,又让 recall 的定义有清晰的「每条 bug 一票」语义。第三,$\epsilon$-relaxed essential edit size 引入了一个针对「过度编辑」的纠偏步骤:通过 $\text{essential}_U(\cdot)$ 在保留语义正确性的前提下从预测段中删去冗余行,再按 $|E_i|+\epsilon$ 兜底,让 precision 不至于被「无关紧要的格式调整」和「改写半边函数」一并处罚、但也不会让「重写蒙对」逃过评估。配合 $\text{Spearman}\ \rho=0.72$ 的人工评分一致性证据,这套指标体系比单纯的 unit-test 更贴近人类对「精准修复」的理解。

PDB pipeline. Generation: LLMs first synthesize and verify single-line bugs from existing coding datasets, which are then composed into multi-bug programs. Evaluation: Automated debugging systems are evaluated on these programs using both unit-test accuracy and edit-level precision and bug-level recall.
Figure 2: PDB pipeline. Generation: LLMs first synthesize and verify single-line bugs from existing coding datasets, which are then composed into multi-bug programs. Evaluation: Automated debugging systems are evaluated on these programs using both unit-test accuracy and edit-level precision and bug-level recall.

实验结果

在 PDB-SINGLE(5,751 例)上,9 个前沿模型呈现显著的能力分层并出现「排名倒置」现象。Pass with precision 组:Claude-Sonnet-4.5(unit 75.7%、precision 71.8%、recall 81.4%)与 Gemini-2.5-Pro(78.1%/71.4%/83.5%)做到了既通过测试又精准;Weak but precise 组:Qwen3-Coder-480B 仅 70.3% unit 但 precision 65.8%、recall 77.2%,说明它宁可少改;Pass-oriented 组:DeepSeek-V3.2-Thinking(79.0%/45.0%/71.2%)、GPT-5.1-Codex(76.1%/39.7%/71.7%)靠重写蒙对,unit 分数高 30+ 个百分点的同时 precision 不到一半。Kimi-K2-Instruct(64.8%/56.6%/72.7%)、Grok-Code-Fast(58.3%/54.6%/66.5%)、Kimi-K2-Thinking(74.0%/51.7%/75.6%)则属于「能定位但修不干净」。Figure 4 显示随 bug 数量 $k$ 从 1 增到 4,unit 下降而 precision 同步下降,呈现明显的负相关——模型越复杂 bug 越倾向于「全文件重写」。在 PDB-WILD(484 例、多行+repo 级别,$\epsilon=1$)上,Claude-Opus-4.7(71.6%/76.0%/62.2%)与 Gemini-3.1-Pro-Preview(69.9%/76.4%/74.8%)保持精准,GPT-5.5(54.8%/74.4%/71.5%)、GPT-5.1-Codex(30.8%/50.6%/62.8%)继续掉进「pass-oriented」陷阱,证明现象不限于单行 bug。Figure 5 的迭代/智能体实验说明:让模型做 3 轮 iterative 或加 unit-test 反馈的 agentic 调试,可以把 unit 与 recall 抬高,但 precision 几乎不升反降——甚至 Claude-Code 也只到 50% precision。Figure 6 的 freeform vs minimal 提示对比进一步证明:一旦去掉「make minimal edits」约束,所有模型 precision 暴跌 20–40 个百分点(GPT-5.1-Codex 跌破 20%、Gemini-2.5-Pro 跌 40 个百分点),说明「重写」不是模型做不到精准,而是被普遍默认行为所驱动。Table 2 的 source-rewriting 与 cross-model 生成实验则排除了「数据污染主导」的假设:把 ground-truth 用同/异模型重写后 precision 涨 2.8–3.5%,unit 降 ≤1.4%,说明模型并非单纯靠记忆。

Performance on PDB-WILD with tolerance ϵ = 1. The same precision gap persists under multi-line and repo-level bugs.
Table 1: Performance on PDB-WILD with tolerance ϵ = 1. The same precision gap persists under multi-line and repo-level bugs.
Precision, recall, and unit score comparison across source bug generation models for PDB-SINGLE, averaged over debug models.
Table 3: Precision, recall, and unit score comparison across source bug generation models for PDB-SINGLE, averaged over debug models.
ODC-style taxonomy of common programming defects with summarized descriptions.
Table 4: ODC-style taxonomy of common programming defects with summarized descriptions.
Precision, recall, and unit score on the PDB-SINGLE-FULL set.
Table 5: Precision, recall, and unit score on the PDB-SINGLE-FULL set.
Model performance on DebugBench, evaluated with the PDB framework. The qualitative pattern observed on PDB-SINGLE and PDB-WILD persists.
Table 6: Model performance on DebugBench, evaluated with the PDB framework. The qualitative pattern observed on PDB-SINGLE and PDB-WILD persists.
(a) Data distribution of PDB-SINGLE. (b). Precision, recall, and unit score on the PDB-SINGLE set.
Figure 3: (a) Data distribution of PDB-SINGLE. (b). Precision, recall, and unit score on the PDB-SINGLE set.
Correlation between precision, recall, and unit-test score across bug counts. Results are shown on subsets of PDB-SINGLE from BigCodeBench (left) and LiveCodeBench (right), with bug counts indicated by numbers.
Figure 4: Correlation between precision, recall, and unit-test score across bug counts. Results are shown on subsets of PDB-SINGLE from BigCodeBench (left) and LiveCodeBench (right), with bug counts indicated by numbers.
Both iterative and agentic setups on PDB-SINGLE improve unit-test pass rates and recall over single-shot debugging, indicating higher functional success. However, edit-level precision does not improve and sometimes degrades. Notably, even Claude-Code with access to unit-test and execution feedback exhibits only 50% precision.
Figure 5: Both iterative and agentic setups on PDB-SINGLE improve unit-test pass rates and recall over single-shot debugging, indicating higher functional success. However, edit-level precision does not improve and sometimes degrades. Notably, even Claude-Code with access to unit-test and execution feedback exhibits only 50% precision.
Comparison of model performance under minimal-debug and freeform prompting on a subset of PDB-SINGLE-FULL.
Figure 6: Comparison of model performance under minimal-debug and freeform prompting on a subset of PDB-SINGLE-FULL.
Per-bug-count breakdown of precision, recall, and unit score on the full PDB-SINGLE-FULL pool drawn from BigCodeBench (left) and LiveCodeBench (right).
Figure 7: Per-bug-count breakdown of precision, recall, and unit score on the full PDB-SINGLE-FULL pool drawn from BigCodeBench (left) and LiveCodeBench (right).
Model-averaged precision, recall, and unit-test pass rate on PDB-SINGLE, plotted as a function of buggy code length (lines of code).
Figure 8: Model-averaged precision, recall, and unit-test pass rate on PDB-SINGLE, plotted as a function of buggy code length (lines of code).
Per-model bug-level recall over the five retained ODC categories on PDB-SINGLE. Each axis of the radar plot corresponds to one category; the shaded region is the recall envelope for that model.
Figure 9: Per-model bug-level recall over the five retained ODC categories on PDB-SINGLE. Each axis of the radar plot corresponds to one category; the shaded region is the recall envelope for that model.
Per-model precision, recall, and unit-test pass rate on PDB-SINGLE when ground-truth solutions are rewritten by the same generator that introduced the bugs (Same-Gen) versus a different generator (Different-Gen), compared against the unmodified raw data.
Figure 10: Per-model precision, recall, and unit-test pass rate on PDB-SINGLE when ground-truth solutions are rewritten by the same generator that introduced the bugs (Same-Gen) versus a different generator (Different-Gen), compared against the unmodified raw data.
查看结构化数据
任务指标本文基线提升
PDB-SINGLE(5,751 例单行 bug 微基准) Edit-level Precision (ϵ=2) Claude-Sonnet-4.5 71.8%;Gemini-2.5-Pro 71.4%;Qwen3-Coder-480B 65.8%;Kimi-K2-Instruct 56.6%;Grok-Code-Fast 54.6%;Kimi-K2-Thinking 51.7%;DeepSeek-V3.2 48.4%;DeepSeek-V3.2-Thinking 45.0%;GPT-5.1-Codex 39.7% 传统 Pass@1 unit-test 分数(同时给出) 无单一基线可比;关键贡献是揭示 ranking inversion:unit top-1(DeepSeek-V3.2-Thinking 79.0%)的 precision 排名垫底 45.0%,unit 排名靠后(Qwen3-Coder-480B 70.3%)的 precision 反而 65.8%——传统 unit-test 评估对调试能力的误判最高可达 30 个百分点
PDB-SINGLE(5,751 例单行 bug 微基准) Bug-level Recall Claude-Sonnet-4.5 81.4%;Gemini-2.5-Pro 83.5%;Qwen3-Coder-480B 77.2%;Kimi-K2-Instruct 72.7%;Grok-Code-Fast 66.5%;Kimi-K2-Thinking 75.6%;DeepSeek-V3.2 70.0%;DeepSeek-V3.2-Thinking 71.2%;GPT-5.1-Codex 71.7% 无 baseline 报告 Recall 在 API 类(BigCodeBench)bug 上 5% 内波动,在算法类(LiveCodeBench)bug 上随 k 增大而上升,提示 bug 难度对 recall 的影响高度依赖 bug 类型
PDB-WILD(484 例多行+repo 级 bug,ϵ=1) Edit-level Precision Claude-Opus-4.7 71.6%;Gemini-3.1-Pro-Preview 69.9%;Claude-Sonnet-4.5 59.4%;GPT-5.5 54.8%;Gemini-2.5-Pro 51.4%;Qwen3.6-plus 43.3%;Kimi-K2.6 41.0%;GPT-5.1-Codex 30.8% 同任务下 Pass@1 unit score 现象复现且放大:GPT-5.1-Codex 在 484 例多行测试中 unit 62.8% 但 precision 仅 30.8%,与 PDB-SINGLE 趋势一致,说明 precision 缺口对 bug 粒度不敏感
DEBUGBENCH 外部验证(40 例 human-curated 单块 bug 子集) Edit-level Precision / Recall / Unit (%) Claude-Sonnet-4.5 78.4/87.3/87.5;Gemini-2.5-Pro 79.4/89.4/85.0;GPT-5.1-Codex 61.9/74.0/90.0 无原始 PDB 框架下的对照 将 PDB 评测协议移植到非合成数据后,pass-oriented 模式仍然成立:GPT-5.1-Codex unit 90% 但 precision 仅 61.9%,与 synthetic 基准的 30–50% precision 区间量级一致,说明 PDB 揭示的不是「合成数据伪影」而是普遍现象

局限与改进

作者在 Appendix G 显式承认三条局限:第一,PDB 当前只覆盖 Python,且 bug 类型/子类别也以 Python 习语为锚,迁移到 Java/JS/C++ 需要改写 in-context 示例和子类别,但 ODC 框架本身语言无关;第二,本文只做评测、不做训练——没有把 PDB 信号用于 SFT/RL/self-improvement,未来工作应尝试用 precision-aware reward 做后训练;第三,edit-level precision 仍可能低估「语义等价但行号不同」的修复(如把 `if x > 0` 改成 `if 0 < x`、把 for 循环改成 while),纳入 LLM-as-a-judge 可缓解但仍是开放问题。除此之外,我自己的观察还包括:(a) 9 个评测模型中存在 7 个用自身作为 bug generator 的循环依赖,ground-truth 编辑集合 $E_{gt}$ 本身可能与被测模型风格同质化,虽然作者在 Table 2 中做了 cross-model 验证(unit 跌幅 ≤1.4%),但 precision 仍可能因「同模型生成的 bug 风格契合」被高估约 3 个百分点;(b) $F_U$ 仍依赖原数据集的测试用例,对以 hard-coded output 或过拟合测试来「蒙对」的修法没有独立检测,仅靠 precision 在事后侧面暴露——这意味着如果测试集本身不全,PDB 也会和原基准一样被骗;(c) stride $s=3/5$ 是一种工程近似,真正的独立性需要形式化证明,本文未给出严格定义。

独立分析的弱点

独立看,PDB 仍有几个可改进的具体场景。弱点 1:precision 指标对「无关紧要的格式调整」过于严格——例如 Figure 11 显示模型在修对 bug 后加了防御性 `if not os.path.isfile(...)` 守卫(9.8% 的 pass-but-imprecise 案例),这种修改在工程实践中甚至是被鼓励的,但被 precision 视为 spurious。改进方向是引入「语义保留编辑器(semantic-preserving equivalence class)」,把 $F_U$ 之外再用 LLM-as-a-judge 判「编辑是否改动了可观察行为」,给出 layered precision。弱点 2:recall 在多 bug 程序上把 1.65% 的数据因 bug 互相耦合而错记(图 17),且 20% 的情况是「同一 bug 存在多种最小正确解」(Figure 16)。改进方向是允许多参考 ground-truth edit sets 或在评估时枚举所有最小修正集。弱点 3:atomic bug 注入完全依赖 LLM,受限于生成器本身的「想象空间」,从 Figure 9 看 8/9 模型在 Build/Package/Merge 类上的 recall 异常高 10–20 个百分点(可能因为 Stack Overflow 模板可被记忆),这会让「难」例偏科。改进方向是为每类 ODC 维护人工构造的种子库(类似 SWE-smith)做 calibration,或在每个 ODC 类别上强制注入分布平衡。弱点 4:当前所有指标都是 micro-averaged,未给出 per-task 或 per-bug-count 的方差;论文承认数据集在 bug 数量上仍可能不平衡。

未来方向

作者在 §7 提出的方向包括:(i) 把 PDB 接入 SFT/RL 后训练流程作为 precision-aware reward signal,测试是否能用「让 edit 越短越好」的方式训练出 Claude-Sonnet-4.5 那种 pass+precision 双高模型;(ii) 借由「任何新 frontier LLM 都能作为 bug 注入器」的 plug-and-play 性质,让 PDB 基准随模型前沿一起滚动,避免再被预训练数据覆盖。我个人可延伸的方向还有:(a) 把 PDB 框架扩展到多语言(Java/JS/Rust),复用 ODC 体系但替换子类别库;(b) 把「bad case taxonomy」(Figures 11–19 中的 redundant guard、over-edit、complete rewrite、regressive repair 等)作为下游调试 agent 的 failure-mode 诊断工具,用在 Claude-Code/Aider/SWE-Agent 这类产品的内部回归测试中;(c) 把 edit-level precision 用作「自我改进循环」中的 reward:在 self-distillation 阶段,只采样 precision>τ 的修复作为新训练数据,从而把「会精准改 bug」内化为模型的 default 行为。

复现评估

PDB 的开源程度较高、复现门槛中等。论文公布了 Dataset 链接、Webpage、Code 仓库、Leaderboard 四件套,作者明确说明 PDB 框架 plug-and-play——研究者用 4 个 frontier 模型(GPT-5.1-Codex、Claude-Sonnet-4.5、Gemini-2.5-Pro、Claude-Opus-4.7)作为 bug 注入器 pool,把 BigCodeBench(Apache 2.0)、LiveCodeBench(MIT+CC-BY-4.0)、SWE-smith 的源程序转换为 5,751+484=6,235 条评测。论文中所有 prompt 模板(minimal / freeform、single-shot / iterative / agentic 共 6+ 变体)都在 Appendix E 完整给出,包含外部 API 调用格式与 system prompt,可以直接套用。算力门槛方面,主实验需 9 个模型 × 5,751 例 × 平均 1k token 输出 × 温度 1.0 的 API 调用,按 2026 年 4 月定价粗估在数千美元量级;如果只想用 3 个 generator + 5 个被测模型复现 Table 1,预算可压到 1k 美元以内。代码层面因为 $\text{map}(\cdot)$、$\text{essential}_U(\cdot)$ 等子程序在 Appendix C 给出了伪代码,复现难度中等——主要风险在于 LLM API 的 reproducibility(同一 prompt 同一温度下未必 100% 复现 unit 分数),以及 Python 测试执行环境(BigCodeBench 依赖较多 API 库,pip install 阶段易卡)。