---
title: "2604.07789"
title_zh: "ORACLE-SWE：量化 Oracle 信息信号对 SWE 代理的贡献"
arxiv_id: "2604.07789"
paper_type: "analysis"
source_kind: "raw"
raw_path: "raw/papers/2026/04/2604.07789.md"
generated: "2026-05-11"
model: "LongCat-Flash-Chat"
quality: "ok"
---

# ORACLE-SWE：量化 Oracle 信息信号对 SWE 代理的贡献

## 一句话定位

提出 ORACLE-SWE 方法，从 SWE 基准测试中提取五类关键信息信号（Reproduction Test、Regression Test、Edit Location、Execution Context、API Usage），并通过控制消融实验量化其对代理性能的理想贡献上限。

## 小学生也能听懂

这篇论文像做实验一样，给电脑程序“老师提示”（比如错误信息、测试方法等），看看哪种提示最能帮AI修好代码，发现“重现问题的测试”最有用，还做了个工具能自动找出这些提示，帮AI更好地完成任务。

## 为什么值得记录

- 首次系统性地量化了五类关键信息信号在 SWE 任务中的独立和联合贡献，为研究优先级提供数据支持
- 发现 Reproduction Test 是最具影响力的信号，显著优于其他信号，揭示当前 LM 代理在理解模糊问题描述上的瓶颈
- 验证了 Execution Context 的有效性高度依赖原生错误堆栈的可用性（仅约 1/4 实例具备），否则其贡献有限
- 提出通用信号提取框架，可复用于多个 SWE 基准（SWE-bench-Verified、SWE-bench-Live、SWE-bench-Pro）
- 通过两阶段验证实验（强模型提取信号 + 弱模型修复）证明代理生成信号的实际价值，部分任务表现超越单一强模型

## 核心方法

- 定义五类 oracle 信息信号：Reproduction Test（含执行命令、测试名、源码）、Regression Test（回归测试命令与列表）、Edit Location（需修改的代码区域）、Execution Context（错误堆栈或自定义调用栈）、API Usage（修改/新增的函数调用及其定义）
- 设计自动化提取流水线：对 Python 项目利用执行覆盖率解析 API 定义；对 Golang 项目通过静态类型检查解析；对无原生堆栈的实例插入自定义堆栈收集器
- 采用 SWE-agent 作为基础代理（仅含 bash 和 string-replace 工具），避免复杂系统带来的混杂效应
- 进行 oracle 消融实验：向初始 prompt 注入单个或组合信号，测量成功率与 API 成本
- 设计两阶段验证实验：Stage 1 用强模型（如 GPT-5）提取信号，Stage 2 用弱模型（如 GPT-4o）基于提取信号修复问题，对比单代理基线

## 关键结果

- 在 SWE-bench-Verified 上，信号贡献排序为：Reproduction Test > Execution Context ≈ Edit Location > API Usage > Regression Test
- 在 SWE-bench-Live 和 Pro 上，排序变为：Reproduction Test > Execution Context ≈ API Usage > Edit Location > Regression Test
- 原生错误堆栈贡献显著高于自定义堆栈（如 SWE-bench-Verified 上 +23.5% vs +8.2%），因前者提供明确失败点
- API Usage 中 82% 为内部 API，18% 为外部库，表明仓库内搜索比外部文档检索更重要
- 五信号全组合时所有模型-基准组合成功率 ≥97%，证明五类信号构成完备信息集
- 两阶段验证中，Reproduction Test 提取成本最低（SWE-bench-Verified）或修复成本最低（SWE-bench-Live/Pro），且存在 >4 个实例仅通过代理生成 Reproduction Test 成功解决

## 局限与风险

- 五类信号分类基于文献观察，具有一定主观性，非 exhaustive 分解
- Oracle 信息注入方式（直接附加到 prompt）可能高估实际贡献，因现实场景中信号需由代理自行推断
- 自定义堆栈收集器在逻辑错误场景下信息价值有限，难以替代原生异常堆栈
- 实验限于 SWE-agent 框架，未测试更先进代理（如 Claude Code）是否呈现不同模式
- 未探索信号提取失败对下游修复的影响机制

## 适合沉淀的概念

`swe-agent`, `oracle-information-signals`, `reproduction-test`, `execution-context`, `edit-location`, `api-usage`, `regression-test`, `ablation-study`, `code-search`, `testcase-verification`

## 阅读注意

- 重点关注图 4 和图 5：前者展示单信号贡献，后者展示累积效应与步骤变化
- 注意表 3 中 native error stack 与 custom stack 的性能差异，理解 Execution Context 的有效性边界
- 附录 G 和 H 提供了信号注入与提取的具体 prompt 模板，具工程参考价值
- 结论强调 Reproduction Test 的核心作用，建议后续研究聚焦于高质量测试生成
- 两阶段验证实验设计巧妙，揭示了‘强提取 + 弱修复’策略的潜力

## 质量说明

- 采用来源：`raw`，`raw/papers/2026/04/2604.07789.md`
- 生成模型：`LongCat-Flash-Chat`
- 源材料判断：论文材料完整，包含方法、实验、结果与附录细节，数据充分支持结论。
