RPG: A Repository Planning Graph for Unified and Scalable Codebase Generation
作者: Jane Luo, Xin Zhang, Steven Liu, Jie Wu, Jianfeng Liu, Yiming Huang, Yangyu Huang, Chengyu Yin, Ying Xin, Yuefeng Zhan, Hao Sun, Qi Chen, Scarlett Li, Mao Yang
分类: cs.CL, cs.AI, cs.SE
发布日期: 2025-09-19 (更新: 2025-10-20)
💡 一句话要点
提出RPG,用于统一和可扩展的代码库生成
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 代码库生成 大型语言模型 知识图谱 自动化软件开发 代码规划
📋 核心要点
- 现有方法依赖自然语言进行代码库规划,易产生模糊规范和脆弱设计,难以生成大型代码库。
- 提出代码库规划图(RPG),以结构化方式统一表示代码库的能力、结构、数据流和函数。
- ZeroRepo框架基于RPG,在RepoCraft基准测试中显著优于现有方法,代码量提升明显,覆盖率和准确率均有提高。
📝 摘要(中文)
大型语言模型在生成单个函数或代码文件方面表现出色,但从头开始生成完整的代码库仍然是一个根本性的挑战。这种能力是构建来自高级规范的连贯软件系统并充分发挥自动化代码生成潜力的关键。该过程需要在两个层面上进行规划:决定构建哪些特性和模块(提议阶段)以及定义它们的实现细节(实现阶段)。当前的方法依赖于自然语言规划,由于其固有的模糊性和缺乏结构,通常会产生不清晰的规范、未对齐的组件和脆弱的设计。为了解决这些局限性,我们引入了代码库规划图(RPG),这是一种结构化表示,它在统一的图中编码了能力、文件结构、数据流和函数。通过用显式蓝图替换自由形式的自然语言,RPG 能够为代码库生成实现一致的长期规划。基于 RPG,我们开发了 ZeroRepo,这是一个图驱动的框架,它在三个阶段运行:提议级规划、实现级构建以及带有测试验证的图引导代码生成。为了评估,我们构建了 RepoCraft,这是一个包含 1,052 个任务的六个真实世界项目的基准。在 RepoCraft 上,ZeroRepo 平均生成近 36K 行代码和 445K 个代码 Token,比最强的基线(Claude Code)大 3.9 倍,比其他基线大 68 倍。它实现了 81.5% 的覆盖率和 69.7% 的测试准确率,比 Claude Code 提高了 27.3 和 35.8 个百分点。进一步的分析表明,RPG 可以对复杂的依赖关系进行建模,通过接近线性的扩展实现更复杂的规划,并提高代理对代码库的理解,从而加速定位。
🔬 方法详解
问题定义:论文旨在解决从头开始生成完整代码库的难题。现有方法依赖自然语言规划,存在模糊性、结构缺失等问题,导致生成代码库时出现规范不清晰、组件未对齐、设计脆弱等问题。这些问题限制了自动化代码生成的潜力。
核心思路:论文的核心思路是使用结构化的代码库规划图(RPG)来代替自由形式的自然语言进行代码库的规划和生成。RPG 能够显式地表示代码库的能力、文件结构、数据流和函数,从而避免自然语言的模糊性,实现一致的长期规划。
技术框架:ZeroRepo 框架包含三个主要阶段:1) 提议级规划:使用 RPG 确定需要构建的特性和模块。2) 实现级构建:根据 RPG 的规划,确定每个模块的实现细节。3) 图引导代码生成与测试验证:利用 RPG 指导代码生成,并进行测试验证,确保代码质量。
关键创新:关键创新在于提出了代码库规划图(RPG),这是一种结构化的知识表示方法,能够统一表示代码库的各种信息,包括能力、文件结构、数据流和函数。RPG 使得代码库的规划和生成过程更加清晰、可控和高效。与现有方法相比,RPG 避免了自然语言的模糊性,能够实现更精确和一致的规划。
关键设计:论文中没有详细描述关键参数设置、损失函数或网络结构等技术细节。RPG 的具体图结构设计(节点和边的类型、属性等)以及图的构建和推理算法是关键的设计细节,但论文摘要中未提及。
🖼️ 关键图片
📊 实验亮点
ZeroRepo 在 RepoCraft 基准测试中表现出色,平均生成近 36K 行代码和 445K 个代码 Token,比最强的基线 Claude Code 大 3.9 倍,比其他基线大 68 倍。ZeroRepo 实现了 81.5% 的覆盖率和 69.7% 的测试准确率,相比 Claude Code 分别提高了 27.3 和 35.8 个百分点。这些数据表明 ZeroRepo 在代码库生成方面具有显著的优势。
🎯 应用场景
该研究成果可应用于软件开发的自动化,尤其是在快速构建原型系统、生成特定领域的应用程序以及进行代码库的自动化维护和演化等方面具有重要价值。通过降低代码生成的门槛,可以加速软件创新,提高开发效率,并降低开发成本。未来,该技术有望应用于更复杂的软件系统,例如操作系统、数据库等。
📄 摘要(原文)
Large language models excel at generating individual functions or single files of code, yet generating complete repositories from scratch remains a fundamental challenge. This capability is key to building coherent software systems from high-level specifications and realizing the full potential of automated code generation. The process requires planning at two levels: deciding what features and modules to build (proposal stage) and defining their implementation details (implementation stage). Current approaches rely on natural language planning, which often produces unclear specifications, misaligned components, and brittle designs due to its inherent ambiguity and lack of structure. To address these limitations, we introduce the Repository Planning Graph (RPG), a structured representation that encodes capabilities, file structures, data flows, and functions in a unified graph. By replacing free-form natural language with an explicit blueprint, RPG enables consistent long-horizon planning for repository generation. Building on RPG, we develop ZeroRepo, a graph-driven framework that operates in three stages: proposal-level planning, implementation-level construction, and graph-guided code generation with test validation. To evaluate, we construct RepoCraft, a benchmark of six real-world projects with 1,052 tasks. On RepoCraft, ZeroRepo produces nearly 36K Code Lines and 445K Code Tokens, on average 3.9$\times$ larger than the strongest baseline (Claude Code), and 68$\times$ larger than other baselines. It achieves 81.5% coverage and 69.7% test accuracy, improving over Claude Code by 27.3 and 35.8 points. Further analysis shows that RPG models complex dependencies, enables more sophisticated planning through near-linear scaling, and improves agent understanding of repositories, thus accelerating localization.