中国电子商会信息工程测试专业委员会主办
今天是
中国电子商会信息工程测试专业委员会
产教融合共同体
资源共享 您的位置: 主页 > 产教融合共同体 > 资源共享
面向软件工程的基于大语言模型的多智能体系统综述
2025-12-30 返回列表

面向软件工程的基于大语言模型的多智能体系统:文献综述、愿景与未来道路


本次介绍的综述论文 《LLM-Based Multi-Agent Systems for Software Engineering: Literature Review, Vision and the Road Ahead》发表在TOSEM 2025上,来自新加坡管理大学等科研团队的研究工作。


图片


将大型语言模型(LLMs)整合到自主智能体中,标志着研究领域的重大转变,因为这赋予了智能体与人类规划和推理能力相竞争的认知能力。本文探讨了将大型语言模型整合到多智能体(LMA)系统中的变革潜力,以应对软件工程(SE)中的复杂挑战。通过利用多智能体的协作与专长能力,LMA 系统能够实现自主问题解决,提高鲁棒性,并为管理现实软件项目的复杂性提供可扩展的解决方案。

本文通过系统回顾近期的核心研究,对 LMA 在软件开发生命周期(SDLC)各阶段的应用现状进行全景梳理。为了展示当前的能力与局限性,本文进行了两个案例研究,以演示最先进 LMA 框架的有效性。此外,本文识别了关键研究空白,并提出了全面的研究议程,重点在于提升单个智能体的能力和优化智能体协同效应。本文勾勒出面向未来的愿景——开发完全自主、可扩展且可信赖的 LMA 系统,为软件工程 2.0 的演进奠定基础。


图片

研究背景

图片

自主智能体

自主智能体是一种计算实体,旨在在动态环境中独立且有效地运行。其核心属性包括:

  • 自主性:能够在无需外部控制的情况下独立管理自身的行为和内部状态。

  • 感知能力:通过感知机制检测周围环境的变化。

  • 智能与目标驱动:利用领域知识和问题解决能力,针对特定目标开展任务。

  • 社会能力:能够与人类或其他智能体交互,管理社会关系以实现目标。

  • 学习能力:持续适应、学习并整合新的知识和经验。

基于 LLM 的自主智能体

形式上,基于 LLM 的智能体可由元组 ⟨?, ?, ?, ?, ?, ?⟩ 描述,其中:

  • ?(大型语言模型):作为智能体的认知核心,具备广泛知识,并可针对特定领域进行微调,使其能够基于观察、反馈和奖励做出明智决策。适用于该角色的 LLM 通常在大规模多样化文本语料上训练,参数量达数十亿,例如 ChatGPT、Claude、Gemini 等模型。这些模型具有强大的零样本和少样本学习能力,能够在几乎无需额外训练的情况下,对新任务进行泛化。与 LLM 的交互通常通过提示(prompt)进行,引导其推理与响应。

  • ?(目标):智能体希望实现的期望结果或目标,定义了智能体的关注点,驱动战略规划和任务分解。

  • ?(记忆):存储历史和当前状态的信息,以及来自外部交互的反馈。

  • ?(感知):表示智能体感知、解释和理解周围环境及输入的能力。感知可处理来自文本、视觉输入或传感器等多种来源的结构化和非结构化数据,使智能体能够将原始信息转化为指导决策和行动的有意义洞察。

  • ?(行动):涵盖智能体执行的各类操作,包括使用工具或与其他智能体交流。

?(反思):行动后的反思过程,评估结果与反馈,并结合存储的记忆。基于这些洞察,智能体随后采取进一步行动。

基于 LLM 的多智能体系统

多智能体系统是由多个交互智能体组成的计算框架,这些智能体通过协作解决复杂问题或实现单个智能体无法完成的目标。智能体之间进行沟通、协调和知识共享,通常具有专长以处理跨领域任务。随着 LLM 的引入,基于 LLM 的多智能体系统(LMA)应运而生。本文将 LMA 系统定义为由两大核心组件组成:编排平台和基于 LLM 的智能体。

(1)编排平台

编排平台是管理智能体之间交互和信息流的核心基础设施,促进协调、沟通、规划和学习,确保系统高效一致地运行。其主要特征包括:

  • 协调模型:定义智能体的交互方式,例如合作型(为共享目标协作)、竞争型(追求可能冲突的个人目标)、层级型(具有领导-追随关系)或混合型。

  • 通信机制:确定智能体之间信息流动的方式,包括集中式(由中央智能体协调通信)、分散式(智能体直接通信)或层级式(信息通过权威层级传递)。此外,还定义智能体之间交换的数据类型,通常为文本形式。在软件工程场景中,可能包括代码片段、提交信息、论坛帖子、缺陷报告或漏洞报告。

  • 规划与学习模式:规定多智能体系统内的规划和学习方式,包括任务分配与协调策略,例如集中规划、分散执行(CPDE)——集中规划,智能体独立执行任务;或分散规划、分散执行(DPDE)——规划与执行均分布在各智能体之间。

(2)基于 LLM 的智能体

每个智能体可具有独特能力和专长角色,从而增强系统处理多样化任务的能力。智能体可分为:

  • 预定义或动态生成:智能体配置可显式预定义,或由 LLM 动态生成,实现灵活适应。

  • 同质或异质:智能体功能可能完全相同(同质)或具备不同功能与专长(异质)。

每个基于 LLM 的智能体可表示为图 ?(?, ?) 中的节点 ??,其中边 ??,? ∈ ? 表示智能体 ?? 与 ?? 之间的交互。


图片

已有工作分析

图片


3.1 需求工程

需求工程关注软件系统需求的定义与管理。该学科划分为若干关键阶段,以确保需求符合质量标准并满足利益相关者的需求,这些阶段包括需求获取、建模、规范化、分析与验证。

Elicitron 是一个专注于需求获取阶段的多智能体框架。它利用基于 LLM 的智能体来模拟多样化用户,这些智能体通过模拟产品交互,提供关于用户需求的洞察,展示其行为、观察和面临的挑战。

MARE 是一个覆盖需求工程多个阶段的多智能体框架,包括需求获取、建模、验证和规范化。它使用五类不同的智能体——利益相关者、收集者、建模者、检查者和文档编写者——执行九类操作,以帮助生成高质量的需求模型和规范。

另一个框架提出了一种多智能体协作流程,用于生成、评估和优先排序用户故事。该流程涉及四类智能体:产品负责人、开发者、质量保证(QA)和管理者。产品负责人生成用户故事并发起优先级排序,QA 智能体评估故事质量并识别风险,开发者根据技术可行性进行优先排序,最后管理者整合各方输入,并在与所有智能体讨论后完成最终优先级排序。


3.2 代码生成

代码生成一直是软件工程研究的重要方向,旨在自动化编码任务,提高生产力并减少人为错误。

多智能体代码生成系统通常基于角色分工和迭代反馈循环来优化智能体间协作。常见的角色包括编排者、程序员、审查者、测试者和信息检索者。

编排者 作为中央协调者,负责高层规划,确保各智能体顺利执行任务。其职责包括定义战略目标、将其拆分为可执行子任务、分配任务、监控进度,并确保工作流程与整体项目目标一致。例如,PairCoder 框架中的导航智能体负责将自然语言描述转化为高层计划,概述解决方案和关键实施步骤;驱动智能体随后按照计划执行代码生成与优化。

自组织智能体(SoA) 框架采用层级设计,母智能体管理高层抽象,并将子任务分配给专门的子智能体。

在 CODES 框架中,编排者角色由 RepoSketcher 执行,其将高层自然语言需求转化为代码仓库草图,概述项目结构,包括目录、文件及文件间依赖关系。随后,RepoSketcher 将任务分配给 FileSketcher 和 SketchFiller,确保完整、功能性代码仓库的高效创建。

在实现阶段,该过程通常由程序员开始,程序员负责编写代码的初始版本。初始代码生成后,审查者和测试者等角色会介入,对代码的质量、功能以及对需求的符合性进行评估,并提供建设性反馈。这些反馈触发了一个迭代循环,程序员据此优化代码,或者调试者解决发现的问题,以确保最终代码符合预期标准并能够正常运行。

例如,INTERVENOR 框架将代码学习者与代码教师配对。代码学习者生成初始代码并进行编译以验证其正确性。如果发现问题,代码教师会分析错误报告及有缺陷的代码,并提供修复指令来解决错误。Self-repair 和 TGen 框架则通过运行预定义测试用例获得的反馈来优化代码。

在预定义测试用例不可用的情况下,测试者可以生成多种测试用例,包括常规场景和边界情况。这些测试有助于发现可能被忽略的细微问题,并提供可操作的反馈以指导后续迭代优化。

一些框架采用信息检索智能体来收集相关信息以辅助代码生成。例如,Agent4PLC 和 MapCoder 引入检索智能体,负责寻找类似问题的示例并提取相关知识。该智能体提供针对用户输入的关键上下文信息和参考,确保解决方案充分利用领域特定的最佳实践。类似地,CodexGraph 使用翻译智能体与图数据库交互,这些数据库通过静态分析构建,提取代码符号及其关系。通过将用户查询转化为图查询语言,该智能体实现了精确且结构化的信息检索,提升了基于 LLM 的智能体在代码库中导航和利用的能力。

Agent Forest 采用了不同的范式,而非角色专门化。它使用采样-投票框架,由多个智能体独立生成候选输出,然后根据输出间的相似度进行评估,为每个候选计算累计相似度分数。最终选择得分最高的输出,即智能体间达成最大共识的结果,作为最终解决方案。


3.3 软件质量保证

在本节中,本文回顾了与测试、漏洞检测、缺陷检测和故障定位相关的工作,重点介绍 LMA 系统在提升软件质量保证过程中的应用。

测试: Fuzz4All 框架能够为多种编程语言的软件系统生成测试输入。在该框架中,蒸馏智能体负责精简用户输入,而生成智能体负责创建和变异测试输入。AXNav 旨在自动化无障碍测试,它能够解释自然语言的测试指令并在 iOS 设备上执行无障碍测试(如 VoiceOver)。AXNav 包括计划智能体、执行智能体和评估智能体。WhiteFox 是一个针对编译器优化的模糊测试框架,它使用两个基于 LLM 的智能体:一个从源代码中提取需求,另一个生成测试程序。此外,LMA 系统还应用于渗透测试、用户验收测试以及图形用户界面测试等任务。

漏洞检测: GPTLens 是用于智能合约漏洞检测的 LMA 框架。该系统包括作为审计员的 LLM 智能体,每个智能体独立识别潜在漏洞。随后,评审智能体对这些漏洞进行审查和排序,过滤掉误报并优先处理最关键的漏洞。MuCoLD 框架分配测试者和开发者角色来评估代码,通过讨论和迭代评估,智能体对漏洞分类达成共识。跨验证技术则通过让多个 LLM 的回答互相验证,提升漏洞检测的可靠性。

缺陷检测: 智能代码分析智能体(ICAA)用于静态代码分析中的缺陷检测。智能体可以使用网络搜索、静态分析和代码检索等工具。报告智能体生成缺陷报告,而误报修剪智能体则优化报告以减少误报。此外,ICAA 还包括代码意图一致性检查,通过分析代码注释、文档和变量名,确保代码符合开发者预期的功能。

故障定位:RCAgent 在云环境中执行根因分析,通过 LLM 智能体收集系统数据、分析日志并诊断问题。AgentFL 将故障定位分为三个阶段:理解智能体识别潜在故障区域,导航智能体缩小代码库搜索范围,确认智能体使用调试工具验证故障。


3.4 软件维护

在本节中,本文探讨与调试和代码审查相关的工作,并强调 LMA 系统在自动化和提升软件维护过程中的作用。

调试: 调试涉及识别、定位和解决软件缺陷。若干框架遵循包括缺陷复现、故障定位、补丁生成和验证等阶段的结构化流程。每个阶段通常由专门的智能体负责。FixAgent 包含调试智能体和程序修复智能体,通过分析错误和修复迭代地修正代码。该系统利用修复反馈优化故障定位,并通过智能体的思维过程提升上下文感知的调试能力。MASTER 框架采用三类专门智能体:代码测验智能体从有缺陷的代码生成测验问题,学习者智能体提出解决方案,教师智能体审查并优化学习者的回答。AutoCodeOver 通过基于光谱的方法进行故障定位,并与其他智能体合作,利用抽象语法树等程序表示优化补丁。SpecRover 在此基础上通过迭代搜索和基于推断代码意图的规范分析改进程序修复。ACFIX 针对智能合约的访问控制漏洞,挖掘常见的 RBAC 模式以指导智能体生成修复补丁。DEI 通过元策略选择最佳方案,整合并重新排序由不同智能体生成的补丁以优化问题解决。SWE-Search 包含三个智能体:自适应探索智能体、与蒙特卡洛树搜索模块配合的价值智能体以及通过辩论进行协作决策的判别智能体。RepoUnderstander 构建完整软件仓库的知识图谱,并使用蒙特卡洛树搜索辅助理解复杂依赖关系。

代码审查:自动化代码审查系统能够识别缺陷、检测代码异味并提供优化建议,以提升代码质量并支持开发者教育。该系统使用四类专门智能体,分别负责代码审查、缺陷检测、代码异味识别和优化。同样,CodeAgent 执行代码审查任务,包括漏洞检测、一致性检查和格式验证。监督智能体 QA-Checker 确保智能体间交互的相关性和一致性。

测试用例维护:多智能体架构可用于预测哪些测试用例在源代码更改后需要维护。智能体的任务包括总结代码变更、识别维护触发因素以及定位相关测试用例。


3.5 端到端软件开发

端到端软件开发涵盖了创建软件产品的整个流程。传统代码生成通常仅限于生成孤立组件,如函数、类或模块,而端到端开发从高级软件需求出发,经过设计、实现、测试,最终交付完整、可用的软件产品。

在实践中,开发者和利益相关者通常采用既定的软件流程模型以指导协作,如敏捷和瀑布模型。类似地,LMA 系统在端到端软件开发中的设计借鉴了这些流程模型。开发过程被划分为不同阶段,如需求收集、软件设计、实现和测试,每个阶段由具备领域专长的智能体管理。

需要注意的是,诸如 FlowGen 和 Self-Collaboration 的工作模拟了不同的软件流程模型,但其实验主要集中于生成代码片段,而非交付完整的软件产品。因此,本文不将这些方法视为真正的端到端软件开发。

一些工作采用瀑布模型来自动化软件开发。这类多智能体方法将软件开发过程划分为明确、顺序的阶段,每个阶段必须完成后才能进入下一阶段。主要阶段包括需求分析、架构设计、代码开发、测试和维护。例如,在 MetaGPT 框架中,产品经理智能体详细分析用户需求,架构师智能体将这些需求转化为系统设计组件,工程师智能体根据设计实现指定的类和函数,质量保证工程师智能体则创建并执行测试用例,确保代码达到严格的质量标准。这类方法强调线性和顺序化的设计过程,确保每个阶段的结构清晰且责任明确。

AgileCoder 和 AgileGen 则采用敏捷流程模型,强调通过将复杂任务拆分为小增量实现迭代开发。AgileCoder 分配敏捷角色,如产品经理和 Scrum Master,以促进基于迭代的协作与开发循环。AgileGen 通过人机协作增强敏捷实践,确保需求与生成代码的一致性,并使用 Gherkin 语言创建可测试的需求,从而在用户需求和代码实现之间建立桥梁。

尽管大多数方法依赖预定义角色和固定工作流,一些工作投资于动态流程模型。Think-on-Process (ToP) 引入动态流程生成框架,根据软件需求和 LLM 知识生成定制化流程实例,为 LMA 系统的架构提供蓝图,并适应不同项目的具体需求。类似地,在 MegaAgent 中,智能体的角色和任务不是预定义的,而是根据项目需求动态生成和规划。ToP 和 MegaAgent 强调从静态、刚性的工作流向动态、适应性系统的转变,承诺实现更高效、灵活和上下文感知的软件开发实践。

此外,一些工作关注利用历史软件项目经验来提升新项目开发。Co-Learning 框架通过提取任务执行历史中的启发式信息,增强智能体的软件开发能力,实现指导者与助手两角色的合作学习。基于此,迭代经验优化框架(IER)使智能体通过获取、利用和选择性优化历史任务经验,不断适应新任务,提高在动态软件开发场景中的有效性和协作能力。


图片


图片

研究机遇

图片


2025-12-30_103727_110.png

第一阶段:增强单个智能体能力

确实,LMA 系统的有效性与其各个智能体的能力密切相关。第一阶段的重点是提升这些智能体的技能,特别关注其在软件工程中的适应能力以及专业技能的获取。通过本文的初步研究问题,进一步探索基于 LLM 的单个智能体在软件工程中的潜力:

(1)哪些软件工程角色适合由基于 LLM 的智能体扮演,以及如何增强其能力以胜任这些角色?

(2)如何设计高效、灵活且稳健的提示语言,以提升基于 LLM 的智能体的能力?

第二阶段:优化智能体协同

在第二阶段,重点转向优化智能体协同,强调协作的重要性以及如何利用各个智能体的多样化优势。本阶段关注智能体之间的内部动态,以及外部人工干预在提升 LMA 系统效能中的作用。指导本阶段的关键研究问题包括:

(3)如何在人工与基于 LLM 的智能体之间实现任务的最佳分配?

(4)如何量化智能体协作对整体任务表现和结果质量的影响?

(5)如何将 LMA 系统扩展到大规模项目?

(6)可以应用于 LMA 系统的工业化组织机制有哪些?

(7)哪些策略能够使 LMA 系统动态调整其工作方法?

(8)如何确保 LMA 系统中私有数据共享的安全性?


5.2.1 人机协作

在LMA系统中,优化人类与智能体之间的任务分配以发挥各自优势至关重要。人类在创造力、批判性思维、伦理判断及领域知识方面具备独特优势,而基于LLM的智能体则擅长快速处理大量数据、执行重复性任务并发现人类可能忽略的模式。

现状:当前已有若干LMA系统采用人类在环(human-in-the-loop)设计。例如,AISD在需求分析和系统验证阶段引入人类反馈,用户可以对用例、系统设计和原型提供意见。MARE系统利用人类评估来优化生成的需求和规范。尽管这些工作展示了人类参与的可行性,但如何优化人类角色、增强反馈机制以及确定适当的干预时机仍有待深入研究。

机会:制定针对不同角色的指导方针非常必要,以明确何时以及如何进行人类干预,尤其是在涉及伦理决策、冲突解决、歧义处理和创造性问题解决等关键节点。为了实现高效协作,需要设计直观的用户界面和交互协议,例如自然语言接口和自适应可视化技术,使人类能够高效理解智能体输出并提供反馈,同时降低认知负担。界面应针对不同角色定制,例如项目经理关注高层影响,而开发人员或架构师则需要查看具体实现细节。

此外,可通过预测模型确定不同项目类型和阶段下的最佳人类与智能体比例,这些模型需要考虑项目复杂度、时间限制、优先级以及人类与智能体的能力与局限,从而实现任务合理分配,充分发挥人类创造力与智能体效率。

5.2.2 LMA系统评估

现状:现有多项复杂基准用于评估LLM在代码生成等软件开发关键任务中的能力,尽管这些基准提供了可量化指标,但主要聚焦于单独任务,无法反映复杂软件项目中的协作性需求,例如联合需求收集、代码集成及同行评审等。

机会:亟需开发能够评估多智能体协作能力的基准,模拟真实软件开发场景,要求智能体协同完成共同目标。具体任务包括:

  • 参与协作设计:贡献设计方案并达成统一架构。

  • 任务分配与协调:根据专业能力合理分配任务,管理依赖关系。

  • 识别冲突与协商:能够实时发现逻辑、目标或执行上的冲突,并提出折中方案,保持团队目标一致。

  • 组件集成与同行评审:无缝整合成果,评审彼此代码并提供建设性反馈。

  • 主动澄清请求:在存在不确定性时主动获取额外信息,确保任务完成质量。

开发此类基准需构建长期多智能体协作的真实项目场景,并提供可控的观察与测量平台,同时设计全面的评估指标,不仅衡量最终产出,还评估协作过程,如沟通效率、冲突管理及整体项目成功度。

5.2.3 复杂项目的规模化

现状:随着项目复杂度提升,单一智能体可能难以胜任整个任务。例如,ChatDev未能自主开发完整的Tetris游戏。

机会

  • 任务分解与层级管理:将高层需求分解为可管理子任务,高层智能体负责总体目标,低层智能体执行具体任务。

  • 通信与内存优化:制定高效通信协议与消息优先策略,避免信息过载,同时优化内存分配。

  • 信息一致性与冲突处理:采用中央知识库或黑板系统确保信息一致性,并实现自动错误处理。

  • 决策优化:通过层级或共识机制减少讨论轮次,提高决策效率。

5.2.4 借鉴工业原则

基于LLM的智能体可模仿人类开发者执行SE任务,因此借鉴成熟工业组织的管理方法有助于提升系统设计和优化效率。现有系统多采用瀑布或敏捷模型,但对价值流图、设计思维、MBSE、DDD、BDD及团队拓扑等现代实践利用不足。通过引入领导治理结构、项目管理工具、设计模式及软件架构最佳实践,LMA系统能够生成结构良好、可维护、可扩展且可复用的代码,同时提高透明度和进度监控能力。

5.2.5 动态适应

软件开发任务复杂多变,预测LMA系统的最优配置几乎不可能,因此系统需要动态调整规模、策略和结构。

现状:多数现有LMA系统采用静态架构,固定智能体角色与通信模式。近期研究尝试引入自适应团队选择及任务协作策略,但仍无法实现实时动态调整。

机会

  • 可重用性与学习:通过分析开发循环中效率模式,识别可复用元素并优化未来任务处理。

  • 智能体数量动态调整:根据任务需求增减智能体或生成具有新角色的新智能体,并提供项目上下文知识以实现快速整合。

  • 智能体角色重定义:项目演变时重新分配或修改角色职责以适应新需求。

  • 资源管理:动态分配内存与计算资源,确保系统高效运行。

  • 实时监控与终止判断:通过监控与反馈循环判断任务完成时机,利用机器学习分析历史数据优化停止条件。

5.2.6 隐私与部分信息

在多组织开发中,数据常因隐私、专有限制及法规要求而孤立,导致智能体获取信息受限。

现状:在计算机安全领域,隐私与部分信息管理已被广泛研究,但在SE的LMA系统中仍缺乏解决方案。

机会:细粒度访问控制:跨组织实施访问控制机制,确保未经授权不可访问,同时满足系统多样化数据需求,可扩展RBAC和ABAC模型。

  • 隐私保护技术:可采用差分隐私、SMPC、联邦学习或同态加密等技术,实现安全协作而不泄露数据。

  • 遵循法规:确保遵守GDPR、CCPA等法规,实施数据最小化、同意管理及“被遗忘权”。

  • 数据一致性与透明性:通过分布式数据库、数据同步机制以及区块链或分布式账本技术,提高数据透明度、可追踪性与防篡改性。



信息来源:通大智能软工课题组  陈翔


二维码
中国电子商会信息工程测试专业委员会 电话:010-87660482 传真:010-87660482 邮箱:ceietn@sina.com 地址:北京经济技术开发区博兴六路17号院1号楼3层(100176)
Copyright © 2021-2027 中国电子信息工程与测试网 版权所有 主办单位:中国电子商会信息工程测试专业委员会 技术支持:电设信科(北京)技术有限公司 备案号:京ICP备11002915号-001