在探索大规模语言模型(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。
▲ 在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.
更多阅读
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:hr@paperweekly.site
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
·
·
·