← 最新论文
💻 computer science

EviACT: An Evidence-to-Action Framework for Agentic Program Repair

EviACT 是一个面向智能体程序修复的“从证据到行动”框架,它协调检索、编译和测试驱动的防护机制,在显著降低 API 成本的同时大幅提升缺陷修复率,优于现有基线方法。

原作者: Qianru Meng, Xiao Zhang, Zhaochun Ren, Joost Visser

发布于 2026-05-27
📖 1 分钟阅读☕ 轻松阅读

原作者: Qianru Meng, Xiao Zhang, Zhaochun Ren, Joost Visser

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

想象一下,你有一个非常聪明但有时过于急躁的机器人助手,它的职责是修复一个庞大软件库中的损坏代码。这个软件库就像一个拥有数百万本书(文件)且彼此间存在复杂连接的多层巨型图书馆。

本文介绍了一个名为EVIACT(从证据到行动)的新系统。请将 EVIACT 不仅仅视为一个机器人,而是一位拥有严格安全规则的机器人侦探,以防止它在试图修复问题时让情况变得更糟。

以下是其工作原理,使用简单的类比说明:

问题所在:“胡乱猜测”的机器人

在 EVIACT 出现之前,许多 AI 修复系统的工作方式就像这样:侦探收到一条线索(错误报告),然后开始疯狂地搜索整个图书馆,猜测哪本书出了问题,并在未检查新页面是否合理的情况下重写页面。

  • 错误: 它们经常找错地方(定位错误)。
  • 浪费: 它们试图以导致代码无法编译的方式修复已经损坏的内容(就像试图用水来粘合书页)。
  • 成本: 它们浪费大量时间和金钱,反复测试这些糟糕的猜测。

解决方案:EVIACT 的三道“护栏”

EVIACT 通过为机器人在进入下一步之前必须通过的三个特定“护栏”(安全检查点)来改变游戏规则。它将混乱的猜测游戏转变为结构化的调查。

1. “检索脚手架”(制图者)

  • 作用: 在机器人查看代码之前,它利用错误消息(“线索”)构建一张精确的地图。
  • 类比: 想象你在建筑物里听到一声撞击声。机器人不是跑向每一个房间,而是根据撞击声和建筑蓝图判断:“声音来自三楼厨房,靠近水槽。”它忽略建筑物的其余部分。
  • 结果: 它阻止了机器人在错误的文件中浪费时间。它只专注于那些实际上与错误相关的特定“嫌疑人”(代码部分)。

2. “编译关卡”(语法警察)

  • 作用: 在允许机器人运行代码以查看其是否有效之前,先检查代码是否可读。
  • 类比: 想象机器人为故事写了一个新句子。在向编辑展示之前,“语法警察”会进行检查。如果句子缺少句号,或者使用了一个不存在的单词,警察会立即阻止它。
  • 结果: 机器人永远不会在损坏或“格式错误”的代码上浪费时间运行测试。它在进入昂贵的测试阶段之前就过滤掉了垃圾内容。

3. “测试驱动关卡”(现实核查)

  • 作用: 这是一个两步检查。首先,机器人必须证明它修复了引发调查的特定问题。只有在那之后,它才会检查该修复是否破坏了其他内容。
  • 类比: 想象一名机械师在修理一辆无法启动的汽车。
    • 步骤 1(红灯): 机械师转动钥匙。如果汽车仍然无法启动,他们立即停止并尝试不同的修复方法。他们不会在那时开车绕街区行驶。
    • 步骤 2(绿灯): 一旦汽车启动,然后他们开车绕街区行驶,以确保没有弄坏刹车或收音机。
  • 结果: 这防止了机器人在一辆仍然无法启动的汽车上花费数小时进行完整的“路测”(回归测试)。

结果:更快、更便宜、更智能

作者在四个不同的“含错代码”挑战中,将 EVIACT 与其他顶级 AI 修复系统进行了测试。

  • 成功率: EVIACT 修复的漏洞比竞争对手更多(成功率提高了 1.6% 到 6.0%)。
  • 效率: 运行成本要低得多。因为它停止在糟糕的猜测和损坏的代码上浪费时间,所以其使用的资金(计算成本)比其他系统减少了 70% 到 88%
  • 原因: 论文表明,这些改进并非来自机器人在通用意义上变得更“聪明”,而是来自护栏将其保持在正确的轨道上。当机器人陷入困境时,通常是因为它找不到正确的文件或无法理解代码的含义,而不是因为它犯了愚蠢的语法错误。

总结

EVIACT 就像将一个在仓库里四处奔跑、猜测损坏物品位置的维修团队,升级为一个拥有检查清单的专家团队

  1. 利用证据定位确切位置。
  2. 在尝试修复之前验证修复内容在语法上是否正确。
  3. 在检查整个系统之前确认特定问题已得到解决。

这种简单、结构化的方法使得自动化软件修复变得更加可靠且更具成本效益。

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

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

试用 Digest →