← 最新论文
💻 computer science

Specification Vibing for Automated Program Repair

VibeRepair 是一种以规范为中心的自动化程序修复技术,它通过将错误代码转换为结构化行为规范、修复这些规范中的失配问题,并根据修正后的意图合成修复方案,从而改进了以代码为中心的方法,并在多个基准测试中实现了显著更高的修复有效性。

原作者: Taohong Zhu, Lucas C. Cordeiro, Mustafa A. Mustafa, Youcheng Sun

发布于 2026-02-10
📖 1 分钟阅读☕ 轻松阅读

原作者: Taohong Zhu, Lucas C. Cordeiro, Mustafa A. Mustafa, Youcheng Sun

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下你正在试图修理一台损坏的机器。目前大多数修复计算机代码的方法(称为自动化程序修复,Automated Program Repair)就像是一个只盯着发动机零件看,并试图盲目更换它们的机械师。他们猜测哪里出了问题,换掉一个零件,检查是否有效,如果无效,就再换另一个零件。这经常导致“幻觉”——即那些看起来修好了、但实际上以新方式破坏了机器的修复方案,因为机械师并没有真正理解机器为什么会坏。

论文 《用于自动化程序修复的规范感知(Specification Vibing for Automated Program Repair)》 介绍了一种名为 VibeRepair 的新方法。与其仅仅更换发动机零件,VibeRepair 更像是一位大师级建筑师,在动第一块砖之前,先写好一份新的蓝图。

以下是它的工作原理,分为简单的步骤:

1. 问题所在:“以代码为中心”的陷阱

目前的 AI 工具试图通过直接观察混乱的代码并重写它来修复漏洞。这就像是在不理解你想讲述的故事的情况下,仅通过观察拼写错误来修复一个句子。AI 可能会修复拼写,但改变了故事的含义,或者它可能会发明一个逻辑不通的新故事。

2. 解决方案:“Vibe”修复(蓝图法)

VibeRepair 改变了游戏规则。它不是直接修复代码,而是修复规范(即“Vibe”或预期的行为)。把规范想象成一份食谱或一套关于程序“应该”做什么的指令,而不是代码本身。

这个过程分为三个阶段:

  • 阶段 1:翻译(“有缺陷的蓝图”)
    AI 将损坏的代码转化为一段文字描述,描述这段代码“认为”自己在做什么。由于代码是损坏的,所以这个描述也是有缺陷的。这就像是询问一位困惑的厨师,让他写下他做咸味蛋糕的食谱;写出来的食谱是错的,但现在我们有了一份可以被修复的文件。

  • 阶段 2:修复(修正食谱)
    这是核心创新点。AI 查看这份有缺陷的食谱和测试结果(这些结果告诉我们蛋糕味道不对)。它会问:“厨师原本应该做什么?”然后它会重写食谱以符合正确的意图。

    • “Vibe”检查: 如果食谱仍然令人困惑,AI 可以请来一位“推理智能体(Reasoning Agent)”。这个智能体就像一位资深顾问,通过查看类似的过往错误和工具来帮助确定到底哪里出了问题。不过,只有当第一次尝试失败时,AI 才会调用这位昂贵的顾问,从而节省时间和成本。
  • 阶段 3:生成(根据新食谱烘焙)
    一旦食谱(规范)变得完美,AI 就会根据它从头开始烘焙蛋糕(编写代码)。因为食谱现在是正确的,生成的蛋糕(代码)就能保证符合预期的行为。

3. 为什么它效果更好

作者在数千个真实世界的漏洞上测试了这种方法(使用 Defects4J 和 Real-World Bugs 等数据集)。

  • 更高的成功率: VibeRepair 修复的漏洞显著多于现有最好的工具。在一项重大测试中,它比之前的领先者多修复了 28 个漏洞。
  • 更少的猜测: 虽然其他工具可能会尝试数千次随机的代码更改来观察是否奏效,但 VibeRepair 因为受到修正后的“食谱”引导,尝试次数要少得多。它更加精准。
  • 独特的解决方案: 它找到了其他工具完全错过的解决方案,证明它比仅仅观察语法更能理解代码的“意图”。

核心总结

作者用一句朗朗上口的话总结了他们的哲学:“让行为鸣响,代码自会随之而来。”

VibeRepair 不是强迫 AI 去猜测正确的代码,而是强迫 AI 先就程序“应该做什么”(行为)达成一致。一旦这个“Vibe”(氛围/意图)对了,编写实际代码就会变成一项更简单且更准确的任务。它将重心从“修复文本”转向了“修复想法”。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →