强工作不再只是让模型输出 diff,而是包含定位、上下文检索、补丁生成、编译测试、失败反馈和正确性判定的一整套系统。
Software Engineering Empirical Research Radar
Repair 论文地图
先看每类工作的贡献、推进和难度,再决定自己的切入点。
读 repair 不能只问“修了多少个 bug”。更好的读法是:它改变了 pipeline 的哪一层?给了模型/算法什么信息?比谁强?代价是什么?失败案例暴露了什么下一步机会?
代表工作怎么贡献
| 工作 / 类型 | 核心贡献 | 推进了什么 | 难度与启发 |
|---|---|---|---|
| GenProg / RSRepair 搜索式 APR | 把程序补丁看成搜索空间,用测试作为 fitness 过滤。 | 奠定 generate-and-validate 范式:生成候选、跑测试、保留 plausible。 | 难点在搜索空间巨大、测试 oracle 弱、补丁容易 overfit;今天仍是理解 APR 的第一层。 |
| SemFix / Angelix 语义约束式 repair | 从失败路径和约束求解中合成表达式或条件。 | 推进了从随机搜索到语义约束的方向,强调 specification/test constraints。 | 工程适配难、语言/表达式范围受限;但它提醒我们 runtime evidence 不是新鲜玩具,而是 repair 的硬资产。 |
| TBar / template APR 模板式修复 | 从常见 bug-fix pattern 里套模板生成补丁。 | 在 Defects4J 等 benchmark 上建立了强传统 baseline。 | 模板覆盖有限,但很难被弱 LLM baseline 轻松打败;适合作为 related work 中的传统强线。 |
| AlphaRepair / CodeBERT-style repair 预训练模型 repair | 用代码预训练模型做补丁生成或 token 替换。 | 把 neural code model 引入 repair,连接传统 APR 与 LLM。 | 上下文窗口、真实编译反馈和多文件理解较弱;现在常作为 LLM repair 的前史。 |
| SRepair function-level LLM repair | 把 repair scope 放到 function level,让 LLM 在更完整的局部语义中修。 | 重要推进是反驳“必须先精确到 statement 才能修”的直觉;function scope 可能更适合 LLM。 | 难点是 scope 公平性:给 function 比给 top statement 信息更多,实验必须控制上下文长度和候选预算。 |
| RepairAgent agentic LLM repair | LLM 不只输出补丁,还能查文件、定位、改代码、运行测试并迭代。 | 推进到 autonomous repair loop,baseline 心智从 prompt 变成 agent workflow。 | 难点是可复现和预算公平:agent 每多看一个文件、多跑一次测试,都是额外信息。 |
| DebugRepair self-directed debugging + runtime evidence | 把 runtime/debugging evidence 纳入 LLM 修复循环。 | 说明运行时证据、自主 debugging 和 test feedback 是 2025--2026 的强方向。 | 难点是 evidence 不能泄漏 patch 或 gold fault;必须压缩成 patch-free、可复现、固定格式。 |
| SWE-bench / SWE-agent line issue-level agentic repair | 在真实 GitHub issue、仓库、多文件环境中让 agent 修 bug。 | 把 repair 从 benchmark function/method 推到真实工程任务。 | 成本和噪声很高,不适合第一篇从 FL/TCP 转 repair 的主实验;适合作为后续外部有效性。 |
今年最重要的变化
LLM 可能需要 method/function/file 级上下文。FL 的价值变成“如何限制和解释 scope”,而不是单纯给 top-1 line。
Defects4J 全测试通过只能说明 plausible。first-tier 论文会追问 overfitting、语义等价、人工审查和额外测试。
我们的机会不是把所有 trace 都塞给模型,而是把 00/06/07/08/09 的诊断结果压成短、稳、patch-free 的 advice。
我们的切入点
Diagnostic advice for LLM repair
最合适的 claim 不是“我们也做一个 repair agent”,而是:在同一 LLM、同一预算、同一 bug universe 下,诊断证据是否让 repair loop 更快、更准、更少 overfit。这里 FL/TCP/trace 背景不是包袱,是优势。