{"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/repograph-enhancing-ai-software-engineering","title":"RepoGraph: Enhancing AI Software Engineering with Repository-level Code Graph","arxiv_id":"2410.14684","date":"2024-10-03","proceeding":null,"authors":["Siru Ouyang","Wenhao Yu","Kaixin Ma","Zilin Xiao","Zhihan Zhang","Mengzhao Jia","Jiawei Han","Hongming Zhang","Dong Yu"],"abstract":"Large Language Models (LLMs) excel in code generation yet struggle with modern AI software engineering tasks. Unlike traditional function-level or file-level coding tasks, AI software engineering requires not only basic coding proficiency but also advanced skills in managing and interacting with code repositories. However, existing methods often overlook the need for repository-level code understanding, which is crucial for accurately grasping the broader context and developing effective solutions. On this basis, we present RepoGraph, a plug-in module that manages a repository-level structure for modern AI software engineering solutions. RepoGraph offers the desired guidance and serves as a repository-wide navigation for AI software engineers. We evaluate RepoGraph on the SWE-bench by plugging it into four different methods of two lines of approaches, where RepoGraph substantially boosts the performance of all systems, leading to a new state-of-the-art among open-source frameworks. Our analyses also demonstrate the extensibility and flexibility of RepoGraph by testing on another repo-level coding benchmark, CrossCodeEval. Our code is available at https://github.com/ozyyshr/RepoGraph.","url_abs":"https://arxiv.org/abs/2410.14684v2","url_pdf":"https://arxiv.org/pdf/2410.14684v2.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":"repograph-enhancing-ai-software-engineering","repo_url":"https://github.com/ozyyshr/repograph","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"code-generation","task_name":"Code Generation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2410.14684","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2410.14684"}},"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":"deterministic:regex_extraction","url":"https://github.com/ozyyshr/RepoGraph","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ozyyshr/repograph","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":8,"unverified":3},"by_repo_kind":{"official":{"samples":11,"ran":8,"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":0,"samples":[{"code_sha256_prefix":"68f55024cd46b001","entry":"append_exit","repo":"ozyyshr/RepoGraph","repo_kind":"official","path":"SWE-agent/inspector/server.py","file_url":"https://github.com/ozyyshr/RepoGraph/blob/HEAD/SWE-agent/inspector/server.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"68f55024cd46b001"}},{"code_sha256_prefix":"832400f6fa870791","entry":"append_patch","repo":"ozyyshr/RepoGraph","repo_kind":"official","path":"SWE-agent/inspector/server.py","file_url":"https://github.com/ozyyshr/RepoGraph/blob/HEAD/SWE-agent/inspector/server.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"832400f6fa870791"}},{"code_sha256_prefix":"5a33f78529e0932e","entry":"convert_experiments_to_rows","repo":"ozyyshr/RepoGraph","repo_kind":"official","path":"SWE-agent/evaluation/aggregate_results.py","file_url":"https://github.com/ozyyshr/RepoGraph/blob/HEAD/SWE-agent/evaluation/aggregate_results.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"5a33f78529e0932e"}},{"code_sha256_prefix":"1f22c693e99cde22","entry":"create_structure","repo":"ozyyshr/RepoGraph","repo_kind":"official","path":"repograph/utils.py","file_url":"https://github.com/ozyyshr/RepoGraph/blob/HEAD/repograph/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"1f22c693e99cde22"}},{"code_sha256_prefix":"cf1f71a0c4207992","entry":"get_args","repo":"ozyyshr/RepoGraph","repo_kind":"official","path":"SWE-agent/run_replay.py","file_url":"https://github.com/ozyyshr/RepoGraph/blob/HEAD/SWE-agent/run_replay.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"cf1f71a0c4207992"}},{"code_sha256_prefix":"fffe5e07e907c1c1","entry":"get_folders","repo":"ozyyshr/RepoGraph","repo_kind":"official","path":"SWE-agent/evaluation/aggregate_results.py","file_url":"https://github.com/ozyyshr/RepoGraph/blob/HEAD/SWE-agent/evaluation/aggregate_results.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"fffe5e07e907c1c1"}},{"code_sha256_prefix":"e84811899906e0d4","entry":"parse_folder_name","repo":"ozyyshr/RepoGraph","repo_kind":"official","path":"SWE-agent/evaluation/aggregate_results.py","file_url":"https://github.com/ozyyshr/RepoGraph/blob/HEAD/SWE-agent/evaluation/aggregate_results.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e84811899906e0d4"}},{"code_sha256_prefix":"233b4e2398b648a6","entry":"string2bool","repo":"ozyyshr/RepoGraph","repo_kind":"official","path":"SWE-agent/make_demos/convert_traj_to_demo.py","file_url":"https://github.com/ozyyshr/RepoGraph/blob/HEAD/SWE-agent/make_demos/convert_traj_to_demo.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"233b4e2398b648a6"}},{"code_sha256_prefix":"8b6946ae65eae8d8","entry":"append_results","repo":"ozyyshr/RepoGraph","repo_kind":"official","path":"SWE-agent/inspector/server.py","file_url":"https://github.com/ozyyshr/RepoGraph/blob/HEAD/SWE-agent/inspector/server.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8b6946ae65eae8d8"}},{"code_sha256_prefix":"dad9596c8ede1a8f","entry":"find_relative_path","repo":"ozyyshr/RepoGraph","repo_kind":"official","path":"SWE-agent/inspector/static.py","file_url":"https://github.com/ozyyshr/RepoGraph/blob/HEAD/SWE-agent/inspector/static.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"dad9596c8ede1a8f"}},{"code_sha256_prefix":"94dc3cbe589f0afa","entry":"parse_python_file","repo":"ozyyshr/RepoGraph","repo_kind":"official","path":"repograph/utils.py","file_url":"https://github.com/ozyyshr/RepoGraph/blob/HEAD/repograph/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"94dc3cbe589f0afa"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}