RPG:一种用于统一且可扩展代码库生成的存储库规划图

新技术3个月前发布 小马良
76 0

微软、清华大学和加州大学圣地亚哥分校的研究人员推出一个名为 Repository Planning Graph (RPG) 的框架,用于从头开始生成完整的软件仓库。它通过将软件的功能规划和实现规划统一到一个图结构中,解决了从高级用户意图到复杂软件结构的转换问题。RPG 通过明确的蓝图取代了自然语言的模糊性,使得长期规划和可扩展的仓库生成成为可能。

例如,你需要从头开始开发一个机器学习库,RPG 可以帮助你规划出库的结构,包括数据加载模块、算法模块、评估模块等,并且能够生成相应的代码框架。通过 ZeroRepo 框架,你可以逐步填充这些模块的具体实现,并通过测试验证其正确性。最终,你将得到一个功能完整、结构清晰的机器学习库。

RPG:一种用于统一且可扩展代码库生成的存储库规划图

主要功能

  • 功能规划与实现规划的统一:RPG 将软件的功能目标和实现设计编码到一个图中,节点表示功能和文件结构,边表示语义关系和数据流。
  • 从头开始的仓库生成:基于 RPG,开发了一个名为 ZeroRepo 的框架,它通过三个阶段(提案级规划、实现级细化和图引导的代码生成)来生成完整的软件仓库。
  • 测试验证:生成的代码通过测试驱动开发(TDD)进行验证,确保功能的正确性和稳定性。

主要特点

  • 结构化表示:RPG 提供了一个结构化的表示方法,避免了自然语言的模糊性和不稳定性。
  • 长期规划能力:支持长期规划和逐步扩展,使得软件仓库的生成更加系统和可扩展。
  • 复杂依赖关系的建模:能够捕捉模块间的数据流和类级别的关系,支持更复杂的软件结构。
  • 提高代理理解能力:RPG 作为一个全局的功能导向表示,提高了代理对软件仓库的理解能力,加速了开发过程。

工作原理

  1. 提案级规划:将用户需求转化为功能图,通过检索大规模功能树中的节点来组织和细化需求。
  2. 实现级规划:将功能图扩展为完整的 RPG,包括文件结构、接口和数据流的编码。
  3. 图引导的代码生成:按照 RPG 的拓扑顺序进行代码生成,应用测试驱动开发,逐步实现和验证功能。

测试结果

  • 功能覆盖和准确性:在 RepoCraft 基准测试中,ZeroRepo 达到了 81.5% 的功能覆盖和 69.7% 的通过率,超过了最强基线(Claude Code)27.3 和 35.8 个百分点。
  • 代码规模:ZeroRepo 生成的仓库平均有 36K 行代码,约为 Claude Code 的 3.9 倍,其他基线的 64 倍。
  • 扩展性和稳定性:RPG 支持功能和代码规模的近线性扩展,保持了结构的一致性和可扩展性。

应用场景

  • 软件开发:RPG 可以用于从头开始生成完整的软件仓库,适用于需要从零开始构建复杂软件系统的情况。
  • 自动化开发:通过 ZeroRepo 框架,可以实现自动化的软件仓库生成,提高开发效率。
  • 教育和研究:为软件工程教育和研究提供了一个强大的工具,帮助学生和研究人员更好地理解和实践软件开发过程。
© 版权声明

相关文章

暂无评论

none
暂无评论...