INTERNET OF AGENTS: WEAVING A WEB OF HETEROGENEOUS AGENTS FOR COLLABORATIVE INTELLIGENCE

智能体互联网:编织异构智能体网络用于协同智能

在这里插入图片描述

📖导读:本篇博客有🦥精读版🐇速读版🤔思考三部分;精读版是全文的翻译,篇幅较长;如果你想快速了解论文方法,可以直接阅读速读版部分,它是对文章的通俗解读;思考部分是个人关于论文的一些拙见,欢迎留言指正、探讨。最佳排版建议使用电脑端阅读。


目录


🦥精读版

Abstrct

  大语言模型(LLMs)的飞速发展为开发高性能自主智能体铺平了道路。然而,现有的多智能体框架往往因依赖其自身生态系统内所定义的智能体,而在整合多样且有能力的第三方智能体方面存在困难。它们在模拟分布式环境时也面临挑战,因为大多数框架仅限于单机设置。此外,这些框架通常依赖硬编码的通信管道,限制了它们对动态任务需求的适应性。受互联网概念的启发,我们提出了智能体互联网(IoA)这一新颖的框架,它通过为基于LLM的多智能体协作提供一个灵活且可扩展的平台来解决这些局限。IoA引入了一种智能体集成协议、一种类似即时通讯的架构设计,以及用于智能体组队和对话流程控制的动态机制。通过在通用辅助任务、具身人工智能任务以及检索增强生成基准测试方面开展的大量实验,我们证明了IoA的表现始终优于最先进的基准模型,展现出它促进异构智能体间有效协作的能力。IoA朝着在类似互联网的环境中连接不同智能体迈出了一步,在这样的环境中,智能体能够无缝协作以实现更高的智能水平和更强的能力。我们的代码库已发布在https://github.com/OpenBMB/IoA。

1. Introduction

  互联网已经彻底改变了人们协作与共享知识的方式,它将世界各地有着不同技能和背景的个体连接起来。这一全球网络使得诸如Wikipedia以及Linux操作系统开发等了不起的协作项目得以创建,而这些项目靠任何单个人都是不可能完成的。互联网极大地促进了人们之间的协作,让不可能之事成为可能,也拓展了人类成就的边界。

  互联网在助力人类协作方面取得的成功引出了一个有意思的问题:我们能否打造一个类似的平台来推动自主智能体之间的协作呢?随着LLMs(OpenAI,2023;Reid等,2024)的快速发展,如今我们已经拥有了能够在众多任务上实现近乎人类表现的自主智能体。这些基于LLMs的智能体已展现出将复杂任务分解为可执行步骤、利用各类工具以及从反馈和经验中学习的能力(Qin等,2023;Wang等,2023c;Shinn等,2023;Qian等,2023b)。随着这些智能体的能力不断增强,并且越来越多具备不同技能的第三方智能体不断涌现(Chase,2022;Team,2023;Significant Gravitas,2023;Open Interpreter,2023),探索如何像互联网为人类所做的那样,有效且高效地协调它们的协作就变得至关重要了。

  为应对这一挑战,我们提出了智能体互联网(IoA)这一概念,它是一个受互联网启发的用于智能体通信与协作的通用框架。IoA旨在解决现有多智能体框架(Chen等,2023;Wu等,2023;Hong等,2023;Qian等,2023a)存在的三个基本局限:(1)生态系统隔离:多数框架仅考虑其自身生态系统内定义的智能体,这有可能阻碍各种第三方智能体的整合,限制智能体能力的多样性以及平台的通用性;(2)单机模拟:几乎所有多智能体框架都在单机上模拟多智能体系统,这与现实世界中智能体可能分布于不同地点的多台设备上的实际场景差别很大;(3)僵化的通信与协调:通信过程、智能体分组以及状态转换大多是硬编码的,而在现实生活中,人们会依据手头的任务来确定队友,并在讨论、任务分配或执行之间动态切换。

  为克服这些局限,我们提出了一种智能体集成协议,该协议能让运行在不同设备上的不同第三方智能体无缝集成到框架中,并进行有效协作。此外,我们引入了一个类似即时通讯应用的框架,它有助于智能体的发现以及动态组队。通过自主搜索能够处理手头任务的潜在智能体,智能体可以动态地决定组建不同的团队,并在各类群组聊天中进行交流。受言语行为理论(Searle,1969)及其在传统多智能体系统中的应用(Finin等,1994;Labrou等,1999)的启发,在每个群组聊天中,我们抽象出了若干对话状态,并提供了一种灵活且通用的有限状态机机制,该机制允许智能体自主决定对话状态,从而促进讨论以及子任务的执行。

  我们通过大量实验以及与最先进的自主智能体进行对比,证明了IoA的有效性。通过集成AutoGPT(Significant Gravitas,2023)和Open Interpreter(Open Interpreter,2023),我们表明,与单独使用这些智能体相比,IoA在开放域任务评估中实现了66%到76%的胜率。此外,即便只集成了几个基本的ReAct智能体,IoA在GAIA基准测试(Mialon等,2023)上的表现也优于此前的相关成果。在检索增强生成(RAG)问答领域,我们的框架大幅超越了现有方法,基于GPT-3.5的实施所达到的性能接近甚至超过了GPT-4,并且有效超越了以往的多智能体框架。

  IoA在各个领域令人瞩目的表现凸显了这一范式对于自主智能体的潜力。随着小型LLMs(Mesnard等,2024;Hu等,2024;Abdin等,2024)不断发展,在个人电脑甚至移动设备上运行智能体正变得越来越可行。这一趋势为在现实场景中部署多智能体系统开辟了新机遇,在这些场景中,智能体可分布于多台设备上并协作解决复杂问题。我们相信,通过进一步探索和完善智能体互联网范式,能够开发出更复杂、适应性更强的多智能体系统,最终拓展自主智能体在解决问题和决策方面所能达到的极限。

2. IoA的框架设计与关键机制

  在本节中,我们将全面概述IoA,详细介绍其架构和关键机制。我们会探究这些组件是如何协同工作,以实现自主智能体之间的有效协作,促进动态团队组建、结构化通信以及高效任务执行的。

2.1 IoA概述

  IoA被设计成一个类似即时通讯应用的平台,它能使不同的自主智能体之间实现无缝通信与协作。受互联网概念的启发,IoA解决了多智能体系统中的三个基本挑战(Chen等人,2023;Wu等人,2023;Qian等人,2023a):

  1. 分布式智能体协作:与传统框架在单机上模拟多智能体系统不同,IoA支持分布于多个设备和不同地点的智能体进行协作。(见2.2节和2.3.1节)
  2. 动态且自适应的通信:IoA实现了自主团队组建和对话流程控制机制,允许智能体根据任务需求和当前进展来调整其协作策略。(见2.3.2节至2.3.4节)
  3. 异构智能体的整合:IoA提供了一种灵活的协议用于整合各类第三方智能体,扩展了系统内智能体能力的多样性。(见2.4节)

  从核心来看,IoA由两个主要组件构成:服务器和客户端。服务器充当中心枢纽,负责管理智能体注册、发现以及消息路由。它能让能力各异的智能体相互找到彼此并发起通信。而客户端则作为单个智能体的包装器,为它们提供必要的通信功能,并使其适应特定协议。IoA对服务器和客户端组件均采用了分层架构(Bass等人,1999),该架构包含三层:

  • 交互层:便于团队组建和智能体通信。
  • 数据层:管理与智能体、群组聊天以及任务相关的信息。
  • 基础层:为智能体整合、数据管理以及网络通信提供必要的基础设施。

  这些层级协同工作,通过网络促进智能体之间的协作。在接下来的小节中,我们将详细介绍IoA的架构与设计。


图1:IoA设计中概念分层架构的图示。

2.2 IoA的架构

  IoA的分层架构旨在支持可扩展、灵活且高效的多智能体协作。这种架构能够清晰地划分职责,便于整合不同的智能体及功能(图1)。

2.2.1 服务器架构

  服务器充当IoA的中心枢纽,助力智能体发现、群组组建以及消息路由。其架构由三层构成:

  交互层:在顶层,交互层负责管理智能体与系统之间的高层交互。它包含智能体查询模块,该模块能让智能体基于特定特性来搜索其他智能体;群组设置模块,用于协助创建和管理群组聊天;以及消息路由模块,以确保智能体与群组聊天之间消息的高效且准确的路由。

  数据层:作为信息主干,数据层负责关键系统信息的存储与管理。智能体注册模块维护着已注册智能体的综合数据库,其中涵盖它们的能力及当前状态,这与分布式系统中的服务发现类似(Meshkova等人,2008;Netflix)。同时,会话管理模块管理着活跃连接,并确保服务器与已连接客户端之间能持续通信。

  基础层:支撑整个系统的基础层为服务器的运行提供了必要的基础设施。它包含数据基础设施模块,用于处理数据的持久化与检索;网络基础设施模块,负责管理网络通信;以及安全模块,用于实施认证、授权及其他安全措施,以维护系统的完整性。

2.2.2 客户端架构

  IoA的客户端组件充当单个智能体的包裹器,为它们提供在系统内进行通信所需的接口。其架构与服务器架构类似,同样包含三层:

  交互层:处于智能体操作的最前端,交互层负责管理智能体在系统内的交互活动。团队组建模块实现了识别合适协作者并针对手头任务组建团队的逻辑,这与传统多智能体研究中的联盟形成(Rahwan等,2009)相类似。与之相辅相成的是,通信模块负责管理智能体参与群组聊天的情况并处理消息处理事务。

  数据层:充当智能体的“记忆库”,数据层负责维护与智能体操作相关的本地数据。它包含智能体联系人模块,用于存储当前智能体已与之交互过的其他智能体的相关信息;群组信息模块,用于维护正在进行的群组聊天及协作的详细情况;以及任务管理模块,用于跟踪分配给该智能体的任务的状态及进展情况。

  基础层:构成客户端架构的基础,基础层为客户端的运行提供基本功能。智能体集成模块定义了将第三方智能体整合到IoA生态系统中的协议和接口。除此之外,数据基础设施模块负责本地数据的存储和检索,而网络基础设施模块则管理与服务器之间的网络通信。

  这种分层架构使得IoA能够支持多种类型的智能体以及各类协作场景。通过在各层之间清晰划分职责并提供明确界定的接口,该架构有助于整合不同的智能体,并为未来的扩展性提供了便利。此外,这种设计还支持IoA的关键机制,例如自主团队组建和对话流程控制等,我们将在后续小节中对这些内容进行详细探讨。

2.3 关键机制

  IoA的有效性依赖于若干关键机制,这些机制能够实现不同智能体之间的无缝协作。这些机制协同工作,以促进智能体整合、团队组建、任务分配以及结构化通信。我们将在本节详细介绍这些关键组件。

2.3.1 智能体注册与发现

  为了使具有异构架构、工具和环境的分布式智能体能够进行协作,我们提出了智能体注册与发现机制。该机制构成了IoA内协作交互的基础,它能将不同的智能体整合到系统中,并便于其他智能体通过网络在在线服务器上发现它们以开展潜在协作。

  智能体注册:当一个新智能体加入IoA时,其客户端包装器要与服务器进行注册流程。在注册期间,该智能体应提供关于其能力、技能以及专业领域的全面描述。对于智能体 c i c_i ci,将其描述记为 d i d_i di,此描述会存储在服务器数据层的智能体注册模块中。从形式上,我们将所有已注册智能体的集合表示为 C = { c 1 , c 2 , … , c n } \mathcal{C} = \{c_1, c_2, \ldots, c_n\} C={c1,c2,,cn},其中每个 c i c_i ci都与其描述 d i d_i di相关联。

  智能体发现:智能体发现功能利用在线服务器的智能体注册模块中存储的信息,使智能体能够为特定任务找到合适的协作者。当一个智能体需要组建团队或寻求帮助时,它可以使用服务器的智能体查询模块所提供的search_client工具。该工具允许智能体基于期望的特性或能力来搜索其他智能体。从形式上,智能体发现过程可描述如下:设 L d = [ l 1 , l 2 , … , l k ] \mathcal{L}_d = [l_1, l_2, \ldots, l_k] Ld=[l1,l2,,lk]为寻求协作者的智能体所生成的期望特性列表。search_client函数可表示为:search_client : L d → P ( C ) \mathcal{L}_d \to \mathcal{P}(\mathcal{C}) LdP(C),其中 P ( C ) \mathcal{P}(\mathcal{C}) P(C)表示 C \mathcal{C} C的幂集。该函数返回客户端的一个子集 C d ⊆ C \mathcal{C}_d \subseteq \mathcal{C} CdC,其描述 d j d_j dj L d \mathcal{L}_d Ld中的期望特性相匹配。 L d \mathcal{L}_d Ld d j d_j dj之间的匹配过程可通过各种语义匹配技术(Robertson & Zaragoza,2009;Karpukhin 等人,2020)来实现。这确保了即便智能体的描述与搜索标准并非完全匹配,具有相关能力的智能体也能够被发现。

2.3.2 自主嵌套团队组建

  自主嵌套团队组建机制能够实现合适智能体的动态且灵活的组合。该机制允许智能体根据任务需求自适应地组建团队,并针对复杂、多层面的任务创建嵌套子团队。

  团队组建流程:当客户端 c i ∈ C c_i \in \mathcal{C} ciC被分配一项任务 t t t 时,它会启动团队组建流程。客户端可以使用服务器提供的两个重要工具:search_clientlaunch_group_chat。客户端中的LLM会基于任务以及当前已发现的客户端集合,被提示决定调用哪个工具。如果需要更多协作者,它会依据相应特性调用search_client。一旦找到合适的协作者,它就会调用launch_group_chat来启动一个新的群组聊天 g ∈ G g \in \mathcal{G} gG,其中 G \mathcal{G} G是所有群组聊天构成的空间。

  嵌套团队结构:嵌套团队组建允许团队和子团队形成一种层级结构。设 g 0 ∈ G g_0 \in \mathcal{G} g0G为任务 t t t的初始群组聊天。在任务 t t t的执行过程中,如果客户端 c i c_i ci被分配了一个子任务 t l t_l tl(任务分配机制将在2.3.4节介绍),并且它确定 t l t_l tl需要额外的专业知识,那么 c i c_i ci可以再次搜索合适的智能体并发起一个新的子群组聊天 g l ∈ G g_l \in \mathcal{G} glG。对于在 g l g_l gl中分配的新子任务,这一过程可以递归地持续进行,从而形成一种类似树状结构的群组聊天。从形式上,我们可以定义一个函数 h : G → P ( G ) h : \mathcal{G} \to \mathcal{P}(\mathcal{G}) h:GP(G),它将一个群组聊天映射到其下属子群组聊天的集合。嵌套结构可以表示为: h ( g 0 ) = { g 1 , g 2 , … , g m } h(g_0) = \{g_1, g_2, \ldots, g_m\} h(g0)={g1,g2,,gm} h ( g i ) = { g i 1 , g i 2 , … , g i n } h(g_i) = \{g_{i1}, g_{i2}, \ldots, g_{in}\} h(gi)={gi1,gi2,,gin},依此类推。

  通信复杂度:嵌套团队组建机制有助于降低大型智能体团队中的通信复杂度。假设在每个群组内部是全连接通信,对于一个拥有 ∣ g ∣ \vert g\vert g 个成员的单一群组而言,通信通道(连接边)的数量 c full = ∣ g ∣ ( ∣ g ∣ − 1 ) 2 c_{\text{full}}=\frac{\vert g\vert(\vert g\vert - 1)}{2} cfull=2g(g1) 。然而,通过将一项任务分解为子任务并将它们分配到子群组聊天中,我们能够减少通信通道的总数。设 S ( g ) \mathcal{S}(g) S(g) 表示为最初分配给群组 g g g 的任务所形成的所有子群组(包括 g g g 自身)的集合。那么通信通道的总数就可以表示为: c nested = ∑ g i ∈ S ( g ) ∣ g i ∣ ( ∣ g i ∣ − 1 ) 2 ≤ c full c_{\text{nested}}=\sum_{g_i\in \mathcal{S}(g)}\frac{\vert g_i\vert(\vert g_i\vert - 1)}{2}\leq c_{\text{full}} cnested=giS(g)2gi(gi1)cfull

  图2展示了嵌套团队组建过程的一个示例。在此示例中,初始群组聊天 g 0 g_0 g0 在讨论期间针对特定子任务衍生出了三个子群组聊天 g 1 g_1 g1 g 2 g_2 g2 g 3 g_3 g3 g 1 g_1 g1 又针对一个更专业的子任务进一步创建了两个子群组聊天 g 21 g_{21} g21 g 22 g_{22} g22


图2:嵌套团队组建机制的一个示例。为清晰起见,对该过程进行了简化。


图3:不同状态之间的状态转换。

2.3.3 自主对话流程控制

  有效的沟通对于自主智能体之间成功开展协作至关重要。受言语行为理论(Austin,1975;Searle,1969)及其在多智能体系统中的应用(Finin等,1994;Labrou等,1999)的启发,我们在IoA中引入了一种自主对话流程控制机制。该机制使智能体能够协调它们的通信并维持结构化的对话,从而提升它们协作的效率和效果。

  顺序发言机制:为了管理潜在冲突并确保清晰的沟通,IoA采用了最基本的顺序发言机制。在任何给定时间,只允许一个智能体发言,以此避免混淆并维持清晰的通信顺序。这种方法虽然简单,但当与以下动态特性相结合时,可为更复杂的对话管理奠定基础。

  群组聊天状态的有限状态机:我们将对话流程形式化为一个有限状态机 M = ( S , Σ , δ , s 0 , F ) M = (S, \Sigma, \delta, s_0, F) M=(S,Σ,δ,s0,F),其中:

  • S = { s d , s s , s a , s p , s c } S = \{s_d, s_s, s_a, s_p, s_c\} S={sd,ss,sa,sp,sc} 是一组状态,分别代表讨论(discussion)、同步任务分配(synchronous task assignment)、异步任务分配(asynchronous task assignment)、暂停与触发(pause & trigger)以及总结(conclusion)这几个阶段。
  • Σ \Sigma Σ 是状态转换决策空间。
  • δ : S × Σ → S \delta : S \times \Sigma \to S δ:S×ΣS 是转换函数,它将当前状态以及由LLMs做出的转换决策映射到下一个状态。
  • s 0 = s d s_0 = s_d s0=sd是初始状态,代表对话在讨论阶段的开始。
  • F = { s c } F = \{s_c\} F={sc} 是终态集合,只包含总结状态。

  图3展示了对话流程中的状态转换情况。每个状态都对应着协作过程中的不同阶段:

  • Discussion s d s_d sd):智能体进行一般性对话,交流想法,并明确任务要求。
  • Synchronous task assignment s s s_s ss):任务被分配给特定的智能体,群组聊天会暂停直至任务完成(见2.3.4节)。
  • Asynchronous task assignment s a s_a sa):在不打断正在进行的讨论的情况下分配任务(见2.3.4节)。
  • Pause & trigger s p s_p sp):群组聊天暂停,等待指定的异步任务完成。
  • Conclusion s c s_c sc):标志着协作结束,提示进行最终总结。

  这些状态与言语行为理论中的言语行为相契合,比如断言类(对应讨论阶段)、指令类(对应任务分配阶段)、承诺类(对应暂停与触发阶段)以及宣告类(对应总结阶段)(Searle,1976)。

  自主状态转换与下一位发言者选择:近期研究已证明了LLMs在预定义的状态空间内自主管理状态转换的有效性(Liu & Shuai,2023;Wu等,2024a),而且状态机通常能提升整个系统的性能(Li等,2024)。在IoA中,每个客户端内的LLM负责确定状态转换以及选择下一位发言者。设 M t \mathcal{M}_t Mt为截至时间步 t t t 所交换的消息集合。我们将LLM的决策函数定义为: f LLM : M t × S → S × C f_{\text{LLM}} : \mathcal{M}_t \times S \to S \times \mathcal{C} fLLM:Mt×SS×C,其中 S S S 是状态集合, C \mathcal{C} C 是客户端集合。下一个状态 s t + 1 s_{t + 1} st+1 和下一位发言者 c t + 1 c_{t + 1} ct+1 通过以下方式确定: ( s t + 1 , c t + 1 ) = f LLM ( M t , s t ) (s_{t + 1}, c_{t + 1}) = f_{\text{LLM}}(\mathcal{M}_t, s_t) (st+1,ct+1)=fLLM(Mt,st)。这一决策过程会考虑诸如已分配任务的完成情况、是否需要进一步讨论以及协作的总体目标等因素。下一位发言者的自主选择确保了在恰当的时间让最相关的智能体参与进来,从而促进高效的信息交换和问题解决。

  通过实施这种自主对话流程控制机制,IoA实现了智能体之间结构化且高效的通信。这种方式能够动态适应协作需求,有助于在复杂的多智能体场景中更有效地解决问题和做出决策。

2.3.4 任务分配与执行

  IoA中的任务分配与执行机制旨在高效地在智能体之间分配工作,并管理简单及复杂任务的执行。该机制与团队组建以及对话流程控制机制协同工作,以确保有效的协作和任务完成。

  任务表示:在IoA中,任务 t ∈ T t \in \mathcal{T} tT被表示为一个元组 ( d t , S t ) (d_t, \mathcal{S}_t) (dt,St),其中 d t d_t dt是任务描述, S t = { s 1 , s 2 , … , s n } \mathcal{S}_t = \{s_1, s_2, \ldots, s_n\} St={s1,s2,,sn}是任务 t t t 可分解成的子任务集合。最初, S t \mathcal{S}_t St可能为空集,子任务会在协作过程中动态地被识别出来。

  任务分配:IoA中的任务分配是在群组聊天的情境下进行的,并且与对话流程控制机制紧密相关。任务分配有两种类型:

  1. 同步任务分配:当群组聊天进入同步任务分配状态 s s s_s ss 时,任务会被分配给特定的智能体,并且群组聊天会暂停,直至任务完成。
  2. 异步任务分配:在异步任务分配状态 s a s_a sa 下,任务分配不会打断正在进行的讨论。这使得任务能够并行执行。

  从形式上,我们可以定义一个任务分配函数 α : T × G → P ( C ) \alpha : \mathcal{T} \times \mathcal{G} \to \mathcal{P}(\mathcal{C}) α:T×GP(C),它将一个任务和一个群组聊天映射到负责执行该任务的客户端子集。

  任务执行:一旦任务被分配,负责的智能体(们)就开始执行。执行过程取决于任务的性质以及智能体的能力。对于集成的第三方智能体,任务执行是通过客户端基础层的智能体集成模块来处理的。该模块为任务执行提供了一个标准化接口,通常形式为:run : String → TaskID \text{String} \to \text{TaskID} StringTaskID,其中输入是任务描述,输出是该任务的唯一标识符。诸如执行中断等高级特性也可以在这个阶段实现。

  在任务或子任务完成后,负责的智能体(们)会向群组聊天汇报。对于同步任务而言,这会触发群组聊天的恢复。对于异步任务,会记录其完成情况,并将任何相关信息分享给群组。

  对话流程控制机制中的暂停与触发状态 s p s_p sp在管理多个异步任务的完成方面起着关键作用。它允许群组聊天在继续进行之前等待指定异步任务的完成,以确保协作后续阶段所需的所有信息都是可用的。

2.4 通用消息协议设计

  IoA中自主嵌套团队组建和对话流程控制机制的有效性依赖于一种通用性的消息协议。该协议通过封装各种机制正常运行所需的全部必要信息,实现了智能体之间的无缝通信与协作。

协议概述及关键字段 IoA中的智能体消息协议旨在具备可扩展性和灵活性,以促进有效的多智能体协作。该协议由两个主要部分构成:头部和有效载荷。

  头部包含有关消息的基本元数据,确保接收智能体能够正确地对消息进行寻址和处理。头部的关键字段包括:

  • sender:发送消息的智能体的唯一标识符。
  • group_id:消息所属群组聊天的标识符。

  有效载荷承载消息的主要内容,其内容因消息类型而异。它可以包含:

  • message_type:表明消息的用途(例如,讨论、任务分配、暂停与触发)。
  • next_speaker:预期做出回应的智能体(们)的标识符(集合)。

  这种结构还包含其他字段,以便有效地支持IoA的多种功能。关于消息协议的详细解释和示例可在附录A.1中找到。

  为确保无缝通信与协调,IoA的客户端和服务器组件均会实施该消息协议。当客户端发送消息时,它会依据协议对消息进行编码,然后将其传输至服务器。服务器会解析消息,从消息头部提取相关信息,并依据group_id将消息路由到相应的群组聊天中。客户端在接收到消息后,会对其进行解码并做相应处理。这种统一的实施方式确保了所有智能体无论其角色或任务如何,都能够正确理解并回应消息,从而维持一个连贯且高效的协作流程。


图4:IoA主要组件的示例演练。

2.5 整合起来:IoA实际运行示例

  为了阐释IoA的综合功能,在图4中,我们通过一个示例任务——撰写一篇关于智能体互联网的研究论文,来展示该系统的运行流程。起初,客户端 c 1 c_1 c1是一位在人工智能学术论文方面经过额外训练的人工智能研究专家,它启用团队组建模块,利用search_client功能,输入关键词列表{Internet, Multi-Agent System Specialist, Paper Writing, LLM Expert}。服务器返回一组匹配的客户端{ c 2 c_2 c2 c 3 c_3 c3 c 4 c_4 c4 c 5 c_5 c5},然后 c 1 c_1 c1通过发起群组聊天功能,与成员{ c 1 c_1 c1 c 2 c_2 c2 c 3 c_3 c3}组建了群组 g 0 g_0 g0,其中 c 2 c_2 c2能够访问学术数据库, c 3 c_3 c3擅长学术写作。

  在群组聊天 g 0 g_0 g0组建完成后,所有客户端都切换到 g 0 g_0 g0对应的通信模块,在这里,以有限状态机形式实现的自主对话流程控制机制引导着协作过程。该过程首先在讨论状态( s d s_d sd)进行头脑风暴,接着进入任务分配状态( s s s_s ss, s a s_a sa),智能体们被分配具体的职责。例如, c 2 c_2 c2的任务是利用其访问学术资源的权限进行文献综述。当 c 2 c_2 c2发现需要专业的PDF处理方面的专业知识时,就体现了嵌套团队组建机制。这促使 c 2 c_2 c2启动子群组组建流程,最终创建了包含新智能体 c 6 c_6 c6(一位PDF专家)的子群组 g 1 g_1 g1。在整个过程中,对话在讨论( s d s_d sd)和异步任务分配( s a s_a sa)状态之间交替进行,便于对已分配任务开展并行工作。消息协议确保了高效通信,使得在嵌套的群组结构中能够顺利进行想法、引用以及稿件片段的交流。

  在最后的整合阶段,群组进入同步任务分配状态( s s s_s ss)进行协同编辑和完善,这展示了IoA协调多个智能体之间高强度、实时协作的能力。整个流程以过渡到总结状态( s c s_c sc)结束,在此状态下会进行最终审核,然后准备提交论文。


表1:GAIA基准测试验证集上的性能表现。

3. 实验

  为了证明IoA在整合异构智能体方面的有效性和通用性,我们针对多样化的任务开展了全面的实验。这些实验旨在展示智能体异构性的不同方面:工具差异性(3.1节)、架构多样性(3.2节)、不同的观测与动作空间(3.3节)以及多样化的知识库(3.4节)。我们有两个目标:一是阐释IoA在促进异构智能体协作方面的能力,二是强调其在不同问题领域的适应性。在本节中,我们将展示实验结果,并针对每个任务类别对IoA与最先进(SoTA)的方法进行对比分析。IoA中的提示在不同任务中保持一致,并非针对某一特定任务进行专门调整。

3.1 异构工具:GAIA基准测试

  为了评估IoA整合配备异构工具的智能体的能力,我们采用了GAIA基准测试(Mialon等人,2023年)。该基准测试包含了一组多样化的现实世界问题,旨在通过对多项技能(包括自然语言理解、推理以及外部知识整合)的协同应用,评估智能体系统解决复杂任务的能力。该基准测试的三层难度结构为评估智能体系统的能力提供了一个可靠的测试平台。

实验设置:我们用四个基本的反应(ReAct)智能体(Yao等人,2023年)实例化IoA,每个智能体配备了不同的工具:一个网络浏览器、一个代码解释器、一个维基数据搜索器以及一个YouTube视频字幕下载器。这种配置使我们能够评估IoA协调配备异构工具的智能体之间协作的能力。我们将IoA与几个最先进的智能体系统进行对比测试,评估其在GAIA基准测试的所有三个难度级别以及整体性能方面的表现。详细的实施细节在附录A.4.1中提供。

结果与分析:表1中呈现的实验结果表明,IoA在GAIA基准测试中表现优异。尽管只使用了基本的反应(ReAct)智能体,但IoA实现了最高的整体性能,超越了所有其他方法。值得注意的是,IoA在更具挑战性的二级和三级任务中表现出色,这些任务需要高级推理和复杂的协作。这一表现凸显了IoA通信机制的有效性以及其促进智能体间无缝协作的能力。

  与AutoGen相比,IoA在三个难度级别中的两个级别上表现更优。这种优势可归因于IoA的协作机制以及整合配备不同工具的智能体的灵活性,而在AutoGen中,只有一个智能体使用不同工具,其他智能体充当反馈提供者。IoA中实施的机制能够实现自适应团队组建以及高效的子任务执行,最终在复杂的、多层面的问题上提升了性能。

  GAIA 基准测试的结果凸显了IoA作为一个强大的协调器,在解决现实世界多步骤问题时协调不同智能体的潜力。通过为智能体协作提供一个灵活且高效的平台,IoA使得即使是基本的智能体也能够达到最先进的性能水平,超越了更为复杂的独立智能体。这一结果突出了多智能体系统中有效沟通与协调的关键作用,也验证了支撑IoA的架构及设计选择的合理性。


图5:IoA 、AutoGPT 和 Open Interpreter 在开放式指令基准测试中的胜率对比。

3.2 异构架构:开放式指令基准测试

  为了评估IoA整合及协调具有异构架构的智能体的能力,我们利用自指令(self-instruct,Wang等人,2023e)开发了一个包含153条开放式指令的综合基准测试。该基准测试涵盖四个不同的类别:搜索与报告、编码、数学以及生活辅助。与主要侧重于有确定答案的问答任务的GAIA基准测试不同,我们精心编制的这个基准测试纳入了更高比例的需要生成式回复的非问答任务。这样的设计选择旨在更好地反映现实世界中智能体系统需要应对的各类挑战的多样性。编制过程在附录A.4.2中有详细阐述。

  实验设置:在此实验设置中,我们将两个具有不同架构的最先进的第三方智能体——AutoGPT(Significant Gravitas,2023)和Open Interpreter(Open Interpreter,2023)整合到IoA生态系统中。整合过程(详见附录A.4.2)展示了IoA在接纳具有不同内部结构和操作范式的智能体方面的通用性。这种配置使我们能够评估IoA在促进具有异构架构的独立开发智能体之间协作的有效性。

  为了进行评估,我们采用GPT - 4 - 1106 - preview作为公正的评判者,此前的研究表明GPT模型与人类评估者在评估回复质量方面具有高度一致性(Chiang等人,2023;Zheng等人,2023a;Chen等人,2023),这一选择正是基于该研究成果。为减轻潜在的由顺序导致的偏差,我们依照Zheng等人(2023a)的方法实施了一种稳健的评估方式,即在提示中回复的顺序是交替的。只有当一个竞争者在两种顺序下都被一致判定更优时,才判定其“获胜(win)”。

  结果与分析:图5所示的实验结果表明,在协调AutoGPT和Open Interpreter之间的协作时,IoA具有显著的性能优势。在所有四个任务类别中,IoA始终优于这两个单独的智能体。总体而言,IoA相对于AutoGPT的胜率达到了显著的76.5%,相对于Open Interpreter的胜率达到了63.4%。这些结果凸显了IoA在高效收集与整合信息方面的能力,以及其在促进不同领域协同解决问题方面的有效性。

  IoA所展现出的无缝整合并协调具有异构架构的智能体的能力,使其能够利用各种独立开发的智能体的优势,进而有可能创建出功能更全面、能力更强的智能体系统。随着专业人工智能智能体的应用场景不断拓展,IoA整合并促进这些不同实体之间协作的潜力,使其成为开发日益复杂且适应性更强的智能体系统的一个很有前景的平台。


表2:RoCoBench中不同任务的平均成功率及步骤数量。

3.3 异构观测与动作空间:具身智能体任务

  为了评估IoA协调具有异构观测与动作空间的智能体的有效性,我们在具身人工智能领域开展了实验。该领域存在独特的挑战,要求智能体感知、理解并与它们所处的物理环境进行交互。我们使用了RoCoBench(Mandi等,2023),这是一个旨在评估具身智能体协作与通信能力的最先进的基准测试平台。RoCoBench包含六个协作任务,每个任务都要求两到三个智能体凭借对环境的部分(通常是不同的)动作空间或观测结果来朝着共同目标进行协作。

  实验设置:我们将IoA与Mandi等(2023)设定的两个基准进行对比测试:(1)Central Plan,一个集中式智能体拥有完整的环境信息,并能控制所有具身智能体;(2)Roco Dialog,一个专门针对此类任务设计的多智能体框架,可实现智能体间的通信与决策。

  鉴于RoCoBench要求智能体以特定格式输出行动计划,而非与工具进行交互,我们针对这一情况对IoA进行了调整,且未整合外部智能体。相反,我们向两个IoA客户端提供环境观测结果,并从它们的讨论中提取行动计划。这种设置使我们能够评估IoA管理具有异构观测与动作空间的智能体的能力。详细的实施细节可在附录A.4.3中获取。为确保公平比较,对于每个任务,我们对IoA和Roco Dialog都各进行10次运行,并报告平均成功率以及完成任务所需的步骤数。Central Plan的结果直接来源于Mandi等(2023)的研究。需要注意的是,由于基准测试版本发布时存在实施错误,“整理杂货”(Pack Grocery)任务被省略了。

  结果与分析:表2展示了完成任务的平均成功率以及所需步骤数。值得注意的是,尽管IoA并未针对具身任务进行专门优化,但就成功率而言,在五个任务中的四个任务上,它的表现优于专门针对该基准测试设计的Roco Dialog框架。IoA在“整理橱柜”(Cabinet)、“制作三明治”(Sandwich)以及“分类”(Sort)任务中都取得了满分,这表明其通信与协作机制在使具有异构观测与动作空间的具身智能体朝着共同目标协同工作方面具有很强的稳健性。更令人印象深刻的是,相较于能够获取完整环境观测信息的Central Plan这一基准,IoA的表现也毫不逊色。在各个任务中,IoA的成功率要么优于要么与Central Plan相当,尽管完成任务通常需要略多一些的决策步骤。鉴于IoA是一个通用的多智能体框架,并非专门针对具身人工智能任务而设计,决策步骤数的少量增加是其通用性和有效性的合理权衡。

  IoA在具身人工智能场景中的成功凸显了它的通用性和有效性。这表明IoA所依据的原理,例如自主对话流程控制等,从根本上说是具有通用性的,意味着IoA在众多现实世界场景中都具有潜在适用性,在这些场景中,尽管智能体有着不同的视角或能力,但仍需进行协作。


表3:检索增强生成(RAG)任务的结果。基于GPT-3.5的IoA在所有任务中的表现与GPT-4相当,甚至更好。(除GPT-4外的)最佳结果以粗体显示,次佳结果以下划线标注。“异构”意味着智能体拥有不同的证据库,而“同质”意味着所有智能体均可访问所有证据库。

3.4 异构知识:检索增强生成

  为了评估IoA协调具有异构知识的智能体的有效性,我们针对检索增强生成(RAG)任务(Lewis 等人,2021年)开展了实验。检索增强生成(RAG)任务带来了独特的挑战,即智能体必须从不同来源检索相关信息,并协同合成准确的回复,这使其成为评估IoA管理知识异构性以及促进智能体间有效通信能力的理想测试平台。

  实验设置:我们按照Apollo’s Oracle(Wang等人,2023b)的方式,以GPT - 3.5 - turbo - 0125作为核心语言模型来实现IoA。为了评估知识异构性及其影响,我们设计了三种场景:1)异构知识:两个客户端访问不同的证据库(维基百科/谷歌),以此测试IoA管理知识异构性的能力。2)同质知识(2个智能体):两个客户端均可访问这两个证据库,作为一种对照,以分离异构性的影响。3)同质知识(3个智能体):三个客户端均可访问这两个证据库,用于评估可扩展性以及知识冗余的权衡情况。

  这种设计使我们能够将知识异构性的影响与智能体数量以及知识冗余的影响区分开来。我们使用来自以下四个数据集的各250个随机抽样的问答对进行评估:TriviaQA(Joshi 等人,2017年)、Natural Questions(NQ,Kwiatkowski 等人,2019年)、HotpotQA(Yang等人,2018年)以及2WikiMultiHopQA(2WMHQA,Ho等人,2020年)。实施细节在附录A.4.4中。

  结果与分析:表3展示了IoA在所有数据集上的出色表现,尽管其基于GPT - 3.5,但常常能超越或与GPT - 4的表现相匹配。在四个任务中的两个任务上,IoA的异构知识场景的表现优于同质的Apollo’s Oracle,这展示了IoA在管理知识多样性方面的有效性。这种配置在NQ数据集上取得了最佳性能,在其他数据集上也取得了颇具竞争力的结果,常常优于单模型方法以及像Apollo’s Oracle这样的专门框架。这凸显了IoA在促进来自异构来源的信息交换与合成方面的有效性,能有效地弥补单个智能体的知识缺口。

  我们也在同质设置下开展了实验。具有3个智能体的IoA实现了最佳的整体性能,在TriviaQA数据集上超越了所有基准,在其他数据集上也展现出颇具竞争力的结果。有趣的是,在HotpotQA和2WikiMultiHopQA数据集上,2个智能体的同质配置的表现优于3个智能体的设置,这表明最佳的智能体配置可能取决于任务本身。这些结果不仅验证了IoA在检索增强生成(RAG)任务中的有效性,还凸显了其作为一个通用平台在多智能体系统中管理异构和同质知识的潜力。


表4:团队组建机制的性能表现。“常规”表示初始团队组建设置,“嵌套”表示嵌套团队组建机制。

4. 分析

4.1 团队组建精度

  为了评估IoA自主团队组建机制的精度,我们利用GPT - 4开发了一个基准测试,该基准测试包含625个不同的任务以及与之对应的1500个虚拟智能体概况。这种模拟环境使我们能够在大规模场景下评估常规团队组建和嵌套团队组建的准确性。详细的数据构建过程可在附录C中获取。

  实验设计:我们评估了两种不同的场景:常规团队组建和嵌套团队组建。对于常规团队组建,每个任务都与由GPT生成的2个或更多合适的智能体概况相关联。对于嵌套团队组建,我们会为每个原始任务生成一个子任务,最初组建的团队可能有能力完成这个子任务,也可能没有。如果不能完成,就会生成一个能够处理该子任务的额外智能体概况。我们会评估团队能否正确决定何时进入嵌套团队组建阶段,并评估嵌套团队组建的精度。

  我们使用四个指标来评估这两种设置:Top@1和Top@10召回率、平均排名(Mean Rank,MR)以及平均倒数排名(Mean Reciprocal Rank,MRR)。Top@1衡量精确匹配情况,而Top@10考虑语义相似性,即如果招募的智能体在与标签智能体最相似的前10个智能体之中,就视为已召回该智能体。平均排名(MR)和平均倒数排名(MRR)能够深入了解所检索智能体的排名质量。

  结果与分析:表4展示了两种团队组建机制的表现,每种机制都基于其特定的数据集和设置进行评估。在常规团队组建场景中,该场景用于评估针对给定任务组建初始团队的能力,我们观察到Top@1召回率为41.4%,Top@10召回率为64.9%。这意味着该机制有41.4%的情况能够精确匹配标注的智能体,而在考虑语义相似性时,检索到的智能体在64.9%的情况下会处于与标签智能体最相似的前10个智能体之中。平均排名(MR)为27.4,平均倒数排名(MRR)为50.1%,这表明平均而言,相关智能体排在前30个结果之内,且有排名靠前的趋势。

  在嵌套团队组建场景中,该场景用于评估在可能出现需要额外专业知识的子任务这种情况下机制的表现,我们看到Top@1召回率为59.7%,Top@10召回率为81.8%。平均排名(MR)为10.6,平均倒数排名(MRR)为66.5%,这表明相关智能体通常能在前11个结果中被找到,且有很强的排名非常靠前的趋势。这些指标表明在这种更具动态性的场景中该机制表现良好。

  这些结果证明了IoA在初始任务分配以及任务要求可能发生变化的场景中组建精确团队的能力。较高的召回率,尤其是在相似性匹配(Top@10)方面的高召回率,对于处理需要多样化或专业化技能的复杂任务至关重要。


表5:在开放式指令基准测试中独立智能体和整合到IoA中的智能体的成本分析。


图6:重复通信的一个示例。

4.2 成本及次优通信模式分析

  为评估IoA的经济可行性及优化潜力,我们针对开放式指令基准测试(见3.2节,其中整合了AutoGPT和Open Interpreter)开展成本分析。我们比较了这些智能体单独运行以及整合到IoA中时每项任务的平均成本。

  如表5所示,整合到IoA中时,由于对每项任务进行了任务分解,这两个智能体的成本均有所降低。然而,IoA会引入每项任务$0.53的额外通信成本,从而使得总体成本达到$0.99。

  在分析过程中,我们观察到了一些导致高通信成本的意外且次优的通信模式。一种显著的模式是信息重复,客户端中的LLMs会重复或重新表述它们自己或其他智能体之前的聊天内容,进而导致进展停滞。这种现象在经过几次异步任务分配后尤为普遍。尽管每项任务分配并不需要立即等待,但随着对话推进,必须基于先前已分配但尚未完成的异步任务的结论来做出新决策。尽管为客户端的LLMs提供了将群组聊天状态切换为“暂停&触发”的选项,但它们有时未能进行切换,如图6所示。在其他多智能体相关工作(Li等,2023;Mandi等,2023)中也观察到了LLMs存在的这一缺陷。

  为量化这种次优通信模式的影响,我们手动去除了重复内容,并重新计算了令牌数量及相应成本。令人惊讶的是,如表5中“Dedup.”行所示,这使得通信成本降低了近50%。这一发现与来自其他多智能体通信框架的观察结果相符,表明尽管现代LLMs很适合作为有效的聊天机器人助手,但它们可能并非最优地适配于成为高效的通信智能体。智能体不仅要准确完成给定任务,还应与其他智能体有效通信,理解对话状态并做出恰当决策。这一见解引发了关于LLMs的智能体对齐方面的新研究问题,并凸显了在该领域进一步开展研究的必要性。

  尽管目前存在成本开销及次优通信模式的情况,但IoA在促成异构智能体间有效协作方面展现出显著潜力。通过在IoA概念下进行提示优化、协议细化以及开发更复杂的框架来应对这些挑战,我们相信通信成本能够得到显著降低。随着研究推进,IoA及类似方法将成为复杂多智能体系统中越来越有吸引力且经济上可行的解决方案。

5. 相关工作

基于 LLM 的智能体 大语言模型(如OpenAI 2023年推出的GPT、Anthropic 2024年推出的Claude以及Reid等2024年推出的Gemini)近期取得的进展,推动了高性能人工智能智能体的发展,这些智能体能够进行自然语言交互并执行各种各样的任务。为增强基于LLM的智能体的能力,研究人员探索了整合外部工具及知识源的方法(Nakano等2021;Yao等2023;Schick等2023;Shen等2023),使智能体能够访问并利用超出其预训练知识范围的相关信息。各类智能体已在众多领域展现出显著进展,包括操作系统交互、软件工程以及通用人工智能应用等领域。例如,OS-Copilot便于在网络浏览器和代码终端之间进行通用交互(Wu等2024b),OpenDevin专注于编码、调试等自主软件开发任务(OpenDevin Team 2024)。其他值得关注的成果包括用于解决复杂任务的XAgent(Team 2023)以及利用LLM在《我的世界》游戏中进行开放式具身交互的Voyager(Wang等2023a)。这些进展为更复杂、功能更全面的基于LLM的智能体奠定了基础,使其能够自主执行任务并持续学习。

基于 LLM 的多智能体系统 在单个基于LLM的智能体取得成功的基础上,研究人员开始探索由这些智能体组成的多智能体系统的潜力。早期研究证明了使用LLM模拟多智能体交互及涌现行为的可行性(Park等2023)。自那以后,人们提出了各种各样的方法来实现基于LLM的智能体之间的有效协作与通信。诸如AgentVerse(Chen等2023)和AutoGen(Wu等2023)等框架为智能体协作提供了必要的基础设施。在软件开发方面,像ChatDev(Qian等2023a)、MetaGPT(Hong等2023)这样的多智能体系统在自动化编码、测试及调试流程方面展现出了良好的前景。尽管取得了这些进展,但仍存在一些重大局限,例如缺乏对整合不同第三方智能体的支持、无法支持分布式多智能体系统以及依赖硬编码的通信协议和状态转换等。IoA旨在解决这些局限,为基于LLM的多智能体协作提供一个更灵活、可扩展的平台,为能够有效解决复杂现实世界问题的更先进、实用的系统铺平道路。

6. 结论

  在本文中,我们介绍了IoA,这是一个受互联网概念启发的、用于基于LLM的多智能体协作的新颖框架。IoA通过提供一个灵活且可扩展的平台来整合不同的第三方智能体、实现分布式多智能体协作,并引入智能体组队和对话流程控制的动态机制,从而解决了现有多智能体框架存在的局限。通过在各类基准测试上开展的大量实验,我们证明了IoA在促进异构智能体之间高效协作方面的有效性,其表现持续优于最先进的基准方法。随着基于LLM的智能体领域不断发展,我们相信IoA将成为未来多智能体协作研究与开发的基础。通过实现具有专业技能和知识的不同智能体的整合,我们的框架为利用那些独立开发的现有智能体开辟了新的可能性。我们希望我们的工作能够启发在这一前景广阔的方向上开展进一步研究,并为开发更先进、更具影响力的多智能体系统做出贡献。

附录A IoA的实现细节

  在本附录中,我们将对IoA客户端层和服务器层中各个模块的实现细节进行全面概述。


图7:IoA消息协议中的字段。

A.1 消息协议

  为了支持在2.4节中介绍的IoA的各项功能,我们设计了一个全面的智能体消息协议,该协议有助于智能体之间进行高效的通信与协调。如图7所示,该协议由多个字段组成,这些字段能够满足框架内各种机制的特定需求。

  首先,对于所有消息类型,协议都包含以下头部信息:

  • sender(str):发送消息的智能体的名称或唯一标识符。
  • state(enum):与消息相关的群组聊天的当前状态,其可以是团队组建状态或通信状态。
  • comm_id(str):消息所属群组聊天的唯一标识符。

  为了支持自主团队组建机制,协议纳入了以下字段:

  • goal(str):当前群组聊天旨在完成的目标或任务。
  • team_members(list[str]):当前群组聊天所需智能体的名称或唯一标识符。
  • team_up_depth(int):当前嵌套团队组建的深度,用于判断是否已达到允许的最大深度。
  • max_turns(int):当前群组聊天所允许的最大讨论轮次。如果超出该轮次,群组聊天将强制进入结束阶段。

  为便于讨论阶段的开展,协议包含了以下字段:

  • content(str):当前消息的实际内容。
  • type(enum):指定下一个对话状态,其可以是讨论、任务分配或结束状态。
  • next_speaker(list[str]):预计接下来发言的智能体的名称或唯一标识符。在讨论状态下,下一位发言者限定为单个智能体,而在任务分配状态下,它可以包含多个智能体,这意味着当前消息包含多个任务分配情况。

  为支持任务分配机制,协议纳入了以下字段:

  • task_id(str):为当前任务自动生成的唯一标识符。
  • task_desc(str):分配给客户端的任务描述,从聊天内容中提取而来。
  • task_conclusion(str):客户端在完成所分配任务后提供的结论或结果。
  • task_abstract(str):已完成任务的简要概述。

  最后,为支持暂停&触发机制,协议包含了以下字段:

  • triggers(list[str]):需要设置触发条件的任务ID列表。

  通过遵循这一全面的智能体消息协议来发送和接收消息,IoA中的客户端能够有效地实现自主团队组建以及对话流程控制。该协议确保了所有必要信息能在智能体之间进行传递,从而使得在各种任务场景下都能实现无缝协作与协调。

A.2 客户端

  IoA的客户端组件在实现异构智能体的整合与协作方面起着至关重要的作用。它由三层构成:基础层、数据层和交互层。每层都包含若干模块,这些模块协同工作,以促进高效通信、数据管理以及智能体协调。在本小节中,我们将详细介绍客户端各层内每个模块的实现情况。

A.2.1 基础层

网络基础设施模块 在IoA中,所有客户端都使用WebSocket协议与服务器保持持久连接,这与即时通讯应用类似。当客户端发送消息时,消息会被传送到服务器,服务器会解析消息中的通信标识(comm id)字段,并通过各客户端相应的WebSocket连接将消息转发给对应群组聊天中的其他客户端。WebSocket的实时性确保了消息能够及时送达,使客户端能够无延迟地接收并回复消息。

数据基础设施模块 为了满足上层数据层模块的数据存储和检索需求,我们采用SQLite作为主要的数据库解决方案。SQLite提供了一种轻量级且高效的方式来持久化和访问与智能体联系人、群组信息以及任务管理相关的数据。通过利用SQLite,客户端能够存储并检索有关所遇智能体、群组聊天详情以及任务分配的信息,从而确保在整个协作过程中数据的一致性和可用性。

智能体整合模块 智能体整合模块定义了第三方智能体为了能与IoA无缝整合而必须遵循的协议。目前,IoA中的智能体整合协议要求智能体实现一个形如 def run(task desc: str) -> str 的函数,该函数接收任务描述作为输入,并返回任务完成情况的摘要。这一简单却有效的协议使得各种各样的智能体能够被纳入该框架中,使它们能够在协作过程中发挥各自独特的能力。随着IoA的发展,整合协议可扩展以支持更高级的功能和交互模式。

A.2.2 数据层

智能体联系人模块 智能体联系人模块负责记录当前客户端此前曾协作过的其他客户端信息。它存储诸如这些客户端的名称和描述等信息,为未来的协作提供有价值的参考。该模块旨在支持客户端在每次任务完成后评估并存储协作成果,使其在为后续任务组建团队时能够做出明智的决策。在团队组建过程中,该模块中存储的信息会被纳入提示内容,以协助客户端依据过往经验选择最合适的合作伙伴。

群组信息模块 群组信息模块管理所有与群组聊天相关的信息,包括以下字段:

  • comm_id(str):群组聊天的唯一标识符。
  • goal(str):群组聊天旨在达成的目标或任务。
  • team_members(str):参与群组聊天的智能体列表。
  • state(str):群组聊天的当前状态(例如,团队组建、讨论、任务分配、结束等状态)。
  • conclusion(str — None):群组聊天达成的最终结果或结论。
  • team_up_depth(int):群组聊天内嵌套团队组建的深度。
  • max_turns(int):群组聊天中允许的最大交流轮次。

  通过对这些信息进行组织和持久化存储,群组信息模块使客户端能够对正在进行的协作及其进展情况保持清晰的了解。

任务管理模块 任务管理模块负责存储并跟踪在每个群组聊天中分配的任务。它为每个任务维护以下字段:

  • task_id(str):任务的唯一标识符。
  • task_desc(str):任务的详细描述。
  • task_abstract(str):任务的简要概括。
  • assignee(str):被分配去完成任务的智能体。
  • status(enum):任务的当前状态(例如,待办、进行中、已完成等状态)。
  • conclusion(str — None):任务的最终结果或成果。

  通过跟踪与任务相关的信息,任务管理模块使客户端能够监控已分配任务的进展情况,并确保所有与任务相关的数据随时可供参考,以便用于决策等目的。

A.2.3 交互层

团队组建模块 正如在2.3.2节中简要介绍的那样,当客户端接收到一项任务时,它配备了两个关键工具:search_agent(desc: list[str]) -> list[agent](根据给定的描述在服务器上查找匹配的智能体,并返回智能体列表)以及 launch_group_chat(team_members: list[str] | None) -> comm_id(基于找到的智能体和历史协作信息发起群组聊天,并返回通信标识)。客户端必须决定是使用 search_agent工具在服务器上查找符合指定描述的智能体,还是基于已发现的智能体和历史协作信息直接调用 launch_group_chat工具。如果客户端调用 launch_group_chat工具时未指定任何智能体,这意味着该任务将由单个智能体来完成。为防止出现无限循环,IoA对工具调用的最大次数设置了限制,默认值为10次。如果客户端达到此限制仍未成功发起群组聊天,那么它将被迫调用 launch_group_chat工具来启动协作流程。

通信模块 通信模块负责消息生成和消息接收的核心功能。当客户端生成一条消息时,IoA会依据智能体消息协议对其进行处理。如果消息类型为 conclusion,客户端就会进入结论阶段,在此阶段它将基于积累的聊天记录和任务完成信息为群组聊天目标提供最终答案。若是 pause & trigger消息,框架会提示客户端生成需要触发条件的任务标识,并将其广播给所有群组成员。对于 discussiontask assignment消息,它们会被直接广播给群组聊天中的所有参与者。

  当客户端接收到一条消息时,它会依据智能体消息协议对消息进行解析。如果 next_speaker字段中不包含当前客户端,那么该消息就会被简单地添加到群组聊天历史记录中。然而,如果客户端被指定为下一位发言者,它就必须根据消息类型采取相应的行动。对于 discussion消息,客户端需要生成回复以继续对话。若是 syncasync task assignment消息,客户端会从聊天记录中提取分配给自己的任务,对其进行总结,并明确要传递给所整合智能体的相关信息。然后,智能体将基于总结后的描述以及相关聊天消息执行任务,并在完成后返回结果。如果消息类型是 pause & trigger,客户端则要更新任务管理模块中相应的任务触发条件。

  通信模块与交互层和数据层的其他模块协同工作,使智能体之间能够实现无缝且结构化的协作。通过遵循定义明确的智能体消息协议,并利用各个模块所提供的功能,客户端能够有效地参与讨论、分配任务以及协调自身行动,从而实现预期目标。

A.3 服务器

  IoA的服务器组件充当着智能体协调、通信以及管理的核心枢纽。它由三层构成:基础层、数据层和交互层。每层都包含一些模块,这些模块协同工作,以促进智能体注册、发现以及消息路由等功能的实现。在本小节中,我们将详细描述服务器各层内每个模块的实现情况。

A.3.1 基础层

网络基础设施模块和数据基础设施模块 服务器中的网络基础设施模块和数据基础设施模块与客户端中的相应模块大体相似。不过,服务器的数据基础设施模块结合使用了Milvus向量数据库,以支持智能体注册表的构建和维护。Milvus能够基于智能体的特征进行高效的相似性搜索及信息检索,使得服务器能够为客户端提供有效发现和匹配智能体的功能。

安全模块 尽管在IoA当前的实现中,安全模块尚未被广泛使用,但我们深知它在确保该框架在实际部署中的完整性和可靠性方面起着至关重要的作用。该模块负责验证并管控第三方智能体与客户端的整合过程,防止恶意智能体破坏整个框架。随着IoA的发展,安全模块将会得到强化,以提供强大的认证、授权以及监控机制,保护协作环境免受潜在的安全威胁。

A.3.2 数据层

智能体注册表模块 智能体注册表模块会全面记录所有接入服务器的客户端信息。当客户端连接到服务器时,需要提供所整合智能体的详细描述,包括其名称和能力描述等信息。这些信息会被存储在智能体注册表中,以便基于智能体的特征进行相似性匹配。智能体注册表作为智能体信息的核心存储库,为智能体发现和团队组建流程提供了便利。

会话管理模块 会话管理模块负责管理所有在线智能体的WebSocket连接,并跟踪它们所参与的群组聊天情况。它维护着智能体与其各自的WebSocket连接之间的映射关系,以及智能体和群组聊天之间的关联关系。当客户端发送消息时,会话管理模块会确保消息能被正确地路由到对应群组聊天所涉及的所有客户端,从而保障协作环境内通信的可靠性和高效性。

A.3.3 交互层

智能体查询模块 智能体查询模块负责处理客户端发来的、基于特定特征来查找并匹配智能体的请求。收到查询请求后,该模块会将所提供的特征转换为向量表示形式,并针对存储在智能体注册表中的智能体进行相似性匹配。该模块的具体实现方式可能会因框架的特定需求以及可扩展性要求而有所不同。例如,可以采用诸如BM25之类的技术或其他信息检索方法来强化匹配过程,提升返回的智能体结果的相关性。

群组创建模块 群组创建模块负责处理客户端创建新群组聊天的请求。当客户端提交创建群组聊天的请求并指定期望的团队成员时,群组创建模块会对该请求进行处理,并初始化一个新的群组聊天实例。它会为新创建的群组聊天分配一个唯一的 comm_id,并通知所有参与的客户端它们已被纳入该聊天群组中。群组创建模块与会话管理模块协同工作,以确保为群组聊天内的高效通信建立起必要的WebSocket连接及映射关系。

消息路由模块 消息路由模块在促进群组聊天中客户端之间的通信方面起着关键作用。当客户端发送消息时,消息路由模块会接收该消息,并依据智能体消息协议对其进行解析。基于消息中指定的 comm_id,该模块会识别出对应的群组聊天,并将消息转发给与该聊天相关的所有客户端。消息路由模块利用会话管理模块所维护的信息,确保消息能准确、及时地送达预期的接收者手中。

  IoA的服务器组件凭借其精心设计的各个模块以及它们之间的交互,为智能体的协调、通信和管理提供了一个强大且高效的基础设施。通过利用基础层、数据层和交互层的各项能力,服务器实现了智能体的无缝发现、团队组建以及消息交换,营造出一个协作环境,使得不同的智能体能够共同协作以达成共同目标。

  随着IoA不断发展,服务器组件将会进一步得到强化,纳入诸如负载均衡、容错以及可扩展性等高级特性,确保该框架能够应对现实世界中多智能体系统日益增长的需求。此外,安全模块也会得到加强,以提供全面的安全措施,保障框架内智能体交互的完整性和保密性。

A.4 不同实验的实现细节

  在本节中,我们将概述为评估IoA性能而开展的各项实验的实现细节。

A.4.1 GAIA

  对于GAIA基准测试,IoA整合了四个基于推理与行动(ReAct)机制的智能体:网页浏览器、代码执行器、YouTube字幕下载器以及维基数据搜索器。提供给网页浏览器和代码执行器智能体的工具是在自动生成(AutoGen)框架的基础上进行了细微修改而来的,以此确保与IoA的兼容性。为应对GAIA中与YouTube相关的任务,我们基于PyTube4开发了一个YouTube视频字幕下载器。对于那些没有现成字幕的视频,该工具会运用Whisper模型将口语转录为文本。同样地,我们对来自Langchain5的维基数据工具进行了调整,使其适配IoA生态系统。这些调整展示了IoA的一个关键特性:当一项任务需要特定工具时,可以通过工具的实现以及智能体的适配轻松将其整合到系统中,使其能够参与到任务完成过程里。

  由于预算限制,我们是在GAIA验证集上进行性能测试的。尽管存在这一限制,但测试结果仍为了解IoA在处理复杂多步骤任务方面的有效性提供了有价值的见解。


图8:我们的开放式指令基准测试中不同类别示例指令。

A.4.2 开放式指令基准测试

  为创建一个多样化且具有挑战性的基准测试,用以评估IoA在开放式任务方面的性能,我们构建了一组包含153条指令的集合,这些指令涵盖了四个类别:搜索与报告、编码、数学以及生活辅助。基准测试的构建过程涉及三个主要步骤:

  首先,我们依据XAgent(Team,2023年)所使用的现实世界复杂任务来选取指令,这些指令被归入上述提及的四个类别之中。其次,为增加基准测试的多样性,我们手动创建了另外10个复杂任务。最后,我们使用Self-Instruct方法(Wang等人,2023e),以前面选取的指令作为种子来生成大约200条指令。经过人工筛选和修改后,我们获得了另外94条指令,最终形成了总共153项任务。该基准测试最终包含52个搜索与报告任务、30个编码任务、30个数学任务以及41个生活辅助任务。通过纳入多样化的开放式指令集,这一基准测试能够对IoA在处理广泛的现实世界场景时的性能和通用性进行全面评估。我们在图8中展示了每个类别中的一条示例指令。

  评估方法:对于IoA,我们将智能体生成的最终结论视为最终答案。然而,由于AutoGPT(Significant Gravitas,2023年)和Open Interpreter(Open Interpreter,2023年)是通过多个步骤来完成任务,且本身并不自然生成结论,所以我们提示它们在任务完成后提供一个详细的结论作为最终答案。

  受MT-Bench(Zheng等人,2023b)中使用的成对比较评估方法的启发,我们借助GPT-4来评估IoA相对于AutoGPT和Open Interpreter的响应情况。为减轻因响应顺序而引入的潜在偏差,我们在将两个响应呈现给GPT-4进行评估时会交替它们的顺序。只有当某个系统在两种顺序下都被一致判定优于其竞争对手时,该结果才计为这个系统的一次胜利(win)。在两种顺序下性能表现不一致的情况下,该结果则视为平局(draw)


图9:RocoBench中的不同环境。

A.4.3 具身智能体任务

  在RocoBench实验中,我们遵循原始论文的方法,该方法依靠讨论并从讨论结果中解析特定格式的字符串来确定具身智能体的行动,而非让智能体直接调用工具。我们实现了两个不集成智能体的客户端,要求它们在结论阶段输出符合RocoBench格式的字符串。然后,这些字符串会被解析,并利用RocoBench预定义的解析函数来与环境进行交互。这种方法可用于验证IoA客户端的实现以及通信机制设计的合理性。

  为适应RocoBench中不同任务的多样化需求,我们采用了特定于任务的设置。对于Sort、Sandwich和Sweep这些步骤之间关联性很强的任务,我们保留了聊天记录,并基于之前的群组聊天继续开展每次新的行动讨论。相比之下,对于Cabinet和Rope这些步骤关联性较弱的任务,我们为每个行动发起新的群组聊天,以此优化成本。其他设置则与Roco Dialog基线保持一致。

A.4.4 检索增强生成

  对于检索增强生成(RAG)问答任务,我们遵循Apollo’s Oracle中所列出的设置。我们为智能体提供两个证据池:一个源自维基百科,另一个来自谷歌。对于维基百科,我们利用了Pyserini预构建的截至2021年1月20日的维基百科内容索引,针对每个查询检索出相关性最高的前10个结果。对于谷歌,我们直接访问谷歌搜索API,为每个查询返回相关性最高的前5个结果。这些工具可供客户端的LLMs使用,使其能够在讨论过程中查询相关信息,并最终提供依据充分的答案。

  为评估IoA在检索增强生成(RAG)任务上的性能,我们从四个数据集的验证集或测试集中随机抽取500个条目。在模型生成答案后,我们借助GPT-4来进行答案评估。具体而言,我们向GPT-4提供数据集的答案以及模型生成的答案,要求它以思维链(Chain of Thought,CoT)的方式输出推理过程,然后再给出最终的正确性判断。

附录B RocoBench的可视化呈现

  我们在图9中展示了RocoBench的可视化内容。橱柜(Cabinet)任务需要三个智能体协作完成:两个智能体负责打开并扶住橱柜门,而第三个智能体从橱柜内部取出两个杯子,并将它们放置到与杯子颜色相匹配的杯垫上。清扫(Sweep)任务涉及两个智能体协调行动:一个智能体操控扫帚清扫方块,另一个智能体拿着桶收集方块,最后,它们将所有方块倒入垃圾桶中。在做三明治(Sandwich)任务里,两个智能体共同协作,按照给定食谱拾取食材并将它们堆叠起来。排序(Sort)任务要求三个智能体将三个方块放置到与其颜色相匹配的杯垫上。由于每个智能体能够触及的范围有限,它们必须协调各自的动作。最后,绳索(Rope)任务需要智能体将一根绳索移动到一个托架内,它们必须进行有效沟通,以确定操控绳索的正确路径。

附录C 用于团队组建评估的模拟环境

C.1 常规团队组建模拟环境构建

  为构建一个用于评估常规团队组建机制的模拟环境,我们使用GPT-4-1106-preview来生成多样化的任务及智能体集合。数据集的构建过程涉及以下步骤:

  1. 任务生成:
    • 利用ChatGPT-4,我们生成了399个不同类别的主题关键词,涵盖体育、生活方式以及娱乐等多个领域。
    • 从这些类别中,我们随机选取25个主题,并要求GPT-4针对所选集合中至少四个主题生成相关的任务描述,进而获得需要具备不同能力的多样化智能体参与的任务。
    • 使用GPT-4 API以JSON格式生成任务描述,以此确保其呈现形式具有结构化和一致性。
  2. 智能体生成:
    • 在生成任务之后,针对每一项任务,我们再次提示GPT-4为给定任务构建至少两个具备不同能力的智能体,包括智能体的名称、类型以及对智能体的描述。
    • 智能体配置文件格式被设计为与服务器端的智能体注册表相匹配,以便在IoA内实现无缝集成与交互。

  以JSON格式生成的任务描述示例如下:
在这里插入图片描述
  同样地,一个以JSON格式呈现的智能体配置文件示例如下:
在这里插入图片描述
  一个包含以JSON格式呈现的智能体配置文件和任务描述的完整示例如下:
在这里插入图片描述
在这里插入图片描述

C.2 嵌套团队组建模拟环境构建

  同样地,为构建一个用于评估嵌套团队组建机制的模拟环境,我们也使用GPT-4-1106-preview来生成两组多样化的任务及智能体集合。数据集的构建过程涉及以下步骤:

  1. 由现有智能体完成的子任务:
    • 子任务生成:
      • 基于我们为常规团队组建所构建的数据集,我们随机选取300组作为原始数据集。
      • 对于原始数据集中的任务,我们提示GPT-4构建一个可由现有智能体完成的子任务,该现有智能体由GPT-4选定。
      • 子任务描述通过GPT-4 API结合现有智能体以JSON格式生成,以确保其呈现形式具有结构化和一致性。
  2. 由额外智能体完成的子任务:
    • 子任务及智能体生成:
      • 在为现有智能体生成子任务之后,我们将剩余的组作为另一个原始数据集。
      • 与由现有智能体完成的子任务不同的是,我们提示GPT-4构建一个需要非常特定专业知识的子任务。
      • 同时,我们还提示GPT-4构建一个与现有智能体相比具有不同能力的智能体来完成所生成的子任务,包括智能体的名称、类型以及对智能体的描述。
      • 子任务描述和额外智能体通过GPT-4 API以JSON格式生成,以确保其呈现形式具有结构化和一致性。

  以下是以JSON格式生成的、由现有智能体完成的子任务描述示例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  同样地,以下是以JSON格式生成的、由额外智能体完成的子任务描述示例:
在这里插入图片描述
在这里插入图片描述
  通过生成几组多样化的任务及智能体集合,我们创建了一个综合性的模拟环境,用于评估常规团队组建机制和嵌套团队组建机制。这一环境使我们能够评估IoA在组建合适团队以完成任务要求方面的有效性,解决了现有基准测试在提供合适的大规模智能体评估场景方面存在的局限性。


🐇速读版

1. 论文要解决什么问题?

背景介绍

  随着大语言模型 ( LLMs ) 快速发展,基于 LLMs 的自主智能体在众多任务上有接近人类的表现。同时,具备不同技能的第三方智能体(如AutoGPT、Open Interpreter)不断涌现。在此背景下,如何能够有效协调这些智能体间协作的多智能体系统,成为至关重要的问题。

现有多智能体系统局限性

  1. 生态系统隔离:现在大多数的框架仅考虑其自身生态系统内定义的智能体,无法整合各类第三方智能体,这就会限制多智能体系统能力的多样性以及它的通用性;
  2. 单机模拟:目前的多智能体框架都在单机上来模拟多智能体系统,这显然不符合现实情况,现实情况是不同智能体可能分布在不同地点的多台设备上;
  3. 僵化的通信与协调:目前的多智能体系统中,智能体之间的沟通交流以及任务状态的转变非常的僵化,而我们人类在处理问题时是非常灵活的。

动机

  作者意识到,人类通过互联网这一思想,极大的提升了协作的效率与成就。这一思想也陆续促成了像物联网、车联网的诞生,并且也取得了一定的成功。那在如今智能体盛行的趋势下,能否同样将这一思想应用在智能体系统上,建立一个智联网,从而促进智能体之间的协作呢?

	人类协作 ➯ 互联网 ( Internet ) ➯ ✔
	物体协作 ➯ 物联网 ( Internet of Things,IoT ) ➯ ✔
	车辆协作 ➯ 车联网 ( Internet of Vehicles,IoV ) ➯ ✔
	        …
	智能体协作 ➯ 智联网 ( Internet of Agents,IoA ) ➯ ? 

  在这样的背景和动机下,作者展开了这项研究。

2. 如何解决的?

论文方法

  • 方法总览
      这篇论文提出了一个名为智能体互联网 ( Internet of Agents,IoA )的概念,它的本质是一个智能体之间通信与协作的框架。整体来看,它有三个特点:①引入智能体集成协议实现不同设备第三方智能体无缝集成协作;②被设计为类似即时通讯的框架助力智能体发现与动态组队;③利用有限状态机机制让智能体自主决定对话状态以推进任务。IoA克服了现有多智能体系统的三个局限性,实现了异构智能体的整合,分布式智能体协作以及动态且自适应的通信。IoA之所以能够实现这些功能,得益于它精心设计的架构和关键机制,下面详细介绍他的架构和关键机制。

  • 架构
      IoA的整体架构图如下图所示,可以看到,主要分为2个组件,左边为客户端组件,右边为服务器组件,这两个组件均被清晰的划分为3层架构:底层是基础层,主要为智能体整合、数据管理以及网络通信提供必要的基础设施;中间层是数据层,主要管理与智能体、群组聊天以及任务相关的信息;顶层是交互层,主要便于团队组建和智能体通信。为了对这个架构有个更直观的把握,可以将服务器看作是一个工具箱,把客户端看作是一个工具使用者,工具使用者通过使用工具箱中的不同工具从而处理各种任务;同样的,客户端通过向服务器发送请求,调用服务器所提供的不同功能的工具,从而实现各种需求。


论文原图1:IoA设计中概念分层架构的图示。


图1:IoA架构组成及其功能介绍。

  • 关键机制

1、智能体注册与发现机制
  首先,它实现了将不同智能体注册在系统中,注册的信息主要有智能体的能力、技能以及专业领域的全面描述,类似于我们的个人简历,描述自己的专业特长。这些智能体的注册信息具体的存储位置位于服务器数据层的智能体注册模块中,如下图2中的高亮①部分。
  同时,这个机制也实现了发现功能,它会根据当前的任务需求,使用一个名为search_client的工具,来搜索符合任务需求的智能体集合,这个搜索工具的原理是将“需求描述”与之前智能体注册的“能力描述”进行语义匹配,从而找到契合的智能体们。这整个过程发生在服务器交互层的智能体查询模块中,也就是下图2中的高亮②部分。
  有了这一机制,就能使得具有不同架构、工具和环境的分布式智能体参与进来并且进行协作。


图2:智能体注册与发现机制。

2、自主嵌套团队组建机制
  当一个任务到来时,该机制会启动团队组件流程。首先它会按需调用search_client这个工具,一旦找到合适的一些智能体后,会调用launch_group_chat工具,发起一个群聊。如下面图3高亮部分所示。


图3:自主嵌套团队组建机制中的团队组件流程。

  在此基础上,它还支持嵌套团队结构,允许团队和子团队形成一种层级结构。首先给一个整体目标,它会创建一个初始的群聊,接下来会将这个整体目标通过一个机制(这个机制后面会讲到,详见第4个机制)分解为多个子任务,每一个子任务又会按需搜索新的智能体并发起子群聊,从而这样递归地进行下去,如下论文原图2所示。这就好比从一个大群中拉一个小群单独讨论。


论文原图2:嵌套团队组建机制的一个示例。为清晰起见,对该过程进行了简化。

  这种嵌套团队结构带来的一个好处是它会降低通信的复杂度。这里以下图4为例说明:假设由4个智能体组成的一个团队,他们之间两两交互所需要的通信链路是6条,而将它们分为更小的群组后,总的通信链路就会有所降低。


图4:通信复杂度下降。

  所以整体来看,这个机制就类似一个群主,负责分配任务,发起群聊,从而实现了智能体动态且灵活的组合。

3、自主对话流程控制机制
  在创建了群之后,如何开展有效的沟通是进一步需要讨论的问题。这一机制首先采用顺序发言机制,让智能体们轮流发言,避免产生混乱。在此基础上,该机制将整个聊天过程概括为由5个状态组成的有限状态机,如下面论文原图3阴影部分所示。这5个状态分别为:讨论、同步任务分配、异步任务分配、暂停与触发以及总结。这其实是依据语言哲学领域的一个言语行为理论进行构建的,这理论大致是说,一个有效的沟通所需要用到的言语可以分为5类,这个机制借鉴了其中的4类,其中讨论对应阐述类,同步异步任务分配对应着指令类,暂停与触发对应着承诺类,总结对应着宣告类,从而形成一个有限状态机。有了这个状态机,然后通过LLM来自助转换状态和选择下一位发言者,它将当前所处状态与历史聊天记录作为输入,从而确定下一状态及发言者。


论文原图3:不同状态之间的状态转换。

  总的来说,该机制使智能体能够协调它们的通信并维持结构化的对话,从而提升它们协作的效率和效果。

4、任务分配与执行机制
  之前在讲到第2个机制,也就是嵌套组队机制时提到,IoA会将一个整体的大任务分解为多个子任务,它依靠的就是这里要介绍的第4大机制。首先先来看如何表示一个任务,这里采用了元组表示的格式:(任务描述,子任务集合),子任务集合是动态扩充的,当有新的子任务被分解出来的时候,会自动添加到这个集合。接下来是任务分配,它分为同步和异步两种分配方式,同步任务分配可以理解为是串行执行的,也就是说,当任务被分配给特定的智能体时,正在进行的群组聊天会暂停,直到任务完成。异步则是并行执行的,不会暂停正在进行的群聊。一旦任务被分配,就开始执行任务。对于第三方智能体来说,他们是在客户端基础层的智能体集成模块中执行的,也就是下图5高亮部分所示的位置。这个位置有一个标准化的执行接口run,它以任务描述为输入,输出任务的ID。


图5:第三方智能体任务执行位置。

  总得来说,这个机制主要是为了高效地在智能体之间分配工作,并管理简单及复杂任务的执行。

  • 通用消息协议设计
      以上就讲完了IoA的架构和机制,但想要让不同的架构之间以及这些机制之间进行无缝的消息运转,还需要引入一个通用的消息协议,因此这里设计了一个通用的消息协议。首先这个协议会将IoA中所有的运行信息都封装为通用的协议格式,它主要由两部分组成:头部和有效载荷,如下面论文原图7所示。头部主要是消息的一些元数据,比如智能体ID、群聊ID等,而有效载荷是消息的主要内容,比如消息的用途,以及群里都包含哪些智能体成员等。这些协议的表示形式类似于字典形式,包含关键字段以及对应的内容。
      有了这种通用的协议,不同智能体之间无论其角色或任务如何,都能够正确理解并回应消息,从而维持一个连贯且高效的协作流程。


论文原图7:IoA消息协议中的字段。

  • 整合起来:IoA 实际运行示例
      最后通过一个具体示例来看一下IoA整体上是如何运行的。作者也比较有意思,在这里举的例子就是自己的这篇论文,撰写一篇关于智能体互联网的研究论文。首先,C1是一个擅长AI研究的智能体,它在接到这个撰写论文的任务后,会启动团队组建流程,先是根据一些和任务相关的关键词搜索合适的智能体并向服务器发出请求,然后服务器返回所需要的智能体,比如能访问学术数据库的c2和擅长学术写作的c3,一旦集齐所需要的智能体,就发起群聊请求,从而成功建群。然后,这些智能体会进入以撰写论文为总任务的对话流程,这个流程被自主对话流程控制机制所引导,同时会启用任务分配机制,比如这里分配给c2一个子任务,进行文献综述。在这个子任务中,又启动团队组建流程,根据子任务需求搜索合适的智能体,比如这里的C6是一个PDF专家,同样的组队流程后,再次发起一个子群聊,对这个子任务进行讨论,最后在这样分解以及嵌套的多轮过程中输出最终的结果,如下图6所示。


图6:IoA在处理一个任务时的全流程动态展示。

  以上就是论文方法的所有内容,这里用16个字对这篇文章做一个总结:一个框架、两大组件、三层架构、四大机制。一个框架指的是IoA本质上是一个多智能体协作框架,两大组件分别是是服务器组件和客户端组件,三层架构分别为基础层、数据层、交互层,以及上面介绍的四大关键机制。这四部分共同编制起了这个异构智能体网络,为协同智能提供新的可能。

🤔思考

  • 其实让多智能体协作这个想法,作者所在的团队在之前已经有所研究。23年推出的ChatDev项目,是一个虚拟的公司,由大模型驱动,可以实现全流程自动化软件开发。以及后续发表的AgentVerse框架,也是通过让智能体之间进行协作整合。而这篇论文所提出的IoA,解决了先前多智能体普遍存在的三个局限性,打破了生态系统的隔离和单机模式的壁垒,并且它具有更加灵活更加智能的协作方式。
    在这里插入图片描述

  • 虽然IoA在多个方面已经表现十分优越,但仍然有一些有可能需要进一步改进的地方(局限性):

    • IoA的运行成本
        多智能体系统普遍存在的一个通病就是会重复表述。我们知道,LLM是以token量来计费的,这些重复的表述会增加额外的费用,且不会带来新的信息。而这篇论文针对此问题只是做了量化,并没有对其进行质变,所以这也是未来能进一步研究的方向。
        这篇24年10月发表的论文就是针对此问题进行的研究工作:Cut the Crap: An Economical Communication Pipeline for LLM-based Multi-Agent Systems,它通过剪枝的方法,让智能体少说废话(Cut the Crap),从而打造高效的多智能体系统,这或许会对降低IoA的成本有所帮助。
    • 基于MLLM的IoA
        另外一个可能改进的方向就是是引入多模态信息,打造基于多模态语言模型的智能体互联网。在现实世界里,很多决策不能只靠文本,还需要其他形式的信息,比如医生对于患者的诊断,不仅需要医学病历,有时候还需要医学影像进一步给出判断。所以类似的,为智能体互联网引入多模态信息,有可能进一步提升决策的准确性和可靠性,也能拓展应用领域和场景。
    • IoA的安全与伦理
        还有一个不可忽视的点就是IoA的安全与伦理。互联网无时无刻都在面临安全问题,而AI也存在伦理问题,融合了这两者的智能体互联网更需要重视其安全与伦理问题。
  • 最后,我认为IoA是一个宏大的愿景,它的初衷是期望像人类在互联网上高效协作那般,将分布在不同环境中的AI智能体连接起来。当由高度智慧的个体进行长期群体协作后,会有什么“涌现”出来?当越来越多的智能体加入到这个网络中,会不会量变引起质变?这些都是未来值得探究的问题。然而,想要真正做到将全世界智能体联合起来,还需要更多人贡献其中。


参考文献
Chen W, You Z, Li R, et al. Internet of agents: Weaving a web of heterogeneous agents for collaborative intelligence[J]. arXiv preprint arXiv:2407.07061, 2024.

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐