基于角色的多智能体代码生成在仓库级问题上的评估
An Evaluation of Role-Based Multi-Agent Code Generation on Repository-Scale Problems
📝 TLDR
面向仓库级代码生成任务,传统单LLM方案难以应对复杂工程场景。本文评估基于角色分工的多智能体代码生成方法,在12个Java代码库上系统对比其与单LLM及人类开发者的差异。实验表明,多智能体方案生成代码与开发者代码的相似度显著高于单LLM,但在功能完整性与工程实践上仍落后于人工实现。该研究为多智能体协作在真实软件工程中的应用提供了量化基准。
🧭 速览
现有LLM代码生成研究多聚焦小型编程任务,难以处理仓库级复杂工程问题,需探索更有效的协作方法。
采用基于角色分工的多智能体协作框架,在12个Java代码库上评估其生成效果,并与单LLM及人类实现进行对比。
多智能体方案生成代码与开发者代码相似度高于单LLM,但在实现质量上仍与人类存在持续差距。
角色化多智能体方法在仓库级代码生成中优于单LLM,但尚未达到人类开发者水平,值得深入研究。
📊 论文图表(共 6 张)
展开查看 6 张图
TL;DR
本文评估了基于角色分工的多智能体代码生成方法在仓库级 Java 项目上的表现。研究发现,相比单 LLM 方案,多智能体协作能生成与人类开发者更为相似的代码结构,但整体功能完整性和工程实现质量仍存在显著差距。该工作为真实软件工程场景中多智能体系统的应用提供了量化参考。
研究背景与动机
软件开发中的代码生成任务长期以来是人工智能领域的重要研究课题。从早期的基于模板的代码补全,到近年来 [[大语言模型]] 驱动的代码生成,研究者们始终在探索如何让机器更高效地辅助人类开发者完成编程工作。然而,当任务规模从单个函数扩展到整个代码仓库时,传统的单模型方案往往显得力不从心。仓库级代码生成不仅要求模型理解局部代码逻辑,还需要把握全局的依赖关系、模块接口以及项目特有的编码规范,这种复杂的上下文理解需求对单模型构成了严峻挑战。
基于这一观察,研究者开始探索将任务分解并由多个专业化模型协作完成的方案,即 [[多智能体系统]] 在代码生成领域的应用。基本假设是:不同角色(如代码审查员、架构师、实现者)可以各司其职,通过协作弥补单模型的局限性。然而,这种多智能体方案在真实仓库环境中的实际效果如何,与人类开发者的差距究竟有多大,这些问题尚缺乏系统的量化评估。本文的切入正是为了填补这一空白,为多智能体代码生成技术的实用化提供实证依据。
方法
本文评估的基于角色的多智能体代码生成框架采用了一种角色分工的协作架构。系统中的每个智能体被赋予特定的角色职责,例如分析需求的理解者、负责架构设计的规划者、执行具体编码的实现者,以及进行代码审查的校验者。这些角色之间通过预定义的通信协议交换中间结果,形成一个流水线式的协作流程。
在具体实现上,框架首先接收来自真实仓库的问题描述作为输入,随后各角色按序启动工作。理解者负责解析问题的语义范围,识别需要修改或新增的代码位置;规划者根据理解结果设计解决方案的总体框架;实现者负责生成具体的代码片段;校验者则对生成代码进行静态分析和一致性检查。整个过程中,每个角色都可以访问仓库的上下文信息,包括相关的依赖文件、接口定义以及既有代码风格。
研究者选取了 12 个真实的 Java 开源仓库作为评估对象,这些仓库涵盖了从工具库到业务系统的多种类型,确保了评估结果具有较好的代表性。评估指标主要包括两个维度:一是生成代码与仓库维护者实际提交代码的 [[代码相似度]],用于衡量生成结果在结构层面的吻合程度;二是功能完整性与工程实践的达成度,用于衡量生成代码是否真正满足需求且符合工程标准。
实验与结果
实验设计采用了受控对比的方法,将多智能体方案与单 LLM 基线以及人类开发者的实际提交进行横向比较。在代码相似度指标上,多智能体方案展现出明显的优势:其生成代码与开发者代码的相似度显著高于单 LLM 处理同一任务时的结果。这一发现支持了角色分工有助于生成更符合项目规范代码的假设——不同角色各自发挥专长,使得最终输出在风格和结构上更接近人类开发者的习惯做法。
然而,功能完整性方面的评估结果则揭示了更复杂的图景。尽管多智能体方案在代码外观上更接近人类作品,但在实际运行效果上仍存在明显差距。具体而言,生成代码在边界条件处理、异常情况覆盖以及与其他模块的集成方面,往往不如人类实现来得周全。此外,在工程实践层面,多智能体生成的代码有时会在依赖管理、版本兼容性和可维护性等方面出现疏漏,这些都是真实项目中人类开发者长期积累的隐性知识尚未被模型充分捕捉的体现。
定量结果方面,多智能体方案在相似度指标上相对单 LLM 提升显著,但在功能性评测中的通过率仍停留在较低水平。这一反差说明,当前多智能体框架在“看起来像代码”这件事上学得不错,但在“真正管用”这件事上还有很长的路要走。
讨论与可借鉴点
本研究为 [[多智能体系统]] 在软件工程领域的应用提供了宝贵的实证数据,其核心启示在于:角色分工确实能带来收益,但收益主要集中在代码形式层面而非功能实质层面。这意味着当前多智能体代码生成距离替代人类开发者仍有相当距离,但在辅助开发——例如快速生成符合项目风格的代码骨架——方面已展现出潜力。
研究同时暴露了若干待解决的问题。首先是功能性差距的根源:当前框架缺乏对运行时行为和集成效果的显式建模,导致生成代码在端到端场景中表现不佳。其次是评估指标的局限性——代码相似度作为代理指标虽然便于自动化计算,却不能完全反映代码的实际价值。未来的工作可以从增强智能体对测试反馈的利用、引入更强的代码执行验证机制,以及设计更贴近真实开发流程的评估范式等方向展开。
对于从事相关方向的研究者和工程师而言,本文的方法论也提供了有益借鉴:在真实仓库而非构造数据集上评估,是检验代码生成实用价值的必要条件;而将相似度与功能性分开考量,则有助于更清晰地诊断当前技术的优势与短板。
摘要
基于角色的多智能体代码生成旨在使大语言模型在仓库级问题上更加有效,超越小型编程任务的范畴。我们在 12 个 Java 仓库上对该方法进行了评估,发现其生成的代码与开发者代码具有更高的相似度,但与人类实现之间仍存在持续的差距。
Abstract
Role-based multiagent code generation aims to make LLMs more effective on repository-scale problems, moving beyond small programming tasks. We evaluate this approach on 12 Java repositories, finding greater similarity to developer code than single LLMs, but a persistent gap from human implementations.
✨ 编译论文
点「✨ 编译」开始,LLM 会按 Polaris 风格翻译并把图片/表格嵌到对应位置。结果存到浏览器 localStorage,下次访问自动加载。





