LLM Agent提效揭秘4:多智能体协作工作流深度剖析

news2025/2/27 1:59:54

在此之前,我们已经从论文到代码深度解读了吴恩达:GPT-4+Agents Workflow,性能比肩GPT-5的三种大语言模型Agent工作流:反思、工具使用和规划。今天我们将深入最后一种Agent工作流:多智能体协作工作流。

想象一个未来,不是单一的机器在孤岛般运算,而是众多智能体如同交响乐团成员,各司其职,共谱技术乐章。这正是多智能体协作工作的魅力所在:它将复杂的任务解构,分配给专精的代理,再以自然语言为桥梁,缝合各部分,成就整体的高效执行。

合作使我们能够知道比我们自己所能知道的更多。它赋予我们不同的思维方式,让我们接触到原本无法获得的信息,并在我们共同努力实现共同目标的过程中将想法结合起来。-- Paul Solarz

在人类社会中,合作是智慧的放大器,它聚合了个体的独到见解,催化出超越个体边界的集体智慧。而在人工智能的疆域内,这一原理亦被赋予了新的生命——通过多智能体协作工作流,大型语言模型(LLMs)正解锁前所未有的协同潜能。本文将带您深入这一前沿领域,剖析三篇重量级论文,透视多智能体如何在LLM中编织出新的效率与创造力网络。

相信你一定听说过Devin AI,全球第一个AI工程师,号称只需一句指令,它可端到端地处理整个开发项目,它曾一度爆火全球。清华大学开发的ChatDev更是受到吴恩达点赞。ChatDev模拟一家虚拟软件公司,它通过扮演不同角色的各种智能代理运作,包括首席执行官、首席产品官、首席技术官、程序员、审核员、测试员、美术设计师。这些代理形成了一个多代理组织结构,并以“通过编程革新数字世界”的使命团结在一起。ChatDev 内的代理通过参加专门的功能研讨会进行协作,包括设计、编码、测试和文档编写等任务。

company.png

在技术圈里,我们经常听到“分工合作”这个词,它就像是高效协作的黄金法则。那么,当这个概念应用到大型语言模型(LLM)上,又会产生怎样的火花呢?你可能会好奇,既然用的是同一个LLM,为什么还要把它拆分成不同的Agent来协作呢?这不是多此一举吗?

其实不然。想象一下,如果把一个团队里的角色混为一谈,比如让一个程序员同时担任产品经理的角色,那他们可能在项目初期就会陷入无尽的争论。同样,在LLM的世界里,给一个Agent同时设定多个角色,也会导致混乱。毕竟,一个精准的Prompt需要明确Agent的角色和任务,如果角色模糊不清,LLM也难以准确捕捉到你的意图。

在Prompt Engineering的世界里,我们强调Prompt需要精确、详尽,最好还能配上示例。试想一下,如果把两个可能会“打架”的角色放在一起,LLM又怎能清晰理解并执行任务呢?尤其是当你给LLM加上了记忆库,如果角色不明确,LLM只会在混乱中迷失方向。

因此,将LLM拆分成多个Agent,让每个Agent专注于自己的细分领域,不仅理论上可以提高性能,实际上也确实能够带来显著的效果。每个Agent都有自己的专长,像一个精密的齿轮,只有当它们各司其职,整个系统才能高效运转。这样的协作方式,就像是一支训练有素的团队,每个人都清楚自己的职责,共同推动项目向前发展。

本文我们从吴恩达教授推荐的三篇论文入手。

  • Communicative Agents for Software Development ChatDev的论文
  • AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation
  • MetaGPT: Meta Programming for A Multi-Agent Collaborative Framework

1. ChatDev

这篇论文介绍了一个名为ChatDev的虚拟聊天驱动的软件开发公司,该公司利用大型语言模型(LLMs)来推动整个软件开发过程。ChatDev模仿了传统的瀑布模型,将开发过程细分为设计、编码、测试和文档编制四个不同的阶段。每个阶段都涉及一组“软件代理”,包括程序员、代码审查员和测试工程师,他们通过协作对话促进无缝工作流程。

image-20240527154514170

从上图可见,流程和常规的软件开发流程基本一致,从设计、编码、测试到文本(上线)。角色分配细化到专业,不仅有编码工程师,还有代码审查员,还引入了我们之前讨论的[LLM-Agents]反思Reflection 工作流来进一步提升决策的准确性。实验分析了ChatDev响应70个用户需求产生的所有软件,平均生成17.04个文件/软件,平均软件生产时间为409.84秒,制造成本仅仅0.2967美元。审查员和程序员之间的讨论导致了近二十种代码漏洞的识别和修改,而测试员和程序员之间的讨论则识别和解决了十多种潜在的错误。有意思的是,他们用ChatDev编写了一个五子棋游戏。

image-20240527155552003

2. MetaGPT

MetaGPT,这是一个基于先前验证过的推理和行动计划框架,如ReAct和Reflexion,进一步升级的元编程框架。它不仅继承了前者的优点,更是在处理复杂软件工程任务方面,展现出了令人瞩目的能力。MetaGPT的核心在于它创新性地引入了结构化的工作流程和专门化的角色分配。这就像是在工厂中,每个工人都有自己特定的任务,大家协同作业,以流水线的方式高效完成生产。MetaGPT正是借鉴了这一理念,通过将代理分配到特定角色,并采用类似装配线模式的任务分配,极大地提升了任务分解和执行的效率。而且,MetaGPT还整合了类似于人类的标准操作程序(SOPs),这就像是给了每个角色一本操作手册,确保了工作流程的简化、错误的减少,以及解决方案的连贯性。这一点在软件工程中尤为重要,因为它直接关系到代码的质量和项目的成功率。(MetaGPT的架构中Engineer是一个黑人,到底是干苦力的,哈哈哈😂)

image-20240527160730617

从上图中也可以看出,角色中还引入了架构师,并且PM还会出PRD,架构师还出流程图、API接口设计、ER图等,更为细分,更加专业了。经过HumanEval和MBPP基准的验证,MetaGPT在代码生成任务上交出了高分答卷。与AutoGPT、LangChain、AgentVerse和ChatDev等其他框架相比,MetaGPT在处理复杂软件项目时更是出类拔萃,不仅达到了100%的任务完成率,还显著提升了时间和令牌成本的效率。

更值得一提的是,消融研究进一步证实了专门化角色的重要性。多样化的角色引入,不仅让代码质量得到了显著提升,执行效果也更加出色。就像是一支篮球队,每个队员都有自己擅长的位置和技能,当他们协同作战时,整个团队的表现自然能够达到最佳状态。与ChatDev类似,MetaGPT也以设计游戏为例,这次设计的游戏是2048。

image-20240527161910897

3. AutoGen

本文介绍了AutoGen,这是一个开源框架,旨在通过多代理对话来构建大语言模型(LLM)应用程序。AutoGen代理是可定制的、可对话的,结合LLM、人类输入和工具,可在多种模式下操作。框架的核心在于简化复杂任务,甚至于自动编程来解决任务,从而能够通过多代理协作来高效的解决问题。

  • 多代理对话框架:AutoGen使用多代理对话来协调代理之间的合作,代理可以基于LLM、人类输入和工具进行操作。
  • 可定制的代理:开发者可以轻松创建具有不同角色和功能的代理,通过选择和配置内置功能,使其适应多代理对话。
  • 对话编程:采用对话编程范式,通过定义具有特定能力和角色的代理,以及编程代理之间的交互行为,简化了复杂应用的开发。

image-20240527181223783

**不同于ChatDev和MetaGPT两者专注于软件开发领域,AuoGen的目标是构建一个通用的多代理对话框架,每个Agent可以是编程的,可以是利用的工具的,可以是人类无缝接入,也支持编排不同的Agent,即不同Agent如何沟通。**如下图所示,它可以自动编程去解决数学问题,也可以结合私有知识库实现RAG来解决大语言模型的幻觉问题,甚至能完成小组聊天式的对话应用。我们甚至能够想象,如何用AutoGen开发一款狼人杀的游戏(当然,接下来我会开始探索尝试这方面的应用),我甚至想探索一下如何设计一个人类加多个Agent玩剧本杀的游戏应用。

image-20240527181918001

4. 总结

通过本文对ChatDev、MetaGPT和AutoGen三篇论文的详细分析,我们深入了解了多智能体协作工作流在大语言模型(LLM)中的应用。这些多智能体的框架,简直是反思、工具使用和规划的集合体,尤其是多角色的设计,Prompt如何设计,反思如何设计,工具如何调用。另外,从工程角度来看,角色之间的对话沟通是如何设计,是采用直接通信还是广播,都是很有意思的事情。这些框架通过分工合作、角色专精和对话编程,大大提升了复杂任务的解决效率和效果。下一篇文章将深入分析AutoGen的框架,以进一步探讨多智能体协作在实际应用中的实现和优化。

5. 深度阅读

本文不仅是一次技术探索,更是对合作与创新精神的致敬。如果您意犹未尽,推荐深入阅读系列文章,探索更多LLM代理工作流的奥秘,或参与LangChain实战课程,亲历LLM应用开发之旅。未来,属于那些勇于携手共创的智者。

如何系统的去学习大模型LLM ?

作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料 包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来

所有资料 ⚡️ ,朋友们如果有需要全套 《LLM大模型入门+进阶学习资源包》,扫码获取~

👉CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

在这里插入图片描述

四、AI大模型商业化落地方案

img

阶段1:AI大模型时代的基础理解

  • 目标:了解AI大模型的基本概念、发展历程和核心原理。
  • 内容
    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
      - L1.4.1 知识大模型
      - L1.4.2 生产大模型
      - L1.4.3 模型工程方法论
      - L1.4.4 模型工程实践
    • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
  • 内容
    • L2.1 API接口
      - L2.1.1 OpenAI API接口
      - L2.1.2 Python接口接入
      - L2.1.3 BOT工具类框架
      - L2.1.4 代码示例
    • L2.2 Prompt框架
      - L2.2.1 什么是Prompt
      - L2.2.2 Prompt框架应用现状
      - L2.2.3 基于GPTAS的Prompt框架
      - L2.2.4 Prompt框架与Thought
      - L2.2.5 Prompt框架与提示词
    • L2.3 流水线工程
      - L2.3.1 流水线工程的概念
      - L2.3.2 流水线工程的优点
      - L2.3.3 流水线工程的应用
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
  • 内容
    • L3.1 Agent模型框架
      - L3.1.1 Agent模型框架的设计理念
      - L3.1.2 Agent模型框架的核心组件
      - L3.1.3 Agent模型框架的实现细节
    • L3.2 MetaGPT
      - L3.2.1 MetaGPT的基本概念
      - L3.2.2 MetaGPT的工作原理
      - L3.2.3 MetaGPT的应用场景
    • L3.3 ChatGLM
      - L3.3.1 ChatGLM的特点
      - L3.3.2 ChatGLM的开发环境
      - L3.3.3 ChatGLM的使用示例
    • L3.4 LLAMA
      - L3.4.1 LLAMA的特点
      - L3.4.2 LLAMA的开发环境
      - L3.4.3 LLAMA的使用示例
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
  • 内容
    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

学习计划:

  • 阶段1:1-2个月,建立AI大模型的基础知识体系。
  • 阶段2:2-3个月,专注于API应用开发能力的提升。
  • 阶段3:3-4个月,深入实践AI大模型的应用架构和私有化部署。
  • 阶段4:4-5个月,专注于高级模型的应用和部署。
这份完整版的所有 ⚡️ 大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

全套 《LLM大模型入门+进阶学习资源包↓↓↓ 获取~

👉CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1719373.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3.spring源码:refresh()第一个方法prepareRefresh()

重点: 1.了解prepareRefresh()方法的作用:就是为容器刷新做了准备工作 2.整体了解refresh()方法 synchronized加锁的原因:刷新和销毁( "refresh" and "destroy" 都是一个完整的过程,需要加锁 改方法进入可以看到是空的,是为了扩展用的 该方法我们可以自己重…

visual studio code 全局搜索

VScode写代码的时候,会经常性的需要进行查找代码,那么怎么在Visual Studio Code中进行查找呢,下面就来大家vscode全局搜索的方法。 想要在vscode全局搜索进行全局搜索,使用快捷键CTRLSHIFTF即可进行搜索,也可以在左边…

GSM信令流程(附着、去附着、PDP激活、修改流程)

1、联合附着流程 附着包括身份认证、鉴权等 2、去附着流程 用户发起去附着 SGSN发起去附着 HLR发起去附着 GSSN使用S4发起去附着 3、Activation Procedures(PDP激活流程) 4、PDP更新或修改流程 5、Deactivate PDP Context 6、RAU(Routeing Area Update)流程 7、鉴权加…

NATS-研究学习

NATS-研究学习 文章目录 NATS-研究学习[toc]介绍说明提供的服务内容各模式介绍测试使用发布订阅(Publish Subscribe)请求响应(Request Reply)队列订阅&分享工作(Queue Subscribers & Sharing Work)…

vue+vant移动端显示table表格加横向滚动条

vant移动端显示table效果&#xff0c;增加复选框&#xff0c;可以进行多选和全选。加横向滚动条&#xff0c;可以看全部内容。 <template><div class"app-container"><div class"nav_text" style"position: relative;"><…

简单介绍QKeySequenceEdit的使用

QKeySequenceEdit是Qt框架中的一个便捷用户界面组件&#xff0c;用于输入和显示键盘快捷键。它提供了一个简单的界面&#xff0c;允许用户输入一个键盘快捷键&#xff0c;并将其显示为一个字符串。这在需要配置快捷键的应用程序中非常有用。在本文中&#xff0c;我们将详细介绍…

【C++】——string模拟实现

前言 string的模拟实现其实就是增删改查&#xff0c;只不过加入了类的概念。 为了防止与std里面的string冲突&#xff0c;所以这里统一用String。 目录 前言 一 初始化和销毁 1.1 构造函数 1.2 析构函数 二 迭代器实现 三 容量大小及操作 四 运算符重载 4.1 bool…

二叉树的顺序实现-堆

一、什么是堆 在数据结构中&#xff0c;堆&#xff08;Heap&#xff09;是一种特殊的树形数据结构&#xff0c;用数组存储&#xff0c;通常被用来实现优先队列。 堆具有以下特点&#xff1a; 堆是一棵完全二叉树&#xff08;Complete Binary Tree&#xff09;&#xff0c;即…

uni-app的网络请求库封装及使用(同时支持微信小程序)

其实uni-app中内置的uni.request()已经很强大了&#xff0c;简单且好用。为了让其更好用&#xff0c;同时支持拦截器&#xff0c;支持Promise 写法&#xff0c;特对其进行封装。同时支持H5和小程序环境&#xff0c;更好用啦。文中给出使用示例&#xff0c;可以看到使用变得如此…

算法(六)计数排序

文章目录 计数排序技术排序简介算法实现 计数排序 技术排序简介 计数排序是利用数组下标来确定元素的正确位置的。 假定数组有10个整数&#xff0c;取值范围是0~10&#xff0c;可以根据这有限的范围&#xff0c;建立一个长度为11的数组。数组下标从0到10&#xff0c;元素初始…

智慧校园有哪些特征

随着科技的飞速进步&#xff0c;教育领域正经历着一场深刻的变革。智慧校园&#xff0c;作为这场变革的前沿代表&#xff0c;正在逐步重塑我们的教育理念和实践方式。它不仅仅是一个概念&#xff0c;而是一个集成了物联网、大数据、人工智能等先进技术的综合生态系统&#xff0…

Nginx(openresty) 开启目录浏览 以及进行美化配置

1 nginx 安装 可以参考:Nginx(openresty) 通过lua结合Web前端 实现图片&#xff0c;文件&#xff0c;视频等静态资源 访问权限验证&#xff0c;进行鉴权 &#xff0c;提高安全性-CSDN博客 2 开启目录浏览 location /file{alias /data/www/; #指定目录所在路径autoindex on; …

差旅游记|绵阳印象:与其羡慕他人,不如用力活好自己。

哈喽&#xff0c;你好啊&#xff0c;我是雷工&#xff01; 来绵阳之前同事就问: “雷工&#xff0c;能吃辣嘛&#xff1f;”。 “还行&#xff0c;能吃点辣。” “那你去了四川别说能吃点辣&#xff0c;那边的能吃点比跟你说的能吃点不太一样” 01 你好 今天打车&#xff0c;上…

信息学奥赛初赛天天练-17-阅读理解-浮点数精准输出与海伦公式的巧妙应用

PDF文档公众号回复关键字:20240531 1 2023 CSP-J 阅读程序1 阅读程序&#xff08;程序输入不超过数组成字符串定义的范围&#xff1a;判断题正确填√&#xff0c;错误填&#xff1b;除特殊说明外&#xff0c;判断题1.5分&#xff0c;选择题3分&#xff0c;共计40分&#xff0…

python 如何判断一组数呈上升还是下降趋势

目录 一、引言 二、基本概念 三、判断方法 直接比较法 斜率法 统计检验法 四、方法比较与选择 五、案例分析 六、总结 一、引言 在数据处理和分析的领域中&#xff0c;判断一组数是否呈现上升或下降趋势是一个重要的环节。这不仅能够帮助我们了解数据的基本变化…

蓝桥杯高频考点-与日期相关的题目

文章目录 前言1. 如何枚举合法日期1.1 预存每个月的天数1.2 封装一个判断日期是否合法的函数1.3 枚举日期并判断日期是否合法 2. 判断日期是否为回文日期2.1 将日期当作字符串进行处理2.2 将日期当作一个8位数进行处理 3. 给定初始日期&#xff0c;计算经过n天后对应的日期3.1 …

Ai晚班车531

1.中央网信办等三部门&#xff1a;加快推进大模型、生成式人工智能标准研制。 2.中国石油与中国移动、华为、科大讯飞签署合作协议。 3.Opera浏览器与谷歌云合作&#xff0c;接入 Gemini 大模型。 4.谷歌 Gemini 加持Chromebook Plus。 5.英飞凌&#xff1a;开发 8kW和12kW…

5.25.1 用于组织病理学图像分类的深度注意力特征学习

提出了一种基于深度学习的组织病理学图像分类新方法。我们的方法建立在标准卷积神经网络 (CNN) 的基础上,并结合了两个独立的注意力模块,以实现更有效的特征学习。 具体而言,注意力模块沿不同维度推断注意力图,这有助于将 CNN 聚焦于关键图像区域,并突出显示判别性特征通…

Redis 探索之旅(进阶)

目录 今日良言&#xff1a;从不缺乏从头开始的勇气 一、持久化 1、RDB 2、AOF 二、Redis 的事务 三、主从复制 四、哨兵模式 五、集群模式 六、缓存 七、分布式锁 今日良言&#xff1a;从不缺乏从头开始的勇气 一、持久化 持久化就是把数据存储在硬盘上&#xff0c;无…

使用 DuckDuckGo API 实现多种搜索功能

在日常生活中&#xff0c;我经常使用搜索引擎来查找信息&#xff0c;如谷歌和百度。然而&#xff0c;当我想通过 API 来实现这一功能时&#xff0c;会发现这些搜索引擎并没有提供足够的免费 API 服务。如果有这样的免费 API, 就能定时获取“关注实体”的相关内容&#xff0c;并…