📖标题:Diversity Empowers Intelligence: Integrating Expertise of Software Engineering Agents
🌐来源:arXiv, 2408.07060
摘要
大型语言模型(LLM)代理在解决实际软件工程(SWE)问题方面显示出巨大的潜力。最先进的开源SWE代理可以解决SWE-Bench Lite中超过27%的实际GitHub问题。然而,这些复杂的代理框架展示了不同的优势,在某些任务上表现出色,而在其他任务上则表现不佳。为了充分利用这些代理的多样性,我们提出了DEI(多样性增强智能),这是一个利用它们独特专业知识的框架。DEI作为现有SWE代理框架上面的元模块,管理代理集合以增强问题解决能力。实验结果表明,由DEI引导的代理委员会能够大幅度超越最佳个体代理的表现。例如,一组开源SWE代理,其在SWE-Bench Lite上的最大单个解决率为27.3%,可以通过DEI实现34.3%的解决率,提高了25%,并击败了大多数闭源解决方案。我们表现最佳的小组在SWE-Bench Lite上表现出55%的解决率,获得最高排名。我们的研究结果对于协作人工智能系统及其解决复杂软件工程挑战的潜力的研究有所贡献。
🛎️文章简介
🔸研究问题:不同软件工程代理(SWE agents)在不同上下文中表现不佳。
🔸主要贡献:论文提出了一个名为DEI的框架,充当现有SWE代理框架之上的元模块,利用每个代理在其各自上下文中的优势来提高整体性能。
📝重点思路
🔺相关工作
🔸基础语言代理:包括ReAct、Reflexion和CodeAct等。
🔸软件工程代理:包括Lingma、AutoCodeRover、Code-R等。
🔸多代理和集成代理:组织多个专门的代理执行任务分解,包括静态流程(预定义流程)、聊天集成(相互间的消息沟通机制)和模型集成(分层任务分配)。
🔺论文方案
🔸多样性定义:代理内的多样性(同一代理的不同运行解决不同问题实例的程度,源自模型本身解码和架构),代理间的多样性(不同代理解决不同问题实例的程度,源自代理设计的差异,包括不同的工具、工作流程和提示)
🔸DEI框架:引入了元策略(meta-policy),旨在根据上下文最优地选择可用的代理策略
🔸推理流程:首先检查候代码库以及其他相关上下文,然后根据上下文进行评分并给出解释,最后选择最优的代理策略。
🔸落地:实现了一个名为DEIBASE的DEI框架,专门针对SWE-Bench类问题。
🔺试验评估
🔸代理内和代理间的多样性如何?
🔸DEI在多大程度上可以利用这种多样性并提高这些SWE代理的性能?
🔎分析总结
🔸不同的SWE代理在解决的问题上显示出高度的多样性,即使它们的解决率相似。
🔸如果能够持续选择最佳代理策略,一组平均解决率为26.6%的代理可以共同解决54.3%的问题。
🔸DEI作为利用这种多样性的第一步,可以将组的解决率提高,表明LLM是非常好的代码审查者。
💡个人观点
论文的的核心是引入了多代理元策略模块,旨在利用SWE代理的多样性和不同能力的协作。
附录