If It's Not Buggy, Don't Fix It: On the Dynamics of Iterative Bug-fixing with LLMs
作者: Xietao Wang-Lin, Anton Isopoussu, Louis Mahon
分类: cs.SE, cs.CL
发布日期: 2026-09-09
💡 一句话要点
揭示LLM在迭代修复中的伪修复现象及其动态特征
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 大型语言模型 自动程序修复 代码审查 伪修复循环 引导向量 软件开发 动态特征
📋 核心要点
- 现有的LLM在代码修复中存在误报问题,常常在无bug的代码中检测到bug,导致修复效率低下。
- 论文通过探讨LLMs的迭代修复过程,揭示了其在修复过程中可能进入伪修复循环的现象。
- 实验结果显示,LLMs在修复有bug程序的成功率低于对无bug程序的损害,且存在内部引导向量影响修复行为。
📝 摘要(中文)
大型语言模型(LLMs)在软件开发中已变得普遍,尤其是在代码审查过程中自动程序修复工具的应用日益增加。本报告探讨了LLMs作为bug修复工具的迭代盲用现象。研究发现,LLMs在完全无bug的程序中也声称检测到bug,而修复有bug程序的成功率却低于对正确程序的损害。此外,研究揭示了LLMs在迭代过程中常常进入伪修复循环,反复添加和删除相同的更改。通过机制探测,我们发现了一个控制编辑倾向的引导向量,表明LLMs内部存在“buggy代码”的表示,并且这种表示被错误激活以诱导伪修复。这些结果为完全自主的bug修复系统的动态特征及模糊目标下的停止条件提供了深刻的见解。
🔬 方法详解
问题定义:本论文旨在解决LLMs在迭代修复过程中频繁误报和伪修复的问题。现有方法在处理无bug程序时表现出错误的修复行为,导致修复效率低下。
核心思路:论文的核心思路是通过分析LLMs在迭代修复中的行为,揭示其内部机制和动态特征,尤其是伪修复循环的形成原因。
技术框架:研究采用多种LLM模型和修复环境进行实验,分析其在不同场景下的表现,重点关注修复成功率和误报率。
关键创新:最重要的技术创新在于发现了LLMs内部存在的引导向量,该向量控制了模型的编辑倾向,揭示了其对“buggy代码”的错误激活机制。
关键设计:在实验中,设计了多种修复场景,评估了不同模型在修复有bug和无bug程序时的表现,重点分析了模型的输出和修复效果。通过机制探测,深入分析了引导向量的特性和影响。
🖼️ 关键图片
📊 实验亮点
实验结果表明,LLMs在修复有bug程序的成功率低于对无bug程序的损害,且在多次迭代中表现出伪修复循环的现象。通过机制探测,发现了影响修复行为的引导向量,为理解LLMs的修复动态提供了新视角。
🎯 应用场景
该研究的潜在应用领域包括软件开发中的自动化程序修复工具,尤其是在代码审查和维护阶段。通过深入理解LLMs的修复动态,可以优化其在实际应用中的表现,减少误报和伪修复的发生,提高软件开发的效率和质量。未来,研究成果可能推动更智能的自动修复系统的发展。
📄 摘要(原文)
Large language models (LLMs) have become ubiquitous in software development, with LLM-based automated program repair tools increasingly used during code review. In this report, we explore the iterative blind use of LLMs as bug-fixers. Across multiple models and repair environments, we find that LLMs consistently claim to detect bugs in entirely bug-free programs while the rate of repair of buggy programs is less than that of the damage to correct programs. We also explore the long-term dynamics of this iterative process, and find that this frequently reaches a pseudo-bug-fixing cycle where the same changes are added and removed again ad infinitum. Lastly, via mechanistic probing, we unveil the existence of a steering vector which controls the editing propensity, suggesting that LLMs have an internal representation of ``buggy code", and that this representation is what is falsely activated to induce pseudo-bug fixing. These results provide insight towards the dynamics of fully autonomous bug-fixing systems, as well as stopping conditions under ambiguous goals.