论文

编码代理的可运行提交梳理

Runnable Commit Untangling for Coding Agents

智能体系统模型评测应用与实践Agent 动作执行与治理评测方法与指标编程

摘要

编码代理会产生大而混乱的补丁,混合了多种开发目的,使得代码难以审查和维护。提交整理提供了将如此大的补丁组织成整理的、可管理的提交的承诺。本文强调了现有提交理清研究中的两个重要局限性。首先,他们不认为未整理的提交是有序的,并且应该使代码可运行。实际上,维护者不太可能接受阻止代码运行的提交。其次,现有研究声称提交梳理有助于软件维护。然而,他们在未缠结的提交和开发人员的原始提交之间进行语法比较,而没有直接显示声称的维护好处。为了解决这些差距,本文做出了两个新颖的贡献:(1)RucTangle,第一个 agentic 方法,它可以解开提交,同时在每次提交后保持代码可运行; (2) TangleEval,第一个评估框架,用于量化整理、可管理的提交历史记录如何帮助编码代理修复错误。我们 将 RucTangle 与 131 个代理生成的补丁上的四种解缠结方法进行比较。 RucTangle 生成的所有历史记录都是可运行的,而基线生成 20.6%-37.4% 不可运行的提交历史记录。我们进一步收集了 453 个由代理生成的补丁,这些补丁引入了回归(即导致之前通过的测试失败),并要求另外两个编码代理修复回归。使用 RucTangle 生成的历史增强代理上下文,在 pass@1 中产生了 5.2% 的绝对改进。我们还分析代理轨迹,以了解他们如何使用未缠结的提交来导航和修复错误。我们的研究结果证明了在编码代理时代采用已建立的软件工程实践的价值,这拓宽了未来的研究议程:代理如何积极地利用软件历史来做出更好的开发决策?