论文
通过代码属性图和时间执行图进行多视角代理程序修复
Multi-Perspective Agentic Program Repair via Code Property Graphs and Temporal Execution Graphs
摘要
大语言模型 (LLM) 改进了自动程序修复 (APR),但仍然存在两个限制。首先,原始执行跟踪通常太大且重复,无法用作有效的模型上下文。其次,重复的补丁采样可能会产生不同的实现,而不会产生不同的根本原因假设或修复策略。我们提出了 CT-Repair,一个代理 APR 框架,将静态和动态证据表示为可查询的代码属性图(CPG)和时间执行图(TEG)。 CT-Repair 采用三级过滤管道来构建紧凑的 TEG。三个有限状态机引导的代理从静态、动态和混合角度分析每个错误,并独立生成基于证据的修复策略。策略引导的生成过程将这些策略实例化为候选补丁,并使用验证反馈来完善最有希望的策略。我们对 Defects4J v3.0 中的 854 个 Java bug 进行了 CT-Repair 评估。在混合模型配置中,CT-Repair 正确修复了 489 个错误。在受控的 GPT-5.4-mini 配置下,它修复了 388 个错误,分别比 ReinFix 和 RepairAgent 多了 19 个和 30 个。三个证据视角的结合比最强的个人视角多修复了 99 个错误。过滤管道还压缩了运行时证据,执行过滤将候选方法范围平均缩小了 94.85%,行为过滤进一步将保留的运行时记录减少了 55.97%。这些结果表明,结构化运行时证据和多视角推理可以提高修复效率,而无需仅仅依赖于更大的补丁生成预算。