AutoCodeRover: Autonomous Program Improvement
Yuntong Zhang, Haifeng Ruan, Zhiyu Fan, Abhik Roychoudhury

TL;DR
AutoCodeRover is an innovative system that combines large language models with program structure analysis to autonomously improve software by fixing issues and enhancing code, demonstrating higher efficacy and lower costs on real-world GitHub issues.
Contribution
The paper introduces AutoCodeRover, a novel approach integrating LLMs with program structure search and fault localization for autonomous program improvement.
Findings
Increased efficacy in solving GitHub issues (19%) on SWE-bench-lite.
Achieved lower cost per issue ($0.43 USD) compared to baselines.
Effective use of program structure and spectrum-based fault localization.
Abstract
Researchers have made significant progress in automating the software development process in the past decades. Recent progress in Large Language Models (LLMs) has significantly impacted the development process, where developers can use LLM-based programming assistants to achieve automated coding. Nevertheless, software engineering involves the process of program improvement apart from coding, specifically to enable software maintenance (e.g. bug fixing) and software evolution (e.g. feature additions). In this paper, we propose an automated approach for solving GitHub issues to autonomously achieve program improvement. In our approach called AutoCodeRover, LLMs are combined with sophisticated code search capabilities, ultimately leading to a program modification or patch. In contrast to recent LLM agent approaches from AI researchers and practitioners, our outlook is more software…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Embedded Systems Design Techniques · Distributed and Parallel Computing Systems
