- 简介自主程序改进通常涉及自动产生错误修复和功能添加。这种程序改进可以通过大型语言模型(LLM)和程序分析能力的组合来实现,形成一个LLM代理。由于程序修复或程序改进通常需要指定预期行为 - 规范推断可以用于产生高质量的程序补丁。在这项工作中,我们研究了在LLM代理内进行迭代规范推断的高效低成本工作流程。给定一个要解决的GitHub问题,我们的目标是进行迭代代码搜索,并伴随规范推断 - 从而从项目结构和行为中推断出意图。捕获的意图由评审代理进行检查,目的是审核补丁并提供审核补丁的信心度量。我们的方法SpecRover(AutoCodeRover-v2)是建立在开源LLM代理AutoCodeRover上的。在对由2294个GitHub问题组成的完整SWE-Bench进行评估时,它显示出比AutoCodeRover更高50%的效率改进。与可用的开源代理相比,我们的工作在解决SWE-Bench lite中的平均GitHub问题时显示出适度的成本(每个问题0.65美元)。SpecRover的解释产生允许更好地向开发人员提供“信号”,指示何时可以有信心接受建议的补丁。SpecRover还试图展示规范推断在自动化程序修复中的持续重要性,即使程序修复技术进入LLM时代。
-
- 图表
- 解决问题论文旨在解决自动程序修复中的规约推断问题,通过使用大型语言模型和程序分析能力,提出了一种低成本的迭代规约推断工作流,以提高程序修复的效率和质量。
- 关键思路论文提出了一种名为SpecRover的自动程序修复代理,它结合了迭代代码搜索和规约推断,以从项目结构和行为中推断意图。同时,通过评审代理对捕获的意图进行审核和评估,以提高修补程序的质量和可靠性。
- 其它亮点论文在SWE-Bench数据集上进行了评估,结果显示SpecRover的效果比AutoCodeRover提高了50%以上,而且解决一个典型的SWE-Bench lite中的GitHub问题的成本仅为0.65美元。此外,论文还强调了规约推断在自动程序修复中的重要性,并提供了解释来帮助开发人员更好地理解和接受建议的修补程序。
- 在相关研究方面,论文提到了一些与自动程序修复和规约推断相关的工作,如DeepFix、Prophet、Nate和SemFix等。
NEW
提问交流
提交问题,平台邀请作者,轻松获得权威解答~
向作者提问

提问交流