问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

MetaGPT:基于SOP的多智能体协作元编程框架

创作时间:
作者:
@小白创作中心

MetaGPT:基于SOP的多智能体协作元编程框架

引用
CSDN
1.
https://blog.csdn.net/m0_59402094/article/details/137937343

MetaGPT是一个基于大语言模型的元编程框架,通过将标准化操作流程(SOPs)应用于多智能体协作,实现了更高效、准确的软件开发过程。MetaGPT将复杂的软件开发任务分解为多个子任务,并分配给具有不同角色的代理,如产品经理、架构师、工程师等,通过迭代反馈机制和可执行代码验证,显著提高了代码生成的质量和效率。

MetaGPT:面向多Agent协作框架的元编程

元编程是指在程序运行时对程序本身进行操作和修改的编程技术。它允许程序在运行时动态地创建、修改和执行代码,以及在编译时生成代码。

一句话介绍:MetaGPT是一个基于大语言模型的元编程框架,利用标准操作规程(SOPs)来提高多智能体协作的效率和准确性。

SOP:标准化操作流程

文章摘要

MetaGPT,这是一个创新的元编程框架,将高效的人工工作流集成到基于LLM的多代理协作中。MetaGPT将标准化操作程序(SOP)编码为更精简的工作流程的提示序列,从而允许具有类似人类领域专业知识的代理验证中间结果并减少错误。MetaGPT利用装配线范例将不同的角色分配给不同的代理,有效地将复杂的任务分解为涉及多个代理一起工作的子任务。在协作软件工程基准上,MetaGPT比以前基于聊天的多代理系统生成更连贯的解决方案。

研究背景

目前,人类已经在各个领域开发了被广泛接受的标准化操作程序(SOP)。这些标准操作程序在支持任务分解和有效协调方面起着关键作用。此外,标准操作程序概述了每个小组成员的责任,同时建立了中间产出的标准。定义良好的标准操作程序提高了与定义的角色和质量标准相一致的任务的一致和准确执行。

受益于SOP,MetaGPT提供了一种很有前途的元编程方法。

MetaGPT原理


MetaGPT和现实世界人类团队之间的软件开发SOP

在软件工程中,标准操作程序促进不同角色之间的协作。MetaGPT展示了其将复杂任务分解为分配给不同角色(例如,产品经理、架构师、项目经理,工程师、QA工程师等)的具体可操作过程的能力。

MetaGPT执行过程与方法

特定的角色

明确的角色专门化可以将复杂的工作分解为更小、更具体的任务。解决复杂的任务或问题通常需要具有不同技能和专业知识的代理的协作,每个代理都为特定问题提供专门的输出。

每个代理都监视环境(例如,MetaGPT中的消息池)以发现重要的观察结果。

跨代理工作流

MetaGPT在软件开发中遵循SOP,它使所有代理以顺序的方式工作。


左图:代理使用共享消息池发布结构化消息。右图:生成初始代码后,Engineer代理运行并检查错误

MetaGPT中SOP工作流的详细示意图:

通信协议

我们为每个角色建立一个模式和格式,并要求每个人根据他们的特定角色和上下文提供必要的输出。MetaGPT通过文档和图表(结构化的输出)而不是对话进行沟通。这些文件包含所有必要的信息,防止不相关或遗漏的内容。

发布-订阅机制

共享信息在协作中是至关重要的。例如,架构师和工程师经常需要引用PRD。然而,每次都以一对一的方式传达这些信息,会使通信拓扑复杂化,导致效率低下。

要解决这个问题,一个可行的方法是将信息存储在一个全局消息池中。它允许所有代理直接交换消息。这些代理不仅在池中发布结构化消息,而且还透明地访问来自其他实体的消息。任何代理都可以直接从共享池中检索所需的信息,无需查询其他代理并等待它们的响应。但是与每个代理共享所有信息可能导致信息过载。在任务执行期间,代理通常倾向于只接收与任务相关的信息,并避免通过不相关的细节分散注意力。有效管理和传播这些信息起着至关重要的作用。

所以MetaGPT提供了一个简单而有效的解决方案订阅机制。

具有可执行反馈的迭代编程

在初始代码生成之后,MetaGPT引入了一个可执行的反馈机制来迭代地改进代码。这使得工程师能够使用自己的历史执行和调试内存不断改进代码。为了获得额外的信息,工程师编写并执行相应的单元测试用例,并随后接收测试结果。如果满意,将启动额外的开发任务。否则,工程师将在继续编程之前调试代码。这个迭代测试过程会一直持续,直到测试通过或者达到最多3次重试为止。

实验

数据集选择

  • HumanEval:包括164个手写编程任务。这些任务包括功能规范、描述、参考代码和测试。
  • MBPP:包含427个Python任务。这些任务涵盖核心概念和标准库特性,并包括描述、参考代码和自动化测试。
  • SoftwareDev:包括70个软件开发任务的代表性示例的集合,每个任务都有自己的任务提示符,并且每个任务具有不同的范围。

评估标准

对于HumanEval与MBPP:unbiased version ofPass @k

对于SoftwareDev:人工评估(A, E)或统计分析(B, C, D)来评估性能。

  • (A)可执行性:这个指标将代码从1(失败/无功能)到4(完美)进行评分。' 1 '表示无功能,' 2 '表示可运行但不完美,' 3 '表示近乎完美,' 4 '表示完美的代码。
  • (B)成本:这里的成本评估包括(1)运行时间,(2)代币使用和(3)费用。
  • (C)代码统计:这包括(1)代码文件,(2)每个文件的代码行数,(3)总代码行数。
  • (D)生产率:基本上定义为令牌使用的数量除以代码行数,指的是每行代码所消耗的令牌。
  • (E)人工修订成本:通过确保代码顺利运行所需的修订轮数来量化,这表明人工干预的频率,例如调试或导入包。

实验结果

MBPP和HumanEval的一次测试通过率:

SoftwareDev统计分析:

消融实验

为了理解不同角色对最终结果的影响,我们执行两个任务,包括生成有效的代码和计算平均统计信息。当我们排除某些角色时,就会生成不可用的代码。

MetaGPT和其他方法的功能比较:

贡献

  1. 介绍了基于LLM的多智能体协作的元编程框架MetaGPT。
  2. MetaGPT的设计中创新性地集成了类似人类的SOP,大大增强了其稳健性,减少了基于LLM的代理之间的非生产性协作。
  3. MetaGPT引入了一种新的执行反馈机制,可以在运行时调试和执行代码,显著提高代码生成质量。
  4. MetaGPT在HumanEval 和MBPP上实现了最先进的性能。
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号