论文

超越固定测试:存储库级问题解决作为代码和行为约束的共同演化

Beyond Fixed Tests: Repository-Level Issue Resolution as Coevolution of Code and Behavioral Constraints

摘要

解决存储库级问题的软件工程师不会将现有测试视为不可变的正确性预言。相反,他们会迭代地完善代码和用于表征预期行为的测试,因为新的修改会暴露缺失的假设或误解的故障条件。相比之下,大多数现有的基于 大语言模型 (LLM) 的修复系统采用线性管道,其中测试或其他验证信号主要充当事后过滤器,将行为约束视为修复期间固定的。这种公式减少了在静态和潜在错位约束下优化代码的修复,从而导致搜索约束不足以及修复脆弱或过度拟合。我们认为,存储库级别的问题解决从根本上来说不是固定测试下的优化,而是对不断变化的行为约束的搜索。为了实现这一观点,我们提出了 Agent-CoEvo,这是一种共同进化的多智能体框架,其中候选代码补丁和测试补丁被共同探索和迭代细化。我们的框架不是将测试视为不可变的预言,而是将它们建模为动态约束,既指导修复过程又由修复过程进行修改。通过相互评估和语义重组,代码和测试候选者逐渐缩小与问题描述一致的行为空间。在 SWE-bench Lite 和 SWT-bench Lite 上进行评估后,Agent-CoEvo 在修复成功率和测试再现质量方面始终优于最先进的基于代理和无代理的基准。我们的研究结果表明,使修复代理能够在搜索过程中修改行为约束对于可靠的问题解决至关重要,这表明从仅代码优化到实现和规范的共同进化的转变。