TL;DR

本文核心观点:

  1. 双轨评估框架 — RACE-Bench 不只评估最终 patch 是否通过测试,还评估中间推理轨迹是否与开发者认可的参照轨迹对齐
  2. 528 个真实特性新增实例 — 来自 12 个开源仓库,每个配备结构化参照推理(Issue Understanding、File Localization、Implementation Tasks、Step Decomposition 四个阶段)
  3. 当前 Agent 解决率 29%–70% — 推理层面分析显示:高层意图理解好,但落地到具体实现步骤时性能大幅退化
  4. 能过测但推理差的 patch — 比成功 patch 少覆盖 35.7% 参照推理元素,多 94.1% 幻觉步骤

背景:只评估结果够吗?

现有 benchmarks 主要将代码 Agent 作为黑盒评估——只看最终测试是否通过,不看 Agent 如何推理、在哪里失败。

这一评估范式的局限在特征新增任务中尤为突出:不同于 bug 修复(从观察到的失败出发恢复预期行为),特征新增要求 Agent 推断新的外部可见行为,决定如何整合到现有 API 或模块边界,同时保留现有行为。产生正确 patch 是结构化推理流水线的结果——误解意图、修改无关文件、引入不必要变更、遗漏关键步骤,任何环节出错都会导致失败。

RACE-Bench 设计

RACE-Bench 包含 528 个真实特征新增实例,来自 12 个活跃维护的开源 GitHub 仓库。每个实例包含三个主要组件:

❶ Task Context

  • Feature Request:来自 GitHub issue 的自然语言功能描述
  • Environment Setup:仓库、版本、base commit 等执行上下文
  • Hints Text(可选):开发者讨论中的额外上下文

❷ Reference Reasoning(结构化参照推理)

四个阶段、五个推理模块:

  1. Issue Understanding — 概念解释 + 目标期望
  2. File Localization — 必要代码文件、其他文件、测试文件的分类
  3. Issue Implementation — 每个代码实体的文件位置、变更类型、必要性标记
  4. Step Decomposition — 抽象为序列化的必要任务步骤

参照推理来自开发者接受的 patch,代表一种可接受的实现轨迹,而非唯一正确解。

❸ Verification

  • Gold Patch + Test Patch:通过 git apply 应用,FTP 测试用 pytest 验证
  • FTP 测试:Gold Patch 应用前失败、应用后通过
  • PTP 测试:确保修改后原有功能被保留

双轨评估框架

RACE-Bench 提出联合测量两条轨道:

轨道一:Patch Correctness — patch 是否通过 FTP 和 PTP 测试

轨道二:Reasoning Alignment — Agent 的中间推理轨迹是否与开发者认可的参照轨迹对齐,通过五个结构化推理模块的 recall 和 over-prediction 衡量

核心结果

解决率

三个代表性代码 Agent 在完整基准上的解决率:29%–70%(以 DeepSeek 为 base model)。

推理层面分析

当前 Agent 的高层意图理解表现好,但从文件定位到任务步骤落地时性能大幅退化。

关键发现:能过测但推理差的 patch

可应用但最终测试失败的 patch,与成功 patch 相比:

  • 参照推理元素覆盖率低 35.7%
  • 幻觉步骤(unsupported reasoning elements)多 94.1%

这揭示了仅靠最终测试通过率评估的盲点:Agent 可能通过巧合的推理通过测试,但过程本身存在严重缺陷。

Agent 架构 vs Base Model 的影响

在 RACE-Bench Lite(100 instances)上扩展更多 base LLMs 的评估表明:base model 的选择影响 Agent 性能,但其影响受 Agent 架构约束——架构设计更好的 Agent 在不同 base model 上保持相对稳定的性能。


结尾

RACE-Bench 的核心贡献是将代码 Agent 评估从”结果对就行”推进到”过程是否像人”。SWE-bench 式的黑盒评估只看最终 patch 是否通过,无法区分”真正理解了问题并正确实现”和”通过巧合的推理通过了测试”。RACE-Bench 通过结构化参照推理和双轨评估框架,为代码 Agent 的推理质量提供了诊断能力——这对于训练数据选择、评测体系设计、以及理解 Agent 真实失败模式都有直接影响。


Published on 2026-08-31

参考链接