
通过定制工作流程,多代理框架现在可用于任何任务!
三个要点
✔️ 提出 AutoGen,这是一个多代理框架,可通过结合人类、LLM 和工具来定制一系列工作流程
✔️ 开发人员可自由扩展每个后端功能,以处理各种任务
✔️ Existing与模型的实验对比证明了 AutoGen 的有效性
AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation Framework
written by Qingyun Wu, Gagan Bansal, Jieyu Zhang, Yiran Wu, Shaokun Zhang, Erkang Zhu, Beibin Li, Li Jiang, Xiaoyun Zhang, Chi Wang
(Submitted on 16 Aug 2023)
Comments: Published on arxiv.
Subjects: Artificial Intelligence (cs.AI); Computation and Language (cs.CL)
code:![]()
本文所使用的图片要么来自论文、介绍性幻灯片,要么是参考这些图片制作的。
介绍
GPT-4 等大规模语言模型(LLM)的出现,不仅让人工智能应用在编码、问题解答和聊天机器人等方面表现出色,也让人们开始关注由 LLM 生成的人工智能代理的任务解决能力。
然而,许多现有研究中使用的单个代理存在一个问题,即虽然它们可以高效地执行简单任务,但很难执行复杂任务。
近年来,多代理系统(代理之间或人与代理之间通过自然语言对话执行任务)已成为解决这一问题的主流方案,但设计、实施和优化其复杂的工作流程却变得极为困难。
在此背景下,本文介绍了AutoGen,这是一个多代理框架,可通过定制一系列结合人类、LLM 和工具的工作流程来创建具有各种角色的代理,并允许开发人员自由扩展每个后端的功能。本文介绍了拟议的
自动生成框架
AutoGen 是一个可以构建各种多代理系统(包括人类、LLM 和工具)的框架,例如下图所示的两个代理之间的任务解析。
要让 AutoGen 构建复杂的多代理系统,需要定义两件事
- 定义一组具有特定能力和角色的可对话代理
- 代理之间的交互,即定义一个代理在收到另一个代理的信息时如何回应
此外,在使用 AutoGen 内置代理功能构建多代理系统时,您既可以直接使用 AutoGen 内置代理,也可以在此基础上开发定制代理。
下图是 AutoGen 嵌入式代理的概览。
从每个代理下的 LLM、人类和工具符号可以看出,ResponsiveAgent是默认代理,可以与 LLM、人类和工具自由组合。
AssistantAgent的设计目的是充当人工智能助手,使用 LLM 响应信息,但不需要人类输入或执行代码。
UserProxyAgent的设计目的是充当人类代理的代理,默认情况下每次交互都需要人类输入,并对人类或工具发出的信息做出响应。
GroupChatManager使用 LLM 管理 AutoGen 的对话代理群组,以便在群聊中回复消息。
这种嵌入式代理设计使 AutoGen 能够与下图所示的LLM、人类和工具的任意组合进行定制(代理定制),实现代理之间的对话以解决任务(多代理对话),并支持大量复杂的代理对代理对话模式(灵活的对话模式)。对话),并支持大量复杂的代理对代理对话模式(灵活的对话模式)。
AutoGen 的应用
为了证明 AutoGen 的有效性,本文使用各种任务进行了验证。
数学问题解决
数学是学术界的基础学科,而 LLM 可用于多种应用,如通过个性化代理进行教学和支持研究等。
因此,在本实验中,我们使用AutoGen、Auto-GPT、ChatGPT+Plugin、ChatGPT+Code Interpreter和LangChain ReAct五种模型和数学问题数据集 MATH 数据集进行了比较。
用于解决数学问题的自动生成设置如下图所示。
这里的工作流程是,学生和学生助理共同解决问题,只有当学生助理对自己的答案不满意时,学生助理才可以向作为专家助理的另一个代理寻求帮助。工作流程如下
下图显示了 MATH 数据集中两种数学问题模式的正确答题率。(每道题各测试三次)。
从图中可以看出,在所有模型中,AutoGen 的正确回答率最高,这证明了它对数学问题的有效性。
多代理编码
接下来是多代理编码测试,重点是OptiGuide,这是一个擅长为用户问题编写适当代码的框架。
OptiGuide 是一个使用 LLM 和外部工具的框架,可以有效地回答用户提出的与应用程序相关的问题,在本实验中,工作流程的设计如下图所示。
在此工作流程中,首先由指挥官接收用户的问题,然后与撰稿人和安全保障进行对话。
然后,编写者创建答案和代码,安全卫士确保安全(例如不泄露信息、不使用恶意代码等),指挥官执行代码。
如果出现问题,例如在执行代码时出现问题,则重复图中阴影部分的过程,直到问题得到解决。
本实验对 AutoGen 和ChatGPT+Code Interpreter进行了比较,并询问每个模型"如果由于潜在的工资增长,焙烧成本增加了 5%,该怎么办?本实验对 AutoGen 和 ChatGPT+Code Interpreter 进行了比较,并询问每个模型 "如果由于潜在的工资增长,焙烧成本增加 5%,情况会怎样?
ChatGPT+CodeInterpreter 的结果如下图所示。
因此,ChatGPT+CodeInterpreter 无法运行带有私有软件包或定制依赖项(如 Gurobi)的代码,从而中断了工作流程。
AutoGen 的结果则如下图所示。
与 ChatGPT+CodeInterpreter 相比,AutoGen 的响应更精简、更自主,它整合了多个代理来处理问题,使工作流程更加稳定。
这种稳定的工作流程允许在其他应用程序中重复使用,并可组成更大的应用程序,该实验证明了 AutoGen 的卓越编码性能。
国际象棋对话
国际象棋可以说是世界上最流行的棋类游戏,为了证明 AutoGen 在该实验中的有效性,我们设计了一款新的国际象棋游戏--"会话国际象棋",以支持自然语言界面。
自动生成对话棋的工作流程如下图所示。
每个玩家都是人类或自动生成的代理(人类/棋手),在Chass 棋盘上设置的代理管理游戏规则,并通过提供有关棋盘的信息为玩家提供支持。
在这个实验中,两个代理之间进行了一场比赛,观察到的场景如下图所示。
与上文所述的许多代理系统一样,这一工作流程证实,每个玩家都能通过对话分享信息和知识,相互取长补短,选择更好的行动。
摘要
它是如何做到的?本文提出的 AutoGen 是一个多代理框架,通过定制一系列结合人类、LLM 和工具的工作流程,可以创建具有各种角色的代理,并允许开发人员自由扩展每个后端的功能。论文介绍了以下内容。
虽然可以根据任务定制 AutoGen,从而应对各种任务,如本文中的实验、
- 包括多少代理商
- 如何分配代理角色和能力
- 是否将工作流程的某些部分自动化
此外,还有一些问题,例如配置的应用依赖性,这将是未来发展的重点。
本文所介绍的 AutoGen 架构和实验结果的详情可参见本文,有兴趣者请参阅。
与本文相关的类别