PatchEval 结果话术
这份文件只回答一个问题:78/230 到底应该怎么讲。具体 CVE 案例放在 patcheval-case-cards.zh.md。
1. 最短版本
可以这样说:
在 PatchEval 230 个 runtime-validated CVE 修复任务上,我们的 Default multi-stage workflow 达到 78/230。这个结果低于 OpenHands + GPT-5 的 83/230,接近 ClaudeCode + GPT-5 的 79/230,高于 SWE-agent + GPT-5 的 76/230。为了避免把模型差异说成 workflow 差异,我还做了同模型 ablation:Default 78/230,Single-Agent 73/230。
2. Leaderboard 参考坐标
论文里纳入的 PatchEval 外部参考结果是:
- OpenHands + GPT-5:83/230
- ClaudeCode + GPT-5:79/230
- Default multi-stage + Deepseek V4 Pro:78/230
- SWE-agent + GPT-5:76/230
- GPT-5 direct prompt:67/230
- OpenHands + Gemini2.5:43/230
- SWE-Agent + Gemini2.5:32/230
- Claude-Code + Gemini2.5:29/230
这层的作用是回答“78/230 到底算什么水平”。比较稳的说法是:它低于 OpenHands + GPT-5 的 83/230,接近 ClaudeCode + GPT-5 的 79/230,高于 SWE-agent + GPT-5 的 76/230,也明显高于 Gemini2.5 agent references。也就是说,它不是一个孤立数字,而是在 PatchEval no-feedback strict setting 下接近 leaderboard 第一梯队的结果。
3. 同模型 Ablation
Leaderboard 只能说明外部位置,不能严格证明 workflow 设计带来的收益。因为 OpenHands、ClaudeCode、SWE-agent 用的 agent 框架和模型都不一样。
归因 workflow 设计时,要讲同模型 ablation:
- Default multi-stage:78/230
- Single-Agent:73/230
- No-Verifier:76/230
- Deep-Self-Check:73/230
这说明多阶段设计有收益,但不是巨大提升。更准确的结论是:多阶段 workflow 在 strict benchmark 上有可见增益,并且 case-level 差异显示它确实会改变修复边界理解和 patch 策略。
4. 不要怎么说
不要说:
我的修复率是 34%。
这个说法太像泛化到真实世界了,也容易显得数字低。
建议说:
在 PatchEval 230 个 runtime-validated CVE 修复任务的 strict oracle 下,Default multi-stage workflow 通过 78 个。
不要说:
我们超过了 PatchEval leaderboard。
建议说:
这个结果接近 leaderboard 第一梯队,但不同系统的模型和 agent 框架不一样,所以 leaderboard 只作为外部参考;真正用于归因的是同模型 ablation。
5. 如果面试官问“这数字是不是低”
可以回答:
是的,所以我不会把它包装成已经解决自动修复。PatchEval 的 strict oracle 很硬,要求 PoC 和单元测试都通过。这个结果更适合说明多阶段设计的相对收益、成本 tradeoff,以及哪些 case 因为分阶段分析获得更好的修复边界。