MetaGPT 是一个多代理框架,其中人工智能是一致的系统开发者!
三个要点
✔️ 提出 MetaGPT,这是一个多代理框架,可将包含真实世界专业知识的 SOP 编码到 LLM 代理中
✔️ 实验证明,与现有方法相比,它能生成更一致、更全面的解决方案
✔️ MetaGPT将传统软件工程的成本降低 1000 倍或更少
MetaGPT: Meta Programming for Multi-Agent Collaborative Framework
written by Sirui Hong, Xiawu Zheng, Jonathan Chen, Yuheng Cheng, Jinlin Wang, Ceyao Zhang, Zili Wang, Steven Ka Shing Yau, Zijuan Lin, Liyang Zhou, Chenyu Ran, Lingfeng Xiao, Chenglin Wu
(Submitted on 1 Aug 2023 (v1), last revised 17 Aug 2023 (this version, v4))
Comments: Published on arxiv.
Subjects: Artificial Intelligence (cs.AI); Multiagent Systems (cs.MA)
code:![]()
本文所使用的图片要么来自论文、介绍性幻灯片,要么是参考这些图片制作的。
介绍
虽然近年来在使用大规模语言模型(LLM)生成的多代理任务解析方面取得了重大进展,但现有研究主要集中在简单任务上,尚未对容易产生幻觉(LLM 输出似是而非的谎言的现象)的复杂任务进行研究。现有的研究主要集中在简单任务上,对容易产生幻觉的复杂任务(LLM 输出似是而非的谎言的现象)尚未进行研究。
当多个智能代理互动时,这种幻觉更容易出现,这也是解决复杂问题时面临的一个挑战。
为了应对这些挑战,本文作者求助于广泛应用于人对人工作的标准化操作程序(SOP)。
标准作业程序是支持任务分解和有效协调的关键程序,例如,在软件工程中,需求分析、系统设计、编码、测试和交付成果等阶段是由瀑布模型定义的。
本文介绍了MetaGPT,这是一种多代理框架,它通过将包含现实世界专业知识的 SOP 编码到 LLM 代理中来扩展复杂问题的解决能力,实验表明,与现有方法相比,它可以生成更一致、更全面的解决方案。本文介绍了
框架概述
MetaGPT 的设计分为两层,即基础组件层和协作层,每一层都负责支持系统功能。
基础组件层
这一层详细定义了单个代理运行和整个系统信息交流所需的核心构件,包括环境、记忆、角色、行动和工具,并开发了协同工作所需的基本能力。
整体情况如下图所示。
每个组件的说明如下。
- 环境:为代理提供协作工作空间和交流平台
- 记忆:便于代理存储和检索过去的信息和情境
- 角色:根据领域专长封装专业技能、行为和工作流程
- 行动:代理为完成子任务和产生输出而采取的步骤。
- 工具:可用于增强代理能力的实用程序和服务的集合。
MetaGPT 框架会为各种角色(如产品经理和建筑师)生成代理,这些代理通过特定角色设置进行初始化。
MetaGPT 框架提供的角色配置允许各方为特定领域和目的创建高度专业化的 LLM 代理。
协作层
它建立在基础组件层之上,为协作解决复杂任务提供了两种机制--知识共享和封装工作流。知识共享和封装工作流是协作解决复杂任务的机制。
- 知识共享:这一机制允许代理高效地交换信息,存储、检索和共享各种粒度的数据。它不仅能加强合作,还能减少冗余通信,提高整体运行效率。
- 封装工作流程:这一机制利用标准作业程序将复杂的任务分解为更小、更易于管理的子任务。这些子任务被分配给适当的代理,并通过标准化输出对其性能进行监控。
基础组件层和协作层的这种分离有利于实现模块化,同时确保代理的个人和集体能力。
核心组件设计
MetaGPT 方法的结构方式是将高级任务分解为由不同角色代理(产品经理、建筑师、项目经理、工程师、质量保证工程师)处理的详细组件。该结构将任务分解为 SOP,SOP 是由不同角色代理(产品经理、建筑师、项目经理、工程师、质量保证工程师)处理的详细组件,便于特定角色的专业人员进行处理。
下图为 MetaGPT 框架中的软件开发流程示意图。
最初,当 MetaGPT 收到来自人类的请求时,产品经理(ProductManager)代理会通过进行请求分析和可行性分析来启动流程。
然后,架构师代理会生成详细的系统蓝图,显示软件架构,如下图所示。
该图表包括用户、协同过滤模型和推荐器等重要模块的定义,以及每个模块的字段和方法的详细信息。
另一方面,对于工程师来说,系统蓝图并不足以实现复杂的系统编码,还需要进一步了解模块内部和模块之间如何执行操作的细节,才能将设计转化为功能代码。
因此,架构师代理还根据系统界面设计创建了一个顺序流程图,如下图所示,描述了执行某项功能所需的流程顺序、涉及的对象以及它们之间交换的信息。
以这种方式捕捉细节有助于负责详细代码设计的工程师代理和产品经理代理开展工作。
最后,工程师代理进行实际代码开发,并由质量保证工程师进行全面测试。
由此可见,MetaGPT 中标准化输出的设计和实施在处理复杂任务时非常有效,尤其是在清晰安全地表达结构信息方面,而这些信息仅使用自然语言是很难传达的。
实验
本文进行了与现有方法 AutoGPT 和 AgentVerse 的对比实验,以证明 MetaGPT 在游戏开发、网络开发和数据分析等各种场景中的实用性。
下表显示了对每种方法功能的初步比较结果。
如图所示,MetaGPT 以其丰富的功能脱颖而出,与现有方法相比具有显著优势,尤其是在生成 PRD(产品需求规格)和技术设计方面。
随后,我们使用游戏生成、代码生成和简单数据分析等七种不同任务进行了对比实验,以评估每种方法的各种框架的性能。
结果如下表所示。(0=失败,1=可行,2=基本符合预期,3=完全成功)
从表中可以看出,MetaGPT 在各种任务中均表现出色,除两项任务外,其余任务均成功执行。(由于实验限制和资源有限,Flapy bird 游戏和坦克大战游戏没有成功)。
相比之下,现有方法 AutoGPT 和 AgentVerse 在任何任务中都没有取得成功,这再次证明了 MetaGPT 的实用性。
最后,对软件开发中的 MetaGPT 进行了统计分析。
在上述各种任务的实验中,每个任务平均有 4.71 个代码文件,每个文件平均有 42.99 行代码。
实验中最引人注目的是成本统计,结果显示,与传统软件工程成本相比,MetaGPT 的货币成本降低了不到 1000 倍(平均 1.09 美元)。
摘要
结果如何?在这篇文章中,我们介绍了 MetaGPT,这是一个多代理框架,通过将包含真实世界专业知识的 SOP 编码到 LLM 代理中,扩展了复杂问题的解决能力。本文介绍了该框架,以说明与现有方法相比,它能生成更一致、更全面的解决方案。
MetaGPT 在实现端到端流程自动化方面具有巨大潜力,但也存在一些问题,例如有时会引用不存在的资源文件(如图像或音频),或者在执行复杂任务时调用未定义或未导入的类或变量。一些问题体现在以下几个方面。
这些现象是由于大规模语言模型固有的幻觉造成的,作者表示可以通过更清晰、更高效的工作流程来处理,因此未来的进展非常值得期待。
本文所介绍的数据集和基线模型架构的详情可参见本文,如有兴趣,请查阅本文。
与本文相关的类别