{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/autocoderover-autonomous-program-improvement","title":"AutoCodeRover: Autonomous Program Improvement","arxiv_id":"2404.05427","date":"2024-04-08","proceeding":null,"authors":["Yuntong Zhang","Haifeng Ruan","Zhiyu Fan","Abhik Roychoudhury"],"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 engineering oriented. We work on a program representation (abstract syntax tree) as opposed to viewing a software project as a mere collection of files. Our code search exploits the program structure in the form of classes/methods to enhance LLM's understanding of the issue's root cause, and effectively retrieve a context via iterative search. The use of spectrum-based fault localization using tests, further sharpens the context, as long as a test-suite is available. Experiments on SWE-bench-lite (300 real-life GitHub issues) show increased efficacy in solving GitHub issues (19% on SWE-bench-lite), which is higher than the efficacy of the recently reported SWE-agent. In addition, AutoCodeRover achieved this efficacy with significantly lower cost (on average, $0.43 USD), compared to other baselines. We posit that our workflow enables autonomous software engineering, where, in future, auto-generated code from LLMs can be autonomously improved.","url_abs":"https://arxiv.org/abs/2404.05427v3","url_pdf":"https://arxiv.org/pdf/2404.05427v3.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"autocoderover-autonomous-program-improvement","repo_url":"https://github.com/nus-apr/auto-code-rover","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"NOASSERTION"}},{"paper_slug":"autocoderover-autonomous-program-improvement","repo_url":"https://github.com/aorwall/swe-bench-docker","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"autocoderover-autonomous-program-improvement","repo_url":"https://github.com/autocoderoversg/auto-code-rover","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"NOASSERTION"}},{"paper_slug":"autocoderover-autonomous-program-improvement","repo_url":"https://github.com/deepsoftwareanalytics/omnigirl","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"NOASSERTION"}},{"paper_slug":"autocoderover-autonomous-program-improvement","repo_url":"https://github.com/liqs-v2/ctim-rover","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":null}],"tasks":[{"task_slug":"bug-fixing","task_name":"Bug fixing"},{"task_slug":"code-search","task_name":"Code Search"},{"task_slug":"fault-localization","task_name":"Fault localization"},{"task_slug":"program-repair","task_name":"Program Repair"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2404.05427","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2404.05427"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/aorwall/swe-bench-docker","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/liqs-v2/ctim-rover","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/deepsoftwareanalytics/omnigirl","reach":{"status":"ok","spdx":"NOASSERTION"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/nus-apr/auto-code-rover","reach":{"status":"ok","spdx":"NOASSERTION"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/autocoderoversg/auto-code-rover","reach":{"status":"ok","spdx":"NOASSERTION"}}],"summary":{"unverified":4},"by_repo_kind":{"official":{"samples":1,"ran":0,"repositories":1},"listed":{"samples":3,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":1,"samples":[{"code_sha256_prefix":"90090d115d078940","entry":"deterministic_hash","repo":"aorwall/swe-bench-docker","repo_kind":"listed","path":"run_evaluation.py","file_url":"https://github.com/aorwall/swe-bench-docker/blob/HEAD/run_evaluation.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"90090d115d078940"}},{"code_sha256_prefix":"fbce587543eb3027","entry":"get_instances","repo":"aorwall/swe-bench-docker","repo_kind":"listed","path":"swebench_docker/utils.py","file_url":"https://github.com/aorwall/swe-bench-docker/blob/HEAD/swebench_docker/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fbce587543eb3027"}},{"code_sha256_prefix":"e54aa5ec86f6063c","entry":"parse_test_output","repo":"aorwall/swe-bench-docker","repo_kind":"listed","path":"run_instance_tests.py","file_url":"https://github.com/aorwall/swe-bench-docker/blob/HEAD/run_instance_tests.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e54aa5ec86f6063c"}},{"code_sha256_prefix":"07299a3c29c33ec8","entry":"replace_html_tags","repo":"nus-apr/auto-code-rover","repo_kind":"official","path":"app/log.py","file_url":"https://github.com/nus-apr/auto-code-rover/blob/HEAD/app/log.py","link_basis":"plan_row","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"07299a3c29c33ec8"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}