SELF-EVOLVING MULTI-AGENT COLLABORATION NETWORKS FOR SOFTWARE DEVELOPMENT

题目

面向软件开发的自进化多智能体协作网络
在这里插入图片描述

论文地址:https://arxiv.org/abs/2410.16946
项目地址:https://github.com/yuzhu-cai/rSDE-Bench

摘要

    LLM驱动的多代理协作(MAC)系统已经在功能级的自动化软件开发中展示了令人印象深刻的能力。然而,它们对人类设计的严重依赖限制了它们对现实世界软件开发的多样化需求的适应性。为了解决这个限制,我们引入了EvoMAC,这是一种新的MAC网络自进化范例。受传统神经网络训练的启发,EvoMAC通过对照目标代理验证MAC网络的输出来获得基于文本的环境反馈,并利用新颖的文本反向传播来更新网络。为了将编码能力从功能级任务扩展到更具挑战性的软件级开发,我们进一步提出了面向需求的软件开发基准rSDE-Bench,它具有复杂多样的软件需求以及自动评估需求正确性的特点。我们的实验表明:I)rSDE-Bench中的自动需求感知评估与人工评估密切相关,验证了其作为软件级编码基准的可靠性。ii) EvoMAC在软件级rSDE-Bench和函数级HumanEval基准上均优于之前的SOTA方法,反映了其卓越的编码能力。该基准可以在https://yuzhu-cai.github.io/rSDE-Bench/.下载

简介

    自动软件开发侧重于从自然语言需求中生成代码。代码是一种通用的问题解决工具,这种自动化表现出巨大的潜力,为我们生活的各个领域提供实质性的好处李等人(2022a)。最近,业界推出了几款大型语言模型(LLM)驱动的编码助手,包括微软的Copilot Microsoft (2023),亚马逊的code whisper Amazon(2022),谷歌的Codey Google (2023)。这些编码助手极大地提高了人类的效率,并产生了可观的商业利益。尽管LLM在帮助行级编码方面取得了初步成功,但它们仍在努力处理更复杂的编码任务。这种局限性源于单个逻辑推理模块有限的推理能力和缺乏对长语境的理解能力王等(2024 a);李等(2024 a);王等(2024b)。

    为了处理功能级编码任务,已经提出了许多多语言代理协作(MAC)系统,李等人(2023);洪等(2023);Chan等人(2024);Islam等人(2024);杨等(2024 b);李等(2022 b);奥西卡(2023)。这些MAC系统充当LLMdriven代理工作流。他们遵循人类设计的标准化操作程序,将复杂的编码任务划分为工作流中更简单的子任务,允许每个代理征服特定的子任务。这些MAC系统极大地提高了从线路级到功能级任务的编码能力。然而,当前的MAC系统依赖于启发式设计。这些人工制作的静态系统有两个固有的限制:I)它们的性能受限于人工初始化。

    鉴于现实世界编码任务的多样性,人类设计无法完全解决每个任务的特定需求;以及ii)他们缺乏适应新任务的灵活性。这种僵化使得研究人员和开发人员必须手动分解任务并创建提示。这一过程的复杂性抑制了人类为适应新挑战而进行的有效优化。

    为了解决这些限制,我们提出了EvoMAC,一种新的MAC网络自进化范式。EvoMAC的关键特性是它能够在每个任务的测试期间迭代地调整代理和它们的连接。受标准神经网络训练的启发,自我进化的核心思想是通过对照目标代理验证MAC网络的生成来获得基于文本的环境反馈,然后利用新颖的文本反向传播来更新MAC网络。

    遵循这个通用范例,我们指定EvoMAC用于软件开发,它包括三个基本组件:

  1. 通过前馈生成代码的可适应的基于MAC网络的编码团队;
  2. 专门设计的测试团队,其创建用作目标代理的单元测试用例,并验证编译器中生成的代码以产生客观反馈;以及
  3. 使用文本反向传播算法来更新编码团队的更新团队。通过循环这三个组件,编码团队可以迭代地进化并生成与单元测试用例更好地一致的代码,最终完成编码任务的更多需求。

    我们自我进化的MAC网络有潜力将编码能力从功能级进一步提升到更复杂的软件级任务。因为它可以迭代地处理更长的任务需求,并迎合现实的软件开发需求。然而,现有的基准通常侧重于具体的个人功能陈等人(2021);奥斯汀等人(2021);杨等(2024 a);Khan等人(2023年)或bug修复Jimenez等人(2023年),在为软件开发提供全面的需求方面留下了显著的差距。这种差距使得我们很难充分评估自我进化的MAC网络的潜力。

    为了支持软件级编码能力的开发,我们提出了一种新的面向需求的软件开发基准rSDE-Bench。它是第一个以复杂多样的软件需求以及需求正确性的自动评估为特征的基准。rSDE-Bench涉及53个编码任务,616个需求,涵盖网站和游戏两种典型软件类型,以及基本和高级两个需求难度级别。每个编码任务由两个部分组成:

  1. 多个需求,这些需求清楚地逐项列出可测量的软件功能,以及
  2. 成对的黑盒测试用例,它们自动验证每个需求的正确性。

    rSDE-Bench可以利用这些同步的需求和测试用例对实现自动评估。rSDE-Bench引入了新的软件级挑战,包括冗长的需求分析和长上下文编码,这些在现实世界的软件开发中是必不可少的,但在现有的基准中却不存在。

    为了验证我们提出的EvoMAC和rSDE-Bench的有效性,我们进行了三项关键评估。首先,我们将rSDE-Bench中的自动评估与人工评估进行比较,获得了99.22%的一致性分数,证明了其可靠性。其次,我们将EvoMAC与五个多代理和三个单代理基准进行比较。EvoMAC在Website Basic、Game Basic和HumanEval上分别比之前的SOTAs高出26.48%、34.78%和6.10%,凸显了其有效性。第三,我们用不同的进化时间和两种不同的驱动LLM来评估EvoMAC。结果表明,EvoMAC随着时间的推移不断改进,无论使用何种驱动LLM,都表现出令人信服的增强,这进一步证明了我们自进化设计的有效性。

    综上所述,我们的贡献在于:

  1. 我们提出了EvoMAC,一种新颖的自进化MAC网络,并将其应用于软件开发。EvoMAC可以在每个任务的测试期间迭代地调整代理和它们的连接。
  2. 我们提出了rSDE-Bench,一种新颖的面向需求的软件开发基准。它是第一个以复杂多样的软件需求以及需求正确性的自动评估为特征的基准。
  3. 我们进行了全面的实验并验证:rSDE-Bench中的自动评估与人工评估高度一致;EvoMAC优于以前的SOTAs,自我进化承诺随着时代的发展不断改进。

相关工作

    基于LLM的多智能体协作。LLM驱动的多智能体协作(MAC)系统徐等(2023);华等(2023);Ziems等人(2024年);吴等(2023);洪等(2023);Chan等人(2024);Mandi等人(2024a)使多个代理能够共享信息并协作完成整个任务。这些MAC系统充当代理工作流。他们在不同领域表现出增强的问题解决能力,如数学伊斯兰等人(2024),软件开发钱等(2023);洪等(2023),具身任务曼迪等(2024b)和社会模拟Ziems等(2024);庞等(2024);李等(2024b)。然而,这些系统吴等人(2023);Chen等人(2023)严重依赖于手动设计的工作流,这些工作流缺乏可推广性,并且手动设计的劳动密集型特性造成了重大限制。为了解决这个问题,我们提出了一种新的自我进化范式,它允许智能体通过外部反馈进行更新和改进,从而实现动态适应和跨不同任务的更高级的性能。

    软件开发基准。软件开发基准旨在评估从自然语言描述生成代码任务中的模型郑等(2023)。这些基准通常包括任务定义和评估标准。现有的基准可以分为三类:

  1. 函数完备性(HumanEval Chen等人(2021),Austin等人(2021),EvalPlus Liu等人(2023),xCodeEval Khan等人(2023);
  2. 错误修复(SWE-bench Jimenez等人(2023));和
  3. 软件生成(钱等(2023),软件开发洪等(2023))。

    功能完成和缺陷修复基准局限于功能级的任务定义,忽略了多样化的实际软件需求。软件生成基准通常依赖于昂贵的人工评估或间接的基于相似性的度量,无法自动和准确地验证需求的正确性。为了解决这些限制,我们引入了rSDEBench,第一个基准包含了不同的软件需求和需求正确性的自动评估。它可以支持更现实的软件级编码能力的开发。

EVOMAC:自进化多代理协作网络

    本节介绍EVOMAC,一种新颖的自进化多代理协作网络及其在软件开发中的应用。EvoMAC的关键特性是它能够在每个任务的测试期间迭代地调整代理及其连接,模仿神经网络训练中的核心算法反向传播过程。我们首先在Sec中建立了一个通用的自我进化范式。然后描述它在软件开发中的应用。

通过文本反向传播多智能体协作网络的一般自进化范例。

    多代理协作(MAC)网络是表示代理工作流的计算图,其中由LLMs授权的多个代理作为互连节点进行交互,以协调和共享信息来解决复杂的任务。直觉将复杂的任务划分为更具体和更易管理的子任务,允许整个任务通过代理工作流逐渐被征服。数学上,我们把一个有N个自治代理的MAC网络表示为一个有向无环图A = (V,E),其中V = {vi} N i=1是N个节点的集合,E = {ei,j}i,j∈[1,…,N],i̸=j是没有圆的有向边的集合。第I个节点vi表示第I个自治代理,提示pi指定了它的子任务。边ei,j表示第I个代理和第j个代理之间的任务依赖关系,表示在代理工作流中,第j个代理的子任务应该在第I个代理的子任务之后执行。总体图拓扑指定了代理工作流。与传统的神经网络类似,代理的功能类似于神经元,代理提示充当神经元的权重,代理工作流充当层和连接。

    MAC网络的前馈传递是代理工作流的执行。在这个过程中,每个代理都有两个输入:初始任务需求和前一个代理的输出。使用这些,每个代理产生一个完成其特定子任务的输出。最后,最后一个代理的生成构成了最终的输出,集成了所有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三月七꧁ ꧂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值