🤖 AI Summary
Existing large language models (LLMs) for automated program repair largely neglect collaborative development workflows and contextual code information, limiting repair quality. This paper proposes PATCH, a staged collaborative repair framework that decomposes the repair process into four sequential phases—error localization, root-cause diagnosis, patch generation, and validation—each executed via multi-turn LLM dialogues. To enhance reasoning fidelity, we explicitly integrate programmer intent modeling and static dependency analysis into prompt engineering and stage-wise prompt orchestration. To our knowledge, PATCH is the first approach to establish an interactive repair paradigm grounded in simulated collaborative software engineering behavior. Evaluated on the BFP benchmark, PATCH achieves substantial improvements over state-of-the-art methods: +12.3% absolute gain in patch accuracy and +18.7% improvement in compilability.
📝 Abstract
Bug fixing holds significant importance in software development and maintenance. Recent research has made substantial strides in exploring the potential of large language models (LLMs) for automatically resolving software bugs. However, a noticeable gap in existing approaches lies in the oversight of collaborative facets intrinsic to bug resolution, treating the process as a single-stage endeavor. Moreover, most approaches solely take the buggy code snippet as input for LLMs during the patch generation stage. To mitigate the aforementioned limitations, we introduce a novel stage-wise framework named PATCH. Specifically, we first augment the buggy code snippet with corresponding dependence context and intent information to better guide LLMs in generating the correct candidate patches. Additionally, by taking inspiration from bug management practices, we decompose the bug-fixing task into four distinct stages: bug reporting, bug diagnosis, patch generation, and patch verification. These stages are performed interactively by LLMs, aiming to simulate the collaborative behavior of programmers during the resolution of software bugs. By harnessing these collective contributions, PATCH effectively enhances the bug-fixing capability of LLMs. We implement PATCH by employing the powerful dialogue-based LLM ChatGPT. Our evaluation on the widely used bug-fixing benchmark BFP demonstrates that PATCH has achieved better performance than state-of-the-art LLMs.