AI代理架构正成为实现复杂任务自动化的关键技术。这些代理不仅需要处理信息、做出决策,还要能够与外部环境进行交互。随着ChatGPT等生成式AI应用的兴起,研究者们开始探索下一代AI应用,其中AI代理的角色愈发重要。单代理架构以其简洁高效的特点,在处理明确定义的任务时表现出色;而多代理架构则通过代理间的协作,展现了解决更为复杂问题的巨大潜力。然而,这些架构的有效性不仅取决于它们的设计,还依赖于诸如推理、规划和工具调用等关键能力的实现。本文将深入探讨AI代理架构的分类、关键考虑因素、以及单代理与多代理架构的特定方法,同时评估它们在实际应用中的性能,并展望未来研究的方向和潜在的改进空间
AI代理可以被分类为单代理和多代理架构。单代理架构由一个语言模型驱动,独立完成所有推理、规划和工具执行任务。这种架构在问题定义明确、不需要其他代理或用户反馈时表现最佳。而多代理架构则涉及两个或更多的代理,它们可以共享工具和信息,通过协作来解决问题。多代理架构在需要协作和多路径执行时更为有效。
如图1中所示的垂直和水平架构示例。垂直架构中,领导代理(Leader Agent)位于中心,其他代理向其汇报;而水平架构中,所有代理平等地参与到群体讨论中,共同解决问题。
构建一个有效的AI代理不仅需要技术层面的精细打磨,还需要在设计和功能上进行深思熟虑的规划。首先,代理必须具备强大的推理和规划能力,这是人类认知的基础,也是AI代理有效交互和自主决策的前提。其次,代理需要能够调用工具,与外部数据源交互,发送或检索信息。此外,代理的架构设计,包括代理角色的定义、团队动态构建、信息共享机制等,也是实现目标的关键。
推理和规划能力:AI代理的推理能力是其认知能力的核心,它使得代理能够理解复杂环境、做出决策并解决问题。规划能力则是建立在推理能力之上,它要求代理能够将复杂任务分解为更小的子任务,并制定出执行这些子任务的策略。正如论文中所强调的,推理和规划是AI代理成功的基础,它们共同支持代理在面对新任务时能够快速学习和做出稳健的决策。
工具调用能力:AI代理的另一个关键能力是调用工具和与外部数据源交互。这意味着代理需要能够发送和检索信息,利用外部API或数据源来增强自己的功能和决策能力。有效的工具调用不仅提高了代理处理复杂问题的能力,也是代理能够执行更一般性工作的重要支撑。
代理架构设计:代理的架构设计涉及到代理角色的定义、团队动态构建和信息共享机制。在多代理系统中,每个代理都应该有明确的角色和责任,这样它们才能协同工作,有效地解决问题。动态团队构建允许系统根据任务需求调整代理团队的组成,而有效的信息共享机制确保了代理之间能够及时准确地交流信息,避免不必要的冗余对话。
单代理架构的详细描述
单代理架构是一种集中式的AI代理设计,它由单一的语言模型独立驱动,负责完成所有的推理、规划和执行任务。这种架构在处理定义明确、目标单一的任务时,表现出了高效的性能。
ReAct方法是单代理架构中的一个突出实例。它采用“思考-行动”的循环模式,代理首先对给定任务进行思考,形成行动计划,然后执行相应的行动,并观察结果。这一过程循环进行,直至任务完成。ReAct方法的优势在于其能够提供代理的思考过程,增强了人类对其行为的理解和信任。论文中提到的ReAct方法在HotpotQA数据集上的表现,展示了其相较于传统的链式思考(Chain-of-Thought)方法,能够显著降低臆断率。
RAISE方法是在ReAct的基础上进行了扩展,引入了记忆机制,模拟人类的短期和长期记忆。RAISE使用临时存储(scratchpad)作为短期记忆,同时利用类似先前案例的数据集作为长期记忆。这种设计显著提升了代理在长时间对话中保持上下文的能力,使得代理在处理复杂和持续的任务时更加有效。
图3为RAISE(可能代表某种记忆增强的代理架构)方法的框架图,展示了用户查询、记忆更新、示例检索、工具池和代理循环等组件是如何相互作用的。
Reflexion方法是一种单代理模式,它通过语言反馈进行自我反思。这种方法使用成功状态、当前轨迹和持久记忆等指标,利用大型语言模型(LLM)评估器为代理提供具体且相关的反馈。这种反馈机制能够提高成功率,并减少与链式思考(Chain-of-Thought)和ReAct方法相比的臆断现象。尽管Reflexion在某些方面优于现有的单代理模式,但研究者也指出了一些限制。例如,Reflexion容易陷入“非最优局部最小解”,并且它使用滑动窗口管理长期记忆,而不是数据库,这意味着长期记忆的容量受到语言模型的令牌限制。此外,尽管Reflexion在某些任务上超越了其他单代理模式,但在需要大量多样性、探索和推理的任务上,仍有改进性能的机会。
AutoGPT + P(Planning)方法是一种针对用自然语言指挥机器人的代理的方法,它结合了对象检测和对象可利用性映射(OAM)以及由大型语言模型(LLM)驱动的规划系统。这使得代理能够探索环境中缺失的对象,提出替代方案,或请求用户帮助以实现其目标。AutoGPT+P首先使用场景图像来检测存在的对象,然后语言模型根据这些对象选择使用四种工具之一:计划工具、部分计划工具、建议替代工具和探索工具。这些工具不仅允许机器人生成完成目标的完整计划,还允许它探索环境、做出假设和创建部分计划。然而,语言模型并不完全独立生成计划。相反,它生成目标和步骤,与使用规划领域定义语言(PDDL)执行计划的经典规划器一起工作。研究发现,由于推理能力受限,大型语言模型目前缺乏将自然语言指令直接翻译成执行机器人任务的计划的能力。通过将LLM规划能力与经典规划器相结合,他们的方法显著改进了其他纯基于语言模型的机器人规划方法。
Language Agent Tree Search (LATS)方法通过使用树来结合规划、行动和推理。这种技术受到蒙特卡洛树搜索的启发,将状态表示为节点,将采取行动表示为在节点之间的遍历。它使用基于语言模型的启发式搜索可能的选项,然后使用状态评估器选择行动。与其他基于树的方法相比,LATS实现了自我反思推理步骤,显著提高了性能。当采取行动时,环境反馈和来自语言模型的反馈都被用来确定推理中是否存在错误,并提出替代方案。这种自我反思能力与强大的搜索算法相结合,使LATS在各种任务上表现出色。然而,由于算法的复杂性和涉及的反思步骤,LATS通常比其他单代理方法使用更多的计算资源,并且完成时间更长。论文还使用相对简单的问答基准进行测试,并没有在涉及工具调用或复杂推理的更强大的场景中进行测试。
尽管单代理架构在特定任务上表现出色,但它也存在一些局限性。一个主要问题是代理可能会陷入一个无尽的执行循环中,无法完成任务或达到用户的期望。例如,代理可能会重复生成相同的思考和行动,而无法产生新的想法来推动任务的完成。而且单代理架构可能在处理需要多步骤推理或多角度考虑的复杂问题时,表现出局限性。
多代理架构的详细描述
多代理架构是指由两个或更多代理组成的系统,每个代理可以是独立的个体,拥有自己的角色、能力和工具。这种架构允许代理之间进行通信和协作,共同解决复杂的问题或执行任务。在多代理架构中,代理们可以采取不同的组织形式,从简单的对等网络到复杂的层级结构。有两种主要的多代理架构类型:垂直架构(Vertical Architectures)和水平架构(Horizontal Architectures)。
垂直架构中,一个代理作为领导者,其他代理直接向它汇报。这种架构的特点是有一个明确的领导者和分工,领导者代理负责协调其他代理的工作,确保任务的顺利进行。根据架构的不同,报告代理可能只与领导代理通信,或者领导者可以定义为所有代理共享的对话。这种架构适用于需要明确领导和分工的任务。
水平架构则是一种更加民主化的组织形式,所有代理都被视为平等的,并且是关于任务的一组讨论的一部分。在这种架构中,代理之间的通信在一个共享的线程中进行,每个代理都可以看到其他代理的所有消息。代理也可以自愿完成特定任务或调用工具,这意味着它们不需要由领导代理分配。水平架构通常用于需要协作、反馈和小组讨论的任务。
图5展示了有组织领导者的代理团队在完成任务方面比没有领导者的团队表现更好。垂直结构通过领导代理进行指挥,而水平结构允许代理之间直接交流。研究结果表明,有组织的领导代理团队比没有领导的团队快约10%完成任务,并且领导代理的沟通大部分是指令性,促使其他代理更专注于信息交流。
Guo等人的研究强调了领导者代理对团队整体效能的影响。他们的研究显示,有组织领导者的代理团队完成任务的速度比没有领导者的团队快近10%。此外,他们还发现,在没有指定领导者的团队中,代理大部分时间都在互相下达指令,而在有指定领导者的团队中,领导者的大部分通信都涉及给出方向,促使其他成员更多地交换和请求信息。
DyLAN框架创建了一个动态的代理结构,专注于复杂任务,如推理和代码生成。DyLAN有一个特定的步骤,用于确定每个代理在上一轮工作中的贡献,并只将顶级贡献者移动到下一轮执行中。这种方法本质上是水平的,因为代理可以彼此共享信息,没有明确定义的领导者。
AgentVerse框架展示了如何通过为团队规划设定不同的阶段来提高AI代理的推理和问题解决能力。AgentVerse包含四个主要阶段:招聘、协作决策制定、独立行动执行和评估。通过严格定义每个阶段,AgentVerse有助于指导一组代理更有效地进行推理、讨论和执行。
MetaGPT框架则解决了代理之间无成果的聊天问题,它要求代理生成结构化的输出,如文档和图表,而不是分享非结构化的聊天信息。此外,MetaGPT实现了一个“发布-订阅”机制,用于信息共享。这允许所有代理在一个地方共享信息,但只阅读与其个人目标和任务相关的信息。
尽管AI代理架构在多个方面取得了显著进展,但仍存在一些挑战和局限性。如代理评估的基准测试缺乏统一性,且现有数据集可能无法准确反映模型的真实性能;现实世界数据的噪声和多样性对代理的泛化能力提出了更高要求;代理系统可能继承了语言模型的偏见,需要进一步研究以识别和解决这些偏见。未来的研究可能会关注以下几个方面:开发更全面的代理基准测试,提高现实世界适用性,以及减轻语言模型的有害偏见。
参考链接:https://arxiv.org/abs/2404.11584