ICLR 2024 Oral | GitHub狂揽30k星,MetaGPT:嵌入SOPs显著增强多智能体协作能力

2024-02-07 13:44 603 阅读 ID:1868
将门
将门

LLM Agent领域第一高分论文,全网Star数最高的多智能体框架。MetaGPT - 结合元编程思想,嵌入SOPs来增强大规模语言模型(LLMs)在多智能体协作上的能力。通过角色专业化,工作流管理和灵活的消息机制,使其成为通用性和可移植性高的多智能体框架。结合迭代式的反馈机制,MetaGPT在多个基准测试上取得了最先进的性能。结合人类社会实践的SOPs,启发了未来对于多智能体社会的研究和探索,也可视为对基于LLM的多智能体框架进行调节的早期尝试。

在探索大规模语言模型(LLMs)的应用上,自主智能体展现了巨大的潜力,能够增强和模拟人类工作流程。目前研究主要集中在以角色扮演形式驱动LLMs,通过多轮对话解决问题。然而,在面对更为复杂的任务时,简单地连接多个LLM可能导致解决问题的不可控性,难以满足实际需求。人类通过长期实践积累了各种领域的标准操作流程(SOPs),这些SOPs在任务分解和角色协作中发挥着关键作用。

受此启发,DeepWisdom团队在2023年6月开源了MetaGPT框架,火爆全网,并联合KAUST AI中心、厦门大学、CUHK(SZ)、南京大学、UPenn以及UCB等众多高校机构的学者进行了广泛深入的研究,为多智能体协作锚定了有效范式。MetaGPT创新性地将SOPs编码为智能体的设计规范和协议,进而实现了人类领域知识的自动嵌入。这一工作为更好地理解和模拟人类工作流程提供了新的途径,为自主智能体在各种任务中的表现和适应性带来了新的可能性。

                                                   MetaGPT与真实世界人类团队之间的软件开发SOPs

在这项研究中,研究者首先在代码补全任务上对MetaGPT的效果进行了测试。在公开数据集HumanEval和MBPP上,MetaGPT分别取得了85.9%和87.7%的新的最先进水平(SoTA)。与此同时,研究团队构建了一个包含70个典型软件开发任务的数据集SoftwareDev,并将MetaGPT的表现与其他Agent框架的开源工作[1][2][3][4]进行了比较。结果显示,MetaGPT在任务完成率和生成的代码质量方面表现出显著的优势,表明MetaGPT在软件开发领域具有出色的性能。

论文题目: 

MetaGPT: Meta Programming for A Multi-Agent Collaborative Framework 

论文链接:

https://arxiv.org/abs/2308.00352 

代码链接: 

https://github.com/geekan/MetaGPT

一、动机

随着LLM能力的不断提升,基于LLM的智能体来解决各种任务在学术界和工业界的兴趣日益增长。值得注意的是,对于采用多个智能体协作解决特定领域问题的研究仍处于早期阶段。现有研究[3][4][5]主要集中在通过角色扮演机制和通信拓扑设定来增强任务理解和推理决策能力。尽管取得了一定进展,但这些方法仍然依赖于直接的对话形式,缺乏对智能体行为的标准规范和约束。近期的一些工作也指出,基于对话形式的多智能体系统可能面临信息不一致、歧义以及可能的无效重复和无限循环等问题[5][6]。

相较之下,人类工作流程中的标准操作流程(SOPs)不仅明确定义了参与角色的分工和拓扑结构,还建立了角色产出结果的标准规范。研究表明,明确定义的SOPs可以提高任务执行的一致性和准确性,确保最终结果符合规定的质量标准。因此,为解决多智能体协作中的挑战,作者设计了基于LLM的智能体元编程框架MetaGPT。

MetaGPT要求智能体以专家形式参与协作,并按要求生成结构化的输出,例如高质量的需求文档、架构设计图和流程图等。结构化的输出对于单个智能体即是更高层次的思维链(Chain-of-Thought),对于下游角色则是语义清晰、目标明确的上下文(Context)。

二、方法

在MetaGPT的框架中,作者将SOPs的概念对齐至角色专业化、通信协议设计以及迭代式的可执行反馈设计。

2.1 角色专业化

通过明确定义的角色分工,复杂的工作得以分解为更小、更具体的任务。如下图所示,不同专业的角色,初始化为不同的目标和约束,以及不同的专业技能。如产品经理角色可以使用网络搜索工具,而工程师角色可以执行代码。与此同时,每个角色都默认遵循ReAct的行为模式。

                             MetaGPT 软件开发流程示意图,表明定义明确的SOPs可以带来较好的效果

角色专业化使得每个智能体能够专注于其领域内的具体任务,从而提升了LLMs的输出质量。对于软件开发而言,通过角色的流转,这种分工更巧妙地完成了从自然语言到编程语言的对齐。论文中的角色消融实验进一步证明了这一部分的效果。

2.2 通信协议设计

在实际应用中,自然语言虽然具备语义的丰富性,但由于其非结构化的特性,在消息传递过程中常常会导致信息的歪曲甚至重要内容的丢失。为解决这一问题,作者约束智能体以结构化的输出(包括文档和图表)参与协作,来提高信息的清晰度和完整性。为验证这一设计,作者设计了多种软件开发任务,通过生成代码的可执行性以及生产力指标强调结构化输出在协作中的关键性。

                                                 通信协议示意图(左)和可迭代的执行反馈流程(右)

在多智能体协作过程中,为提高通信效率,MetaGPT引入了基于消息共享的发布-订阅机制(Publish-Subscribe Mechanism)。如上图所示,共享消息池允许直接交换消息,任何智能体都可以透明地访问来自其他智能体的消息,无需询问并等待响应。订阅机制使智能体更倾向于接收与自我任务相关的信息,避免分心于不相关的细节。同时,每个智能体可直接从共享消息池中检索所需信息,形成自我记忆。

2.3 可执行反馈

智能体根据环境反馈进行自我优化和主动更新,是智能体具备自主意识的表现。在软件开发任务上,MetaGPT为工程师的智能体设计了可执行反馈机制,以进行代码质量自动优化。具体而言,工程师编写并执行相应的单元测试用例,通过观察到的执行结果,递归地进行决策和自我提示,实现自动debug。这种设计-测试-反馈的迭代过程持续进行,直到单元测试通过或达到最大重试次数。

三、实验

3.1 实验设置

在代码生成能力上,作者采用了两个公开基准数据集:HumanEval和MBPP,并报告Pass@1指标。另外,他们还收集了涵盖70个典型软件开发任务(如迷你游戏、数据可视化、图像处理等)的数据集SoftwareDev,并进行了多个智能体开源框架的对比,对多个软件开发任务的可执行性和生产效率上进行了统计分析和定性说明。

3.2 实验结果

如下图所示,MetaGPT在HumanEval和MBPP基准测试中均优于之前的方法,分别达到了85.9%和87.7%。相比于GPT-4的结果,MetaGPT在HumanEval数据集上相对提升了28.2%,而加入可执行反馈机制分别在HumanEval和MBPP上提升了4.2%和5.4%。

                                               不同方法在HumanEval和MBPP数据集上的Pass@1指标

在具有挑战性的SoftwareDev数据集上,MetaGPT在可执行性上的得分为3.75,非常接近4,而所需的运行时间较短(503秒);生成的代码行数相对基线框架增加了2.24倍,而单位代码行数所消耗的token数下降了50%。这些结果突显了多智能体协作过程中SOPs带来的效率提升。

                                                       MetaGPT在SoftwareDev上运行结果展示

MetaGPT在软件开发任务中的高可执行性和相对较短的运行时间表明了其在实际应用中的实用性和效率。更多实验设置细节可参考论文,代码细节将持续更新github。

论文链接:   

https://arxiv.org/abs/2308.00352 

代码链接:   

https://github.com/geekan/MetaGPT

                                                           在SoftwareDev数据集上的统计分析

聚焦在软件开发领域,作者提供了不同智能体框架能力的定性对比。由图可见,MetaGPT不仅具备多种模态的文件生成能力,也是目前众多框架中唯一完整覆盖了真实世界中软件开发过程的开源框架。

                                                                      不同框架能力的定性分析

四、总结与展望

MetaGPT是一个新颖的多智能体框架,结合元编程思想,嵌入SOPs来增强大规模语言模型(LLMs)在多智能体协作上的能力。通过角色专业化,工作流管理和灵活的消息机制,使其成为通用性和可移植性高的多智能体框架。结合迭代式的反馈机制,MetaGPT在多个基准测试上取得了最先进的性能。结合人类社会实践的SOPs,启发了未来对于多智能体社会的研究和探索,也可视为对基于LLM的多智能体框架进行调节的早期尝试。

参考

[1]Torantulino et al."Auto-gpt.https://github.com/Significant-Gravitas/".2023.

[2]Harrison Chase."LangChain. https://github.com/hwchase17/langchain".2022.

[3]Weize Chen,et al."Agentverse: Facilitating multi-agent collaboration and exploring emergent behaviors in agents".2023.

[4]Chen Qian,et al."Communicative agents for software development".2023.

[5]Guohao Li,et al."Camel: Communicative agents for” mind” exploration of large scale language model society".2023.

[6]Yashar Talebirad,et al."Multi-agent collaboration: Harnessing the power of intelligent llm agents".2023.

Illustration From IconScout By Delesign Graphics

-The End-

免责声明:作者保留权利,不代表本站立场。如想了解更多和作者有关的信息可以查看页面右侧作者信息卡片。
反馈
to-top--btn