当前位置:   article > 正文

A Survey on Large Language Model based Autonomous Agents_memorybank: enhancing large language models with l

memorybank: enhancing large language models with long-term memory是几区

自主代理一直是学术界和工业界的研究重点。以前的研究通常集中在训练在孤立环境中具有有限知识的代理,这与人类学习过程相差甚远,使得代理难以实现类似人类的决策。最近,通过获取大量的网络知识,大型语言模型(LLMs)已经显示出人类水平智能的潜力,导致了对基于LLM的自主代理的研究激增。在本文中,我们提供了这些研究的全面调查,从整体的角度系统回顾了基于LLM的自主代理。我们首先讨论了基于LLM的自主代理的构建,提出了一个统一的框架,涵盖了大部分以前的工作。然后,我们提供了多样化应用的概述,这些应用涵盖了社会科学、自然科学和工程学。最后,我们深入探讨了常用的评估策略。基于以前的研究,我们还提出了这个领域中的几个挑战和未来的发展方向。

关键词:自主代理,大型语言模型,人类水平智能

1 引言

“自主代理是一个系统,它位于环境中,是环境的一部分,感知该环境,并随着时间的推移对其进行行动,追求自己的议程,以便影响其未来的感知。”


Franklin and Graesser (1997)

自主代理一直被认为是实现人工通用智能(AGI)的有前途的方法,预计能够通过自我指导的规划和行动完成任务。在以前的研究中,代理被假设基于简单和启发式的政策函数行动,并在孤立和受限的环境中学习[1-6]。这种假设与人类学习过程有显著差异,因为人类思维非常复杂,个体可以从更多样化的环境中学习。由于这些差距,以前研究中得到的代理通常远远无法复制人类水平的决策过程,特别是在无约束的开放领域设置中。

近年来,大型语言模型(LLMs)取得了显著的成功,展现出获得类似人类智能的显著潜力[5-10]。这种能力来自于利用全面的训练数据集以及大量的模型参数。基于这种能力,有一个不断增长的研究领域,使用LLMs作为中央控制器来构建自主代理,以获得类似人类的决策能力[11-17]。

与强化学习相比,基于LLM的代理拥有更全面的内心世界知识,这使得即使没有在特定领域数据上进行训练,代理也能够进行更知情的行动。此外,基于LLM的代理可以提供自然语言界面与人类互动,这更加灵活和可解释。

沿着这个方向,研究人员已经开发了许多有前途的模型(见图1,这个领域的概述),其中的关键思想是赋予LLMs关键的人类能力,如记忆和规划,使它们的行为类似于人类,并有效地完成各种任务。以前的这些模型是独立提出的,很少有努力对它们进行总结和全面比较。然而,我们相信对这个快速发展的领域进行系统的总结对于全面理解它并激发未来的研究具有重要意义。

该图展示了基于大型语言模型(LLM)的自主智能体领域增长趋势的示意图。我们呈现了从2021年1月到2023年8月期间累积发表的论文数量。我们使用不同的颜色来代表各种智能体类别。例如,游戏智能体旨在模拟游戏玩家,而工具智能体主要关注工具的使用。对于每个时间段,我们提供了一个精选的研究列表

在本文中,我们对基于LLM的自主代理领域进行了全面调查。具体来说,我们根据三个方面来组织我们的调查,包括代理的构建、应用和评估。对于代理构建,我们关注两个问题,即(1)如何设计代理架构以更好地利用LLMs,以及(2)如何激发和增强代理完成不同任务的能力。直观地说,第一个问题旨在为代理构建硬件基础,而第二个问题则专注于为代理提供软件资源。对于第一个问题,我们提出了一个统一的代理框架,可以包含大多数以前的研究。对于第二个问题,我们提供了对代理能力获取常用策略的总结。除了讨论代理构建,我们还提供了基于LLM的自主代理在社会科学、自然科学和工程学应用的系统概述。最后,我们深入探讨了评估基于LLM的自主代理的策略,重点关注主观和客观策略。

总之,这项调查对LLM基础自主代理这个新兴领域的现有研究进行了系统回顾,并建立了全面的分类。我们关注的主要领域包括代理的构建、它们的应用和评估方法。借鉴大量以前的研究,我们确定了这个领域的各种挑战,并讨论了潜在的未来方向。我们希望我们的调查可以为基于LLM的自主代理的新手提供全面的背景知识,并鼓励进一步的开创性研究。

2 LLM基础自主代理构建

基于LLM的自主代理预期通过利用LLMs的类似人类的能力来有效地执行多样化的任务。为了实现这一目标,有两个重要的方面,即(1)应该设计哪种架构以更好地利用LLMs,以及(2)给定设计的架构,如何使代理获得完成特定任务的能力。在架构设计的背景下,我们对现有研究进行了系统的综合,形成了一个全面的统一框架。至于第二个方面,我们根据是否对LLMs进行微调来总结了代理能力获取的策略。将基于LLM的自主代理与传统机器学习相比较,设计代理架构类似于确定网络结构,而代理能力获取类似于学习网络参数。接下来,我们将更详细地介绍这两个方面。

2.1 代理架构设计

最近的LLMs进展已经展示了它们在以问答(QA)形式完成广泛任务方面的巨大潜力。然而,构建自主代理远不止于此,因为它们需要履行特定角色,并自主地感知和从环境中学习,像人类一样进化。为了弥合传统LLMs和自主代理之间的差距,一个关键方面是设计合理的代理架构,以帮助LLMs最大化其能力。沿着这个方向,以前的工作已经开发了许多模块来增强LLMs。在本节中,我们提出了一个统一框架来总结这些模块。具体来说,我们的框架的整体结构如图2所示,由配置文件模块、记忆模块、规划模块和行动模块组成。配置文件模块的目的是确定代理的角色。记忆和规划模块将代理置于动态环境中,使其能够回忆过去的行为并规划未来的行动。行动模块负责将代理的决策转化为具体输出。在这些模块中,配置文件模块影响记忆和规划模块,而这三个模块共同影响行动模块。接下来,我们将详细介绍这些模块。

一个针对基于大型语言模型(LLM)的自主智能体架构设计的统一框架。

2.1.1 配置文件模块

自主代理通常通过承担特定角色来执行任务,例如编码者、教师和领域专家[18,19]。配置文件模块旨在指示代理角色的配置文件,这些配置文件通常写入提示中,以影响LLM行为。代理配置文件通常包括基本信息,如年龄、性别和职业[20],以及反映代理个性的心理信息,以及详细说明代理之间关系的社交信息[21]。选择配置代理的信息在很大程度上取决于具体的应用场景。例如,如果应用程序旨在研究人类认知过程,那么心理信息变得至关重要。在确定代理配置文件类型之后,下一个重要的问题是为代理创建具体的配置文件。现有文献通常采用以下三种策略。

手工制作法:

在这种方法中,代理配置文件是手动指定的。例如,如果有人想要设计具有不同个性的代理,他可以使用“你是一个外向的人”或“你是一个内向的人”来配置代理。手工制作法在许多以前的工作中被用来指示代理配置文件。例如,Generative Agent[22]通过像名字、目标和与其他代理的关系这样的信息来描述代理。MetaGPT[23]、ChatDev[18]和Self-collaboration[24]预定义了各种角色及其在软件开发中相应的职责,手动为每个代理分配不同的配置文件,以促进协作。PTLLM[25]旨在探索和量化LLMs生成文本中显示的个性特征。这种方法通过使用个性评估工具,如IPIP-NEO[26]和BFI[27],引导LLMs生成多样化的响应。[28]通过手动提示LLMs扮演不同角色,如政治家、记者和商人,来研究LLMs输出的毒性。总的来说,手工制作法非常灵活,因为人们可以为代理分配任何配置文件信息。然而,它也可能非常耗费人力,特别是处理大量代理时。

LLM生成法:

在这种方法中,代理配置文件基于LLMs自动生成。通常,它首先通过指出配置文件生成规则来开始,阐明目标人口中代理配置文件的组成和属性。然后,可以选择指定几个种子代理配置文件作为少数示例。最后,利用LLMs生成所有代理配置文件。例如,RecAgent[21]首先通过手动制作他们的背景信息,如年龄、性别、个人特征和电影偏好,为少数代理创建种子配置文件。然后,它利用ChatGPT根据种子信息生成更多的代理配置文件。LLM生成法可以在代理数量很大时节省大量时间,但可能缺乏对生成配置文件的精确控制。

数据集对齐法:

在这种方法中,代理配置文件从现实世界的数据集中获得。通常,首先可以将有关现实人类在数据集中的信息组织成自然语言提示,然后利用这些信息来配置代理。例如,在[29]中,作者根据美国全国选举研究(ANES)参与者的人口统计背景(如种族/族裔、性别、年龄和居住州)为GPT-3分配角色。随后,他们调查GPT-3是否能产生与真实人类相似的结果。数据集对齐法准确地捕捉了真实人口的属性,从而使代理行为更具意义,并反映了现实世界的场景。

备注。虽然大多数以前的工作独立地利用上述配置文件生成策略,但我们认为将它们结合起来可能会产生额外的好处。例如,为了通过代理模拟预测社会发展,可以利用现实世界的数据集来配置一部分代理,从而准确地反映当前的社会地位。随后,可以将现实中不存在但未来可能出现的角色手动分配给其他代理,以预测未来的社会发展。除了这个例子之外,还可以灵活地结合其他策略。配置文件模块作为代理设计的基础,对代理记忆、规划和行动程序产生重大影响。

2.1.2 记忆模块

记忆模块在代理架构设计中扮演着非常重要的角色。它存储从环境中感知到的信息,并利用记录的记忆来促进未来的行动。记忆模块可以帮助代理积累经验,自我进化,并以更一致、合理和有效的方式行为。本节提供了记忆模块的全面概述,重点关注其结构、格式和操作。

记忆结构:

基于LLM的自主代理通常结合了来自认知科学研究的人类记忆过程的原则和机制。人类记忆遵循从感觉记忆记录感知输入,到短期记忆暂时保持信息,再到长期记忆在较长时间内巩固信息的一般进程。在设计代理记忆结构时,研究人员从这些方面的人类记忆中获得灵感。具体来说,短期记忆类似于受限于变换器架构的上下文窗口内的输入信息。长期记忆类似于代理可以根据需要快速查询和检索的外部向量存储。以下,我们介绍了两种常用的基于短期和长期记忆的记忆结构。

• 统一记忆。

这种结构仅模拟人类的短期记忆,通常通过上下文学习来实现,记忆信息直接写入提示中。例如,RLP[30]是一个对话智能体,它为说话者和听者维护内部状态。在每一轮对话中,这些状态作为大型语言模型(LLM)的提示,充当智能体的短期记忆。SayPlan[31]是一个专为任务规划设计的具身智能体。在这个智能体中,场景图和环境反馈作为智能体的短期记忆,指导其行动。CALYPSO[32]是为《龙与地下城》游戏设计的智能体,它可以协助地下城主创作和叙述故事。它的短期记忆建立在场景描述、怪物信息和之前的总结之上。DEPS[33]也是一个游戏智能体,但它是为《我的世界》开发的。该智能体最初生成任务计划,然后利用它们来提示LLM,后者进而产生完成任务的行动。这些计划可以被视为智能体的短期记忆。在实践中,实现短期记忆是直接的,并且可以增强智能体对近期或对上下文敏感的行为和观察的感知能力。然而,由于LLM的上下文窗口限制,很难将所有记忆都放入提示中,这可能会降低智能体的性能。这种方法对LLM的窗口长度和处理长上下文的能力要求较高。

因此,许多研究人员采用混合记忆系统来缓解这个问题。然而,LLMs的有限上下文窗口限制了将全面的记忆纳入提示中,这可能会影响代理的性能。这个挑战需要具有更大上下文窗口和处理扩展上下文能力的LLMs。因此,许多研究人员转向混合记忆系统来缓解这个问题。

• 混合记忆。

这种结构明确模拟了人类的短期和长期记忆。短期记忆暂时缓冲最近的感知,而长期记忆随着时间的推移巩固重要信息。例如,Generative Agent[20]采用混合记忆结构来促进代理行为。短期记忆包含有关代理当前情况的上下文信息,而长期记忆存储代理过去的行为和思想,可以根据当前事件检索。AgentSims[34]也实现了一个混合记忆架构。提示中提供的信息可以被视为短期记忆。为了增强记忆的存储能力,作者提出了一个使用向量数据库的长期记忆系统,便于高效的存储和检索。具体来说,代理的日常记忆被编码为嵌入向量,并存储在向量数据库中。如果代理需要回忆其以前的记忆,长期记忆系统使用嵌入相似性检索相关信息。这个过程可以提高代理行为的一致性。在GITM[16]中,短期记忆存储当前轨迹,长期记忆保存从成功的先前轨迹中总结的参考计划。长期记忆提供稳定知识,而短期记忆允许灵活规划。Reflexion[12]使用短期滑动窗口捕获最近的反馈,并将持久长期存储结合起来保留浓缩的见解。这种组合允许利用详细的即时经验和高级抽象。SCM[35]选择性激活最相关的长期知识与短期记忆结合,使能够在复杂的上下文对话中进行推理。SimplyRetrieve[36]使用用户查询作为短期记忆,并使用外部知识库存储长期记忆。这种设计在提高模型准确性的同时保证了用户隐私。MemorySandbox[37]通过使用2D画布存储记忆对象来实现长期和短期记忆,这些记忆对象可以在各种对话中访问。用户可以在同一个画布上与不同的代理创建多个对话,通过简单的拖放界面促进记忆对象的共享。实际上,整合短期和长期记忆可以增强代理在复杂环境中进行长期推理和积累宝贵经验的能力,这对于完成任务至关重要。

备注。细心的读者可能会发现,可能还存在另一种类型的记忆结构,即仅基于长期记忆。然而,我们发现这种类型的记忆在文献中很少被记录。我们的推测是,代理总是处于连续和动态的环境中,连续的行动显示出高度的相关性。因此,捕捉短期记忆非常重要,通常不能被忽视。

记忆格式:

除了记忆结构外,分析记忆模块的另一个角度是基于记忆存储介质的格式,例如自然语言记忆或嵌入记忆。不同的记忆格式具有不同的优势,适用于不同的应用。以下,我们介绍了几种代表性的记忆格式。

• 自然语言。

在这种格式中,记忆信息,如代理的行为和观察,直接用原始自然语言表达。这种格式具有几个优点。首先,记忆信息可以以灵活且易于理解的方式表达。此外,它保留了丰富的语义信息,可以提供全面的信号来指导代理行为。在以前的工作中,Reflexion[12]在滑动窗口中以自然语言存储经验反馈。Voyager[38]使用自然语言描述来表示Minecraft游戏中的技能,这些描述直接存储在记忆中。

• 嵌入。

在这种格式中,记忆信息被编码为嵌入向量,这可以提高记忆检索和阅读的效率。例如,MemoryBank[39]将每个记忆片段编码为嵌入向量,创建了一个索引语料库以供检索。[16]将参考计划表示为嵌入,以便于匹配和重用。此外,ChatDev[18]将对话历史编码为向量以供检索。

• 数据库。

在这种格式中,记忆信息存储在数据库中,允许代理高效且全面地操作记忆。例如,ChatDB[40]使用数据库作为符号记忆模块。代理可以使用SQL语句精确地添加、删除和修改记忆信息。在DB-GPT[41]中,记忆模块是基于数据库构建的。为了更直观地操作记忆信息,代理被微调以理解和执行SQL查询,使它们能够直接使用自然语言与数据库交互。在GITM[16]中,短期记忆存储当前轨迹,长期记忆保存从成功的先前轨迹中总结的参考计划。长期记忆提供稳定知识,短期记忆允许灵活规划。Reflexion[12]使用短期滑动窗口捕获最近的反馈,并将持久长期存储结合起来保留浓缩的见解。这种组合允许利用详细的即时经验和高级抽象。SCM[35]选择性激活最相关的长期知识与短期记忆结合,使能够在复杂的上下文对话中进行推理。SimplyRetrieve[36]使用用户查询作为短期记忆,并使用外部知识库存储长期记忆。这种设计在提高模型准确性的同时保证了用户隐私。MemorySandbox[37]通过使用2D画布存储记忆对象来实现长期和短期记忆,这些记忆对象可以在各种对话中访问。用户可以在同一个画布上与不同的代理创建多个对话,通过简单的拖放界面促进记忆对象的共享。实际上,整合短期和长期记忆可以增强代理在复杂环境中进行长期推理和积累宝贵经验的能力,这对于完成任务至关重要。

备注。这里我们只展示了几种代表性的记忆格式,但需要注意的是,还有许多未被覆盖的格式,例如[38]中使用的编程代码。此外,应强调的是,这些格式并不是相互排斥的;许多模型结合使用多种格式,以同时利用它们各自的优势。一个显著的例子是GITM[16]的记忆模块,它使用了一个键值列表结构。在这个结构中,键由嵌入向量表示,而值由原始自然语言组成。使用嵌入向量可以高效地检索记忆记录。通过使用自然语言,记忆内容变得高度全面,从而使代理行为更加明智。

以上,我们主要讨论了记忆模块的内部设计。接下来,我们将关注记忆操作,这些操作用于与外部环境进行交互。

记忆操作:

记忆模块在允许代理通过与环境的交互获取、积累和利用重要知识方面发挥着关键作用。代理与环境之间的交互是通过三个关键记忆操作来完成的:记忆读取、记忆写入和记忆反思。以下,我们将更详细地介绍这些操作。

• 记忆读取。

记忆读取的目标是从记忆中提取有意义的信息,以增强代理的行动。例如,使用先前成功的行动来实现类似的目标[16]。记忆读取的关键在于如何从历史行动中提取有价值的信息。通常,有三种常用的信息提取标准,即最新性、相关性和重要性[20]。更近期、相关和重要的记忆更有可能被提取。形式上,我们从现有文献中得出以下方程式来提取记忆信息:

m^* = \underset{m \in M}{\mathrm{arg\,min}} \; \alpha s^{rec}(q, m) + \beta s^{rel}(q, m) + \gamma S^{imp}(m)(1)

其中q是查询,例如代理应该解决的任务或代理所处的上下文。M是所有记忆的集合。 s^{rec}(\cdot) 、 s^{rel}(\cdot)s^{imp}(\cdot) 是衡量记忆m的最新性、相关性和重要性的评分函数。这些评分函数可以使用各种方法实现,例如, s^{rel}(q,m)可以通过LSH、ANNOY、HNSW、FAISS等实现。需要注意的是, s^{imp}只反映了记忆本身的特点,因此与查询q无关。α、β和γ是平衡参数。通过为它们分配不同的值,可以获得各种记忆读取策略。例如,通过设置α=γ=0,许多研究[16,30,38,42]只考虑相关性评分 s^{rel}来读取记忆。通过将α=β=γ=1.0分配,[20]平等地权衡上述三个指标,从记忆中提取信息。

• 记忆写入。

记忆写入的目的是为了将感知到的环境信息存储在记忆中。在记忆中保存有价值的信息为将来检索信息性记忆提供了基础,使智能体能够更高效、更理性地行动。在记忆写入过程中,有两个潜在问题需要仔细解决。一方面,解决如何存储与现有记忆相似的信息(即记忆重复)至关重要。另一方面,当记忆达到存储限制时,考虑如何移除信息(即记忆溢出)也很重要。接下来,我们将更详细地讨论这些问题。

1. 记忆重复。为了整合相似的信息,人们已经开发了多种整合新记录和之前记录的方法。例如,在文献[7]中,与同一子目标相关联的成功行动序列被存储在一个列表中。一旦列表的大小达到N(等于5),列表中的所有序列就利用大型语言模型(LLM)压缩成一个统一的计划解决方案。记忆中的原始序列被新生成的序列所取代。增强型LLM[43]通过计数累积来聚合重复信息,避免了冗余存储。

2. 记忆溢出。为了在记忆已满时将信息写入记忆,人们设计了不同的方法来删除现有信息以继续记忆过程。例如,在ChatDB[40]中,可以根据用户指令显式地删除记忆。RET-LLM[42]使用固定大小的缓冲区进行记忆,以先进先出(FIFO)的方式覆盖最旧的条目。

• 记忆反思。

记忆反思模仿了人类观察和评估自己的认知、情感和行为过程的能力。当适应于代理时,目标是为代理提供独立总结和推断更抽象、复杂和高级信息的能力。更具体地说,在Generative Agent [20]中,代理有能力将其存储在记忆中的过去经验总结为更广泛和更抽象的见解。首先,代理根据其最近的记忆生成三个关键问题。然后,这些问题被用来查询记忆以获取相关信息。在获取的信息基础上,代理生成五个见解,反映了代理的高级思想。例如,低级记忆“Klaus Mueller正在写一篇研究论文”,“Klaus Mueller正在与图书管理员互动以进一步研究”,以及“Klaus Mueller正在与Ayesha Khan讨论他的研究”可以引出高级见解“Klaus Mueller致力于他的研究”。此外,反思过程可以分层发生,意味着见解可以根据现有见解生成。在GITM [16]中,成功完成子目标的行动存储在一个列表中。当列表包含超过五个元素时,代理将它们总结为一个通用和抽象的模式,并替换所有元素。在ExpeL [44]中,介绍了两种方法供代理获取反思。首先,代理比较同一任务中成功或失败的轨迹。其次,代理从一系列成功轨迹中学习以获得经验。

代理与传统LLMs的一个重要区别在于,后者必须具备在动态环境中学习和完成任务的能力。如果我们将记忆模块视为负责管理代理过去行为的模块,那么拥有另一个重要的模块来协助代理规划未来行动就显得至关重要。以下,我们将概述研究人员如何设计规划模块。

2.1.3 规划模块

面对复杂任务时,人类倾向于将其分解为更简单的子任务并逐个解决。规划模块旨在赋予代理这种人类能力,这使得代理的行为更加合理、强大和可靠。具体来说,我们根据代理在规划过程中是否能接收反馈来总结现有研究,详细如下:

无反馈规划:

在这种方法中,代理在采取行动后不会接收到影响其未来行为的反馈。以下,我们将介绍几种代表性策略。

• 单路径推理。

在这种策略中,最终任务被分解为几个中间步骤。这些步骤以级联的方式连接,每个步骤只导致一个后续步骤。LLMs按照这些步骤实现最终目标。具体来说,Chain of Thought (CoT) [45]提出将解决复杂问题的推理步骤输入提示中。这些步骤作为示例,激发LLMs以逐步方式规划和行动。在这种方法中,计划是基于提示中的示例步骤创建的。Zero-shot-CoT [46]使LLMs能够通过提示它们“逐步思考”等触发句子生成任务推理过程。与CoT不同,这种方法不在提示中包含推理步骤作为示例。RePrompting [47]涉及在生成计划之前检查每个步骤是否满足必要的先决条件。如果一个步骤未能满足先决条件,它会引入一个前提错误消息,并提示LLMs重新生成计划。ReWOO [48]引入了一种将计划与外部观察分开的范式,其中代理首先独立生成计划和获取观察,然后将它们结合起来得出最终结果。HuggingGPT [13]首先将任务分解为许多子目标,然后根据Huggingface解决每个子目标。与CoT和Zero-shot-CoT不同,它们以一次性方式产生所有推理步骤,ReWOO和HuggingGPT通过多次访问LLMs产生结果。

• 多路径推理。

在这种策略中,生成最终计划的推理步骤被组织成树状结构。每个中间步骤可能有多个子步骤。这种方法类似于人类思维,因为个体在每个推理步骤上可能有多种选择。具体来说,Self-consistent CoT (CoT-SC) [49]认为每个复杂问题都有多种思考方式来推导出最终答案。因此,它首先使用CoT生成各种推理路径和相应答案。随后,选择出现频率最高的答案作为最终输出。Tree of Thoughts (ToT) [50]旨在使用树状推理结构生成计划。在这种方法中,树中的每个节点代表一个“思想”,对应一个中间推理步骤。这些中间步骤的选择基于LLMs的评估。最终计划是使用广度优先搜索(BFS)或深度优先搜索(DFS)策略生成的。与CoT-SC不同,后者一起生成所有计划步骤,ToT需要为每个推理步骤查询LLMs。在RecMind [51]中,作者设计了一种自我激励机制,其中规划过程中丢弃的历史信息也被利用来推导新的推理步骤。在GoT [52]中,作者将ToT中的树状推理结构扩展到图结构,从而产生了更强大的提示策略。在AoT [53]中,作者设计了一种新方法,通过将算法示例纳入提示中来增强LLMs的推理过程。值得注意的是,这种方法只需要查询LLMs一次或几次。在[54]中,LLMs被用作零次规划者。在每个规划步骤中,它们首先生成多个可能的下一步,然后根据它们与可接受行动的距离来确定最终步骤。[55]通过将与查询中的示例相似的示例纳入其中,进一步改进了[54]。RAP [56]基于蒙特卡罗树搜索(MCTS)构建了一个世界模型,以模拟不同计划的潜在好处,然后通过聚合多个MCTS迭代来生成最终计划。为了增强理解,我们提供了一个比较单路径和多路径推理策略的图示(图3)。

• 外部规划器。

尽管LLMs在零次规划中展示了强大的能力,但为特定领域问题有效生成计划仍然非常具有挑战性。为了解决这个挑战,研究人员转向外部规划器。这些工具已经发展成熟,并采用高效的搜索算法快速识别正确或甚至是最优的计划。具体来说,LLM+P [57]首先将任务描述转换为形式化的规划领域定义语言(PDDL),然后使用外部规划器处理PDDL。最后,生成的结果通过LLMs转换回自然语言。类似地,LLM-DP [58]利用LLMs将观察、当前世界状态和目标目标转换为PDDL。随后,这个转换后的数据被传递给外部规划器,后者有效地确定最终行动序列。CO-LLM [22]表明LLMs擅长生成高层次计划,但在低层次控制方面存在困难。为了解决这个局限性,采用了一个启发式设计的外部低层次规划器,根据高层次计划有效地执行行动。

有反馈的规划:

在许多现实世界的场景中,代理需要进行长期规划来解决复杂任务。面对这些任务时,上述无反馈的规划模块可能不太有效,原因如下:首先,从一开始就直接生成一个无瑕疵的计划是极其困难的,因为它需要考虑各种复杂的前提条件。因此,简单地按照初始计划行事往往会导致失败。此外,计划的执行可能会受到不可预测的过渡动态的阻碍,使初始计划无法执行。同时,当考察人类如何解决复杂任务时,我们发现个体可能会根据外部反馈迭代地制定和修订计划。为了模拟这种人类能力,研究人员设计了许多规划模块,其中代理可以在采取行动后接收反馈。反馈可以从环境、人类和模型中获得,详细情况如下。

• 环境反馈。

这种反馈是从客观世界或虚拟环境中获得的。例如,它可能是游戏的任务完成信号或代理采取行动后所做的观察。具体来说,ReAct [59]提出使用思想-行动-观察三元组构建提示。思想部分旨在促进高层次推理和规划,以指导代理行为。行动代表代理采取的具体行动。观察对应于行动的结果,通过外部反馈获得,例如搜索引擎结果。下一个思想受到以前观察的影响,使生成的计划更适应环境。Voyager [38]通过结合三种类型的环境反馈来制定计划,包括程序执行的中间进度、执行错误和自我验证结果。这些信号可以帮助代理为下一个行动制定更好的计划。与Voyager类似,Ghost [16]也将反馈纳入推理和行动采取过程中。这个反馈包括环境状态以及每个执行行动的成功和失败信息。SayPlan [31]利用来自场景图模拟器的环境反馈来验证和完善其战略公式。这个模拟器擅长辨别代理行动的结果和状态转换,有助于SayPlan迭代调整其战略,直到找到可行的计划。在DEPS [33]中,作者认为,仅仅提供任务完成的信息通常不足以纠正规划错误。因此,他们提出告知代理任务失败的详细原因,使他们能够更有效地修订计划。LLMPlanner [60]引入了一种基于地面的重新规划算法,当在任务完成过程中遇到对象不匹配和无法实现的计划时,动态更新由LLMs生成的计划。Inner Monologue [61]在代理采取行动后提供三种类型的反馈给代理:(1)任务是否成功完成,(2)被动场景描述,以及(3)主动场景描述。前者由环境生成,使代理行动更加合理。

• 人类反馈。

除了从环境中获取反馈外,直接与人类互动也是增强代理规划能力的直观策略。人类反馈是一种主观信号。它可以有效使代理与人类价值观和偏好保持一致,并帮助缓解幻觉问题。在Inner Monologue [61]中,代理旨在在3D视觉环境中执行高级自然语言指令。它被赋予主动征求人类关于场景描述的反馈的能力。然后,代理将人类反馈纳入其提示中,使其规划和推理更加明智。在上述案例中,我们可以看到不同类型的反馈可以结合使用来增强代理的规划能力。例如,Inner Monologue [61]收集了环境和人类的反馈来促进代理的规划。

• 模型反馈。

除了上述的环境和人类反馈之外,研究人员还研究了利用来自代理自身的内部反馈。这种反馈通常是基于预训练模型生成的。具体来说,[62]提出了一种自我完善机制。该机制由三个关键组成部分组成:输出、反馈和改进。首先,代理生成输出。然后,它利用LLMs对输出提供反馈并提供改进指导。最后,输出通过反馈和改进得到改善。这个输出-反馈-改进过程迭代进行,直到达到某些期望条件。SelfCheck [63]允许代理检查和评估在各个阶段生成的推理步骤。然后,它们可以通过比较结果来纠正任何错误。InterAct [64]使用不同的语言模型(如ChatGPT和InstructGPT)作为辅助角色,如检查器和分类器,帮助主要语言模型避免错误和低效的行动。ChatCoT [65]利用模型反馈来提高其推理过程的质量。模型反馈是由监视代理推理步骤的评估模块生成的。Reflexion [12]旨在通过详细的口头反馈增强代理的规划能力。在这个模型中,代理首先基于其记忆产生行动,然后评估器通过将代理轨迹作为输入来生成反馈。与以前的研究不同,这里的反馈不是以标量值给出的,而是利用LLMs提供更详细的口头反馈,这可以为代理计划提供更全面的支持。

备注。总之,实施无反馈的规划模块相对直接。然而,它主要适用于只需要少量推理步骤的简单任务。相反,有反馈的规划策略需要更仔细的设计来处理反馈。尽管如此,它相当强大,能够有效解决涉及长期推理的复杂任务。

2.1.4 行动模块

行动模块负责将代理的决策转化为具体成果。这个模块位于最下游的位置,直接与环境互动。它受到配置文件、记忆和规划模块的影响。本节从四个角度介绍行动模块:(1)行动目标:行动的预期成果是什么?(2)行动生成:行动是如何产生的?(3)行动空间:可用的行动是什么?(4)行动影响:行动的后果是什么?在这些角度中,前两个关注行动之前的方面("行动前"方面),第三个关注行动本身("行动中"方面),第四个强调行动的影响("行动后"方面)。

行动目标:

代理可以执行具有各种目标的行动。在这里,我们介绍几个代表性的例子:(1)任务完成。在这种情况下,代理的行动旨在完成特定任务,例如在Minecraft [38]中制作铁镐或完成软件开发中的函数。这些行动通常有明确的目标,每个行动都有助于完成最终任务。针对这种目标的行动在现有文献中非常常见。(2)沟通。在这种情况下,行动是为了与其他代理或真实人类沟通,以共享信息或协作。例如,ChatDev [18]中的代理可能会相互沟通,共同完成软件开发任务。在Inner Monologue [61]中,代理积极与人类沟通,并根据人类反馈调整其行动策略。(3)环境探索。在这个例子中,代理旨在探索不熟悉的环境,以扩大其感知并在探索和利用之间取得平衡。例如,Voyager [38]中的代理可能在完成任务的过程中探索未知的技能,并通过试错不断完善技能执行代码。

行动生成:

与普通的LLMs不同,代理可能通过不同的策略和来源采取行动。以下,我们介绍两种常用的行动生成策略。(1)通过记忆回忆的行动。在这种策略中,行动是通过从代理记忆中提取与当前任务相关的信息来生成的。任务和提取的记忆被用作提示,触发代理行动。例如,在Generative Agents [20]中,代理维护一个记忆流,每次采取行动之前,它都会从记忆流中检索最近、相关和重要的信息来指导代理行动。在GITM [16]中,为了实现一个低级子目标,代理查询其记忆,以确定是否有与任务相关的成功经验。如果类似的任务已经完成,代理将直接调用先前成功的行动来处理当前任务。在协作代理如ChatDev [18]和MetaGPT [23]中,不同的代理可能会相互沟通。在这个过程中,对话历史记录在代理记忆中。代理生成的每个话语都受到其记忆的影响。(2)通过计划跟随的行动。在这种策略中,代理根据其预先生成的计划采取行动。例如,在DEPS [33]中,对于给定的任务,代理首先制定行动计划。如果没有计划失败的信号,代理将严格遵循这些计划。在GITM [16]中,代理通过将任务分解为许多子目标来制定高层次计划。基于这些计划,代理采取行动来顺序解决每个子目标,以完成最终任务。

行动空间:

行动空间指的是代理可以执行的可能行动的集合。一般来说,我们可以大致将这些行动分为两类:(1)外部工具和(2)LLMs的内部知识。以下,我们更详细地介绍这些行动。

• 外部工具。

虽然LLMs在完成大量任务方面表现出色,但它们可能不适用于需要全面专业知识的领域。此外,LLMs也可能遇到幻觉问题,这些问题很难自行解决。为了缓解上述问题,代理被赋予调用外部工具执行行动的能力。以下,我们介绍一些文献中利用的代表性工具。

(1) API。利用外部API来补充和扩展行动空间是近年来流行的范式。例如,HuggingGPT [13]利用HuggingFace上的模型来完成复杂的用户任务。[66,67]提出在响应用户请求时自动生成查询以从外部网页中提取相关内容。TPTU [67]与Python解释器和LaTeX编译器接口,以执行复杂的计算,如平方根、阶乘和矩阵操作。另一种API可以直接根据LLMs的自然语言或代码输入调用。例如,Gorilla [68]是一个经过微调的LLM,旨在为API调用生成准确的输入参数,并减轻外部API调用过程中的幻觉问题。ToolFormer [15]是一个基于LLM的工具转换系统,可以根据自然语言指令自动将给定工具转换为具有不同功能或格式的工具。API-Bank [69]是一个基于LLM的API推荐代理,可以自动搜索和生成各种编程语言和领域的适当API调用。APIBank还提供了一个交互式界面,使用户可以轻松修改和执行生成或转换的工具。ToolBench [14]是一个基于LLM的工具生成系统,可以根据自然语言需求自动设计和实现各种实用工具。ToolBench生成的工具包括计算器、单位转换器、日历、地图、图表等。RestGPT [70]将LLMs与RESTful API连接起来,这些API遵循广泛接受的Web服务开发标准,使生成的程序更兼容实际应用程序。TaskMatrix.AI [71]将LLMs与数百万API连接起来,以支持任务执行。其核心是一个多模态对话基础模型,与用户互动,理解他们的目标和上下文,然后为特定任务生成可执行代码。所有这些代理都利用外部API作为其工具,并为用户提供交互式界面,以轻松修改和执行生成或转换的工具。

(2)数据库和知识库。整合外部数据库或知识库使代理能够获得特定领域的信息,以生成更现实的行动。例如,ChatDB [40]使用SQL语句查询数据库,以逻辑方式促进代理的行动。MRKL [72]和OpenAGI [73]结合各种专家系统,如知识库和规划器,以访问特定领域的信息。

  (3) 外部模型。以前的研究经常利用外部模型来扩展可能行动的范围。与API相比,外部模型通常处理更复杂的任务。每个外部模型可能对应多个API。例如,为了增强文本检索能力,MemoryBank [39]结合了两个语言模型:一个用于编码输入文本,另一个负责匹配查询语句。ViperGPT [74]首先使用基于语言模型的Codex从文本描述中生成Python代码,然后执行代码以完成给定任务。TPTU [67]结合了各种LLMs来完成各种语言生成任务,如生成代码、制作歌词等。ChemCrow [75]是一个基于LLM的化学代理,旨在执行有机合成、药物发现和材料设计任务。它利用十七个专家设计的模型来协助其操作。MM-REACT [76]整合了各种外部模型,如用于视频摘要的VideoBERT、用于图像生成的X-decoder和用于音频处理的SpeechBERT,增强了其在多样化多模态场景中的能力。

• 内部知识。

除了使用外部工具外,许多代理还依赖于LLMs的内部知识来指导其行动。现在我们介绍LLMs的几个关键能力,这些能力可以支持代理合理有效地行为。

(1) 规划能力。以前的工作已经表明,LLMs可以作为不错的规划者,将复杂任务分解为更简单的任务[45]。这种LLMs的能力甚至可以在不包含示例的情况下触发[46]。基于LLMs的规划能力,DEPS[33]开发了一个Minecraft代理,它可以通过子目标分解来解决复杂任务。类似的代理,如GITM[16]和Voyager[38],也严重依赖于LLMs的规划能力来成功完成不同任务。

(2) 交流能力。LLMs通常能够生成高质量的对话。这种能力使代理的行为更像人类。在以前的工作中,许多代理根据LLMs的强大交流能力采取行动。例如,在ChatDev[18]中,不同的代理可以讨论软件开发过程,甚至可以反思自己的行为。在RLP[30]中,代理可以根据潜在的反馈来与听众交流。

(3) 常识理解能力。LLMs的另一个重要能力是它们能够很好地理解人类的常识。基于这种能力,许多代理可以模拟日常生活并做出类似人类的决策。例如,在Generative Agent中,代理可以准确理解其当前状态、周围环境,并根据基本观察总结高层次的想法。如果没有LLMs的常识理解能力,这些行为就无法可靠地模拟。类似的结论也可能适用于Rec Agent[21]和S3[77],其中代理旨在模拟用户推荐和社会行为。

行动影响:

行动影响指的是行动的后果。实际上,行动影响可以包括许多实例,但为了简洁起见,我们只提供一些例子。

(1) 改变环境。代理可以通过行动直接改变环境状态,例如移动位置、收集物品、建造建筑等。例如,在GITM[16]和Voyager[38]中,环境被代理在任务完成过程中的行动所改变。例如,如果代理采集了三块木材,那么它们可能就会从环境中消失。

(2) 改变内部状态。代理采取的行动也可以改变代理本身,包括更新记忆、形成新计划、获得新知识等。例如,在Generative Agents[20]中,记忆流在系统内执行行动后得到更新。SayCan[78]使代理能够采取行动来更新对环境的理解。

(3) 触发新的行动。在任务完成过程中,一个代理的行动可以由另一个行动触发。例如,Voyager[38]在收集了所有必要的资源后开始建造建筑。

2.2 代理能力获取

在上述章节中,我们主要关注如何设计代理架构以更好地激发LLMs的能力,使其有资格像人类一样完成任务。架构作为代理的“硬件”。然而,仅依赖硬件是不足以实现有效任务表现的。这是因为代理可能缺乏执行任务所需的特定能力、技能和经验,这些可以被视为“软件”资源。为了使代理具备这些资源,已经设计了各种策略。一般来说,我们根据是否需要对LLMs进行微调将这些策略分为两类。以下,我们将更详细地介绍它们。

带微调的能力获取:

增强代理完成任务能力的直接方法是根据任务依赖的数据集对代理进行微调。通常,数据集可以根据人类注释、LLM生成或从实际应用中收集。以下,我们将更详细地介绍这些方法。

• 通过人类注释数据集进行微调。

利用人类注释数据集进行微调是一种多才多艺的方法,可以应用于各种应用场景。在这种方法中,研究人员首先设计注释任务,然后招募工作人员完成它们。例如,在CoH[84]中,作者旨在使LLMs与人类价值观和偏好保持一致。与其他模型不同,人类反馈以简单的象征性方式利用,这种方法将人类反馈转换为详细的比较信息,以自然语言的形式呈现。LLMs直接根据这些自然语言数据集进行微调。在RET-LLM[42]中,为了更好地将自然语言转换为结构化记忆信息,作者根据人工构建的数据集对LLMs进行微调,其中每个样本是“三元组-自然语言”对。在WebShop[85]中,作者从amazon.com收集了118万真实世界产品,并将它们放在一个模拟电子商务网站上,该网站包含几个精心设计的人类购物场景。基于这个网站,作者招募了13名工作人员来收集真实人类行为数据集。最后,基于这个数据集,训练了基于启发式规则、模仿学习和强化学习的三种方法。尽管作者没有对基于LLM的代理进行微调,但我们相信这篇论文提出的数据集在增强网络购物领域代理的能力方面具有巨大的潜力。在EduChat[86]中,作者旨在增强LLMs的教育功能,如开放领域问答、文章评估、苏格拉底式教学和情感支持。他们根据涵盖各种教育场景和任务的人工注释数据集对LLMs进行微调。这些数据集由心理学专家和一线教师手动评估和策划。SWIFTSAGE[87]是一个受人类认知双过程理论启发的代理,对解决复杂的交互推理任务非常有效。在这个代理中,SWIFT模块构成了一个紧凑的编码器-解码器语言模型,使用人工注释数据集进行微调。

• 通过LLM生成的数据集进行微调。

构建人工注释数据集需要招募人员,这可能成本很高,特别是当需要注释大量样本时。考虑到LLMs可以在广泛的任务中实现类似人类的能力,一个自然的想法是使用LLMs来完成注释任务。虽然通过这种方法生成的数据集可能不如人工注释的完美,但它要便宜得多,并且可以用来生成更多的样本。例如,在ToolBench[14]中,为了增强开源LLMs的工具使用能力,作者从RapidAPI Hub收集了16,464个真实世界的API,涵盖49个类别。他们使用这些API来提示ChatGPT生成多样化的指令,涵盖单工具和多工具场景。基于所获得的数据集,作者对LLaMA[9]进行了微调,并在工具使用方面取得了显著的性能提升。在[82]中,为了赋予代理社交能力,作者设计了一个沙箱,并部署了多个代理相互交互。给定一个社交问题,中央代理首先生成初始响应。然后,它将响应分享给附近的代理以收集反馈。基于反馈以及详细的解释,中央代理修改初始响应,使其更符合社交规范。在这个过程中,作者收集了大量的代理社交互动数据,然后利用这些数据对LLMs进行微调。

• 通过真实世界数据集进行微调。

除了基于人类或LLM注释构建数据集外,直接使用真实世界数据集对代理进行微调也是一种常见策略。例如,在MIND2WEB[89]中,作者收集了大量的真实世界数据集,以增强代理在网络领域的能力。与以前的研究不同,本文提出的数据集涵盖了多样化的任务、真实世界场景和全面的用户互动模式。具体来说,作者从137个真实世界网站收集了超过2,000个开放式任务,涵盖了31个领域。使用这个数据集,作者对LLMs进行了微调,以提高其在网络相关任务上的表现,包括电影发现和票务预订等。在SQL-PALM[90]中,研究人员根据一个跨领域大规模文本到SQL数据集Spider对PaLM-2进行了微调。所获得的模型在文本到SQL任务上取得了显著的性能提升。

无微调的能力获取:

在传统机器学习时代,模型能力主要是通过从数据集中学习获得的,其中知识被编码到模型参数中。在LLMs时代,模型能力既可以通过训练/微调模型参数获得,也可以通过设计精心的提示(即提示工程)获得。在提示工程中,人们需要将有价值的信息写入提示中,以增强模型能力或释放现有LLMs的能力。在代理时代,模型能力可以通过三种策略获得:(1)模型微调,(2)提示工程和(3)设计适当的代理演化机制(我们称之为机制工程)。机制工程是一个广泛的概念,涉及开发专门的模块,引入新的工作规则等策略,以增强代理能力。为了清楚地理解模型能力获取策略的转变,我们在图4中说明了它们。以下,我们介绍提示工程和机制工程用于代理能力获取。

• 提示工程。

由于大型语言模型(LLM)强大的语言理解能力,人们可以直接使用自然语言与LLM进行交互。这引入了一种增强智能体能力的新策略,即可以用自然语言描述所需的能力,然后将其用作提示来影响LLM的行为。例如,在CoT[45]中,为了赋予智能体复杂任务推理的能力,作者在提示中以少数样本示例的形式呈现了中间推理步骤。类似的技术也用于CoT-SC[49]和ToT[50]。在SocialAGI[30]中,为了在对话中增强智能体的自我意识能力,作者使用智能体关于听者和自身心理状态的信念来提示LLM,这使得生成的话语更具吸引力和适应性。此外,作者还结合了听者的目标心理状态,这使得智能体能制定更具战略性的计划。Retroformer[91]提出了一种回顾性模型,使智能体能生成对过去失败的反思。这些反思被整合到LLM的提示中,以指导智能体未来的行动。此外,该模型还利用强化学习来迭代改进回顾性模型,从而完善LLM的提示。

• 机制工程。

与模型微调和提示工程不同,机制工程是增强代理能力的独特策略。以下,我们将介绍几种代表性的机制工程技术。

(1) 试错法。

在这种方法中,代理首先执行一个行动,然后调用预定义的批评家来评判这个行动。如果行动被认为是不满意的,代理会根据批评家的反馈进行调整。在RAH[92]中,代理作为推荐系统的用户助手。代理的一个关键角色是模拟人类行为并代表用户生成响应。为了实现这一目标,代理首先生成一个预测响应,然后将其与真实人类反馈进行比较。如果预测响应与真实人类反馈不同,批评家会生成失败信息,随后代理将此信息纳入下一次行动中。在DEPS[33]中,代理首先为给定任务设计一个计划。在计划执行过程中,如果某个行动失败,解释器会生成详细的失败原因说明。这些信息随后被代理用来重新设计计划。在RoCo[93]中,代理首先为每个机器人提出一个子任务计划和一条3D路径。然后,通过一系列环境检查(如碰撞检测和逆运动学)来验证计划和路径。如果任何检查失败,反馈将附加到每个代理的提示中,并开始另一轮对话。代理使用LLMs讨论和改进他们的计划和路径,直到它们通过所有验证。在PREFER[94]中,代理首先在数据子集上评估自己的表现。如果它无法解决某些示例,LLMs被用来生成反映失败原因的反馈信息。基于这些反馈,代理通过迭代改进其行动来提升自己。

(2) 众包。

在[95]中,作者设计了一个辩论机制,利用群体的智慧来增强代理的能力。首先,不同的代理对给定问题提供不同的回应。如果他们的回答不一致,他们将被提示整合其他代理的解决方案并提供更新的回应。这个迭代过程持续进行,直到达成最终共识答案。在这个方法中,每个代理的能力通过理解和整合其他代理的意见得到提升。

(3) 经验积累。

在GITM[16]中,代理一开始不知道如何完成任务。然后,它进行探索,一旦成功完成任务,在这个任务中使用的行动被存储到代理记忆中。将来,如果代理遇到类似的任务,那么相关的记忆中的信息将被提取以完成当前任务。在这个过程中,改进的代理能力来自于专门设计的记忆积累和利用机制。在Voyager[38]中,作者为代理配备了一个技能库,库中的每个技能都由可执行代码表示。在代理与环境的互动过程中,根据环境反馈和代理自我验证结果,每个技能的代码将被迭代改进。经过一段时间的执行,代理可以通过访问技能库高效地完成不同的任务。在AppAgent[96]中,代理被设计成以类似于人类用户的方式与应用程序互动,通过自主探索和观察人类演示来学习。在这个过程中,它构建了一个知识库,作为在手机上执行各种应用程序中复杂任务的参考。在MemPrompt[97]中,用户被要求以自然语言提供关于代理解决问题意图的反馈,这些反馈被存储在记忆中。当代理遇到类似的任务时,它尝试检索相关的记忆以生成更合适的响应。

(4) 自驱动演化。

在LMA3[98]中,代理可以自主设定自己的目标,并通过探索环境和接收来自奖励函数的反馈逐渐提升其能力。遵循这种机制,代理可以根据个人喜好获取知识和发展能力。在SALLM-MS[99]中,通过将先进的大型语言模型(如GPT-4)集成到多代理系统中,代理可以适应并执行复杂的任务,展现出先进的沟通能力,从而实现与环境互动中的自我驱动演化。在CLMTWA[100]中,通过使用大型语言模型作为教师,较弱的语言模型作为学生,教师可以生成并沟通自然语言解释,通过理论思维来提高学生的推理技能。教师还可以根据学生的预期效用对解释进行个性化,并在必要时进行干预。在NLSOM[101]中,不同的代理通过自然语言进行沟通和协作,解决单个代理无法解决的任务。这可以看作是一种自我驱动的学习,利用多个代理之间的信息和知识交流。然而,与其他模型如LMA3、SALLM-MS和CLMTWA不同,NLSOM允许根据任务要求和其他代理或环境的反馈动态调整代理角色、任务和关系。

备注。比较上述代理能力获取策略,我们可以发现微调方法通过调整模型参数来提高代理能力,可以整合大量的任务特定知识,但只适用于开源LLMs。不进行微调的方法通常基于精心设计的提示策略或机制工程来增强代理能力。它们可以用于开源和闭源LLMs。然而,由于LLMs的输入上下文窗口限制,它们无法整合过多的任务信息。此外,提示和机制的设计空间非常大,这使得找到最优解并不容易。

在上述章节中,我们详细讨论了基于LLM的代理的构建,重点关注了架构设计和能力获取两个方面。我们在表1中展示了现有工作与上述分类的对应关系。值得注意的是,为了完整性,我们还纳入了一些没有明确提及基于LLM的代理的研究,但与这个领域高度相关。

3 LLM基础自主代理应用

得益于LLMs强大的语言理解、复杂任务推理和常识理解能力,LLM基础自主代理在多个领域展现出了巨大的潜力。本节将简要总结先前的研究,并将它们按照在社会科学、自然科学和工程学三个不同领域的应用进行分类(如图5左侧所示)。

3.1 社会科学

社会科学是科学的一个重要分支,致力于研究社会及其内部个体之间的关系。LLM基础自主代理通过利用其出色的类人理解、思考和解决问题的能力,推动了这一领域的发展。以下,我们将讨论几个LLM基础自主代理可以产生影响的关键领域。

心理学:

在心理学领域,LLM基础代理可以用来进行模拟实验,提供心理健康支持等[102-105]。例如,在[102]中,作者给LLMs分配不同的角色,并让它们完成心理学实验。结果发现,LLMs能够生成与涉及人类参与者的研究结果一致的结果。此外,观察到较大的模型相比较小的模型能够提供更准确的模拟结果。一个有趣的发现是,在许多实验中,像ChatGPT和GPT-4这样的模型能够提供过于完美的估计(称为“超准确性失真”),这可能会影响下游应用。在[104]中,作者系统地分析了基于LLM的对话代理在心理健康支持方面的有效性。他们收集了Reddit上的120篇帖子,并发现这些代理能够帮助用户应对焦虑、社会孤立和抑郁等需求。同时,他们也发现代理有时可能会产生有害内容。

政治科学与经济:

LLM基础代理也可以用于研究政治科学和经济学[29, 105, 106]。在[29]中,LLM基础代理被用于意识形态检测和预测投票模式。在[105]中,作者专注于通过LLM基础代理理解政治演讲的话语结构和说服元素。在[106]中,LLM基础代理被赋予特定的特质,如才能、偏好和个性,以探索模拟场景中的人类经济行为。

社会模拟:

以前,进行涉及人类社会的大型实验通常是昂贵的、不道德的,甚至是不可行的。随着LLMs的不断发展,许多人探索建立虚拟环境,利用LLM基础代理来模拟社会现象,如有害信息的传播等[20, 34, 77, 107-110]。例如,Social Simulacra[79]模拟了一个在线社交社区,并探索了利用基于代理的模拟来帮助决策者改进社区规则的潜力。[107,108]研究了LLM基础代理在社交网络中不同行为特征的潜在影响。Generative Agents[20]和AgentSims[34]在一个虚拟小镇中构建了多个代理,以模拟人类日常生活。SocialAI School[109]利用LLM基础代理来模拟和研究儿童发展过程中的基本社会认知技能。S3[77]构建了一个社交网络模拟器,专注于信息、情感和态度的传播。CGMI[111]是一个多代理模拟框架。CGMI通过树状结构维护代理的个性,并构建了一个认知模型。作者使用CGMI模拟了一个课堂场景。

法学:

LLM基础自主代理可以作为法律决策过程中的辅助工具,帮助进行更为明智的判断[112, 113]。Blind Judgement[113]利用几个语言模型来模拟多位法官的决策过程。它通过收集多样化的意见,并通过投票机制整合结果。ChatLaw[112]是一个基于LLM的著名中国法律模型。它特别设计了数据库和关键词搜索策略,旨在减轻这类模型中普遍存在的幻觉问题。此外,该模型还采用了自注意力机制,通过减轻参考不准确性的影响来增强LLM的能力。

研究助理:除了在专业领域中的应用,LLM基础自主代理越来越多地被用作社会科学研究领域的通用助理[105, 114]。在[105]中,LLM基础自主代理提供多方面的帮助,从生成简洁的文章摘要和提取关键关键词到为研究制定详细的脚本,展示了它们能够丰富和简化研究过程的能力。同时,在[114]中,LLM基础自主代理作为写作助理,展示了它们能够为社会科学家识别新颖的研究问题的能力,从而为该领域开辟新的探索和创新途径。

3.2 自然科学

自然科学是科学的一个分支,关注基于观察和实验的自然现象的描述、理解和预测。随着LLMs的不断发展,LLM基础自主代理在自然科学领域的应用变得越来越受欢迎。以下,我们将介绍许多代表性的领域,LLM基础自主代理在其中可以发挥重要作用。

文档和数据管理:

自然科学研究通常涉及大量的文献收集、组织和综合,这需要大量的时间和精力。LLM基础自主代理在理解语言和使用互联网和数据库等工具进行文本处理方面表现出强大的能力。这些能力使代理在与文档和数据管理相关的任务中表现出色[75, 115, 116]。在[115]中,代理能够高效地查询和利用互联网信息来完成问题回答和实验规划等任务。ChatMOF[116]利用LLM从人类编写的文本描述中提取重要信息。然后,它制定计划应用相关工具来预测金属有机框架的性质和结构。ChemCrow[75]利用与化学相关的数据库来验证化合物表示的准确性,并识别潜在的危险物质。这一功能通过确保涉及的数据的准确性,增强了科学调查的可靠性和全面性。

实验助理:

LLM基础自主代理有能力独立进行实验,使它们成为支持科学家进行研究项目的宝贵工具[75, 115]。例如,在[115]中,介绍了一个创新的代理系统,该系统利用LLM自动化设计、规划和执行科学实验。当系统接收到实验目标作为输入时,它会访问互联网并检索相关文档以收集必要的信息。随后,它使用Python代码进行必要的计算并进行以下实验。ChemCrow[75]结合了17个精心设计的工具,专门用于协助研究人员进行化学研究。一旦接收到输入目标,ChemCrow就会为实验程序提供有价值的建议,同时强调拟议实验的任何潜在安全风险。

自然科学教育:

LLM基础自主代理能够与人类流利交流,通常被用于开发基于代理的教育工具[115, 117-119]。例如,在[115]中,开发了基于代理的教育系统,以帮助学生学习实验设计、方法和分析。这些系统的目标是提高学生的批判性思维和解决问题的能力,同时培养对科学原理的更深刻理解。Math Agents[117]可以协助研究人员探索、发现、解决和证明数学问题。此外,它还可以与人类交流,帮助他们理解和使用数学。[118]利用CodeX[119]的能力自动解决和解释大学级别的数学问题,可以作为教育工具来教授学生和研究人员。CodeHelp[120]是针对编程的教育代理。它提供许多有用的功能,如设置课程特定的关键词、监控学生查询并为系统提供反馈。EduChat[86]是专为教育领域设计的LLM基础代理。它通过对话为教师、学生和家长提供个性化、公平和富有同情心的教育支持。FreeText[121]是利用LLM自动评估学生对开放式问题的回应并提供反馈的代理。

3.3 工程学

LLM基础自主代理在协助和增强工程研究和应用方面展现出巨大潜力。在本节中,我们将回顾和总结LLM基础代理在几个主要工程领域的应用。

土木工程:

在土木工程中,LLM基础代理可用于设计和优化复杂结构,如建筑、桥梁、水坝和道路等。例如,某研究[138]提出了一个交互式框架,在这个框架中,人类建筑师和代理协作在3D模拟环境中构建结构。交互式代理能够理解自然语言指令,放置积木,检测困惑,寻求澄清,并整合人类反馈,展示了人工智能与人类在工程设计中协作的潜力。

计算机科学与软件工程:

在计算机科学和软件工程领域,LLM基础代理提供了自动化编码、测试、调试和文档生成的潜力[14, 18, 23, 24, 126-128]。ChatDev[18]提出了一个端到端框架,在这个框架中,多个代理角色通过自然语言对话进行交流和协作,以完成软件开发生命周期。这个框架展示了以高效和成本有效的方式生成可执行软件系统的能力。ToolBench[14]可用于代码自动补全和代码推荐等任务。MetaGPT[23]抽象出多个角色,如产品经理、架构师、项目经理和工程师,以监督代码生成过程并提高最终输出代码的质量。这使得低成本软件开发成为可能。[24]提出了一个使用LLMs进行代码生成的自我协作框架。在这个框架中,多个LLMs被假设为特定子任务的“专家”。它们根据指定的指令进行协作和互动,形成一个虚拟团队,相互促进工作。最终,虚拟团队协作解决代码生成任务,无需人类干预。LLIFT[139]利用LLMs协助进行静态分析,特别是识别潜在的代码漏洞。这种方法有效地平衡了准确性和可扩展性。ChatEDA[123]是为电子设计自动化(EDA)开发的代理,通过整合任务规划、脚本生成和执行来简化设计过程。CodeHelp[120]是为学生和开发人员设计的代理,用于调试和测试他们的代码。其功能包括提供错误消息的详细解释、提出潜在的修复方案,并确保代码的准确性。PENTESTGPT[125]是基于LLMs的渗透测试工具,可以有效识别常见漏洞,并解释源代码以开发利用。DB-GPT[41]利用LLMs的能力,系统地评估数据库异常的潜在根本原因。通过实施思维树方法,DB-GPT使LLMs能够在当前步骤不成功时回溯到之前的步骤,从而提高了诊断过程的准确性。

工业自动化:

在工业自动化领域,LLM基础代理可用于智能规划和控制生产过程。[129]提出了一个新颖的框架,将大型语言模型(LLMs)与数字孪生系统集成,以适应灵活的生产需求。该框架利用提示工程技术创建能够根据数字孪生提供的信息适应特定任务的LLM代理。这些代理可以协调一系列原子功能和技能,在自动化金字塔的不同层级完成生产任务。这项研究展示了将LLMs集成到工业自动化系统中的潜力,为更灵活、适应性和适应性更强的生产过程提供了创新解决方案。IELLM[130]展示了LLMs在油气行业的应用案例,涵盖了岩石物理、声学反射测量和连续油管控制等应用。

机器人学与具身人工智能:

最近的工作已经开发了更高效的强化学习代理,用于机器人学和具身人工智能[16,38,78,132-135,140-143]。重点是提高自主代理在具身环境中的规划、推理和协作能力。具体来说,[140]提出了一个统一的代理系统,用于具身推理和任务规划。在这个系统中,作者设计了高级命令以实现更好的规划,同时提出了低级控制器将命令转化为行动。此外,可以利用对话来收集信息[141],以加速优化过程。[142,143]利用自主代理进行具身决策和探索。为了克服物理限制,代理可以生成可执行的计划,并通过利用多种技能完成长期任务。在控制策略方面,SayCan[78]专注于研究一系列操作和导航技能,利用移动操作器机器人。受到厨房环境中典型任务的启发,它提出了一套全面的551种技能,涵盖了七个技能家族和17种物体。这些技能包括各种动作,如拿起、放置、倾倒、抓取和操纵物体等。TidyBot[137]是一个设计用于个性化家庭清洁任务的具身代理。它可以通过文本示例学习用户的物体放置和操纵方法的偏好。

为了促进LLM基础自主代理的应用,研究人员还引入了许多开源库,基于这些库,开发人员可以根据他们的定制需求快速实现和评估代理[19,81,127,144-157]。例如,LangChain[149]是一个自动化编码、测试、调试和文档生成任务的开源框架。通过将语言模型与数据源集成,并促进与环境的交互,LangChain通过自然语言通信和协作,使软件开发变得高效且成本低廉。基于LangChain,XLang[147]提供了一套完整的工具、完整的用户界面,并支持三种不同的代理场景,即数据处理、插件使用和网络代理。AutoGPT[81]是一个完全自动化的代理。它设定一个或多个目标,将它们分解成相应的任务,并循环执行任务,直到目标实现。WorkGPT[150]是一个类似于AutoGPT和LangChain的代理框架。通过提供指令和一组API,它与AI进行来回对话,直到指令完成。GPT-Engineer[128]、SmolModels[126]和DemoGPT[127]是专注于通过提示自动化代码生成以完成开发任务的开源项目。AGiXT[146]是一个动态的AI自动化平台,旨在跨多个提供商协调高效的AI命令管理和任务执行。AgentVerse[19]是一个多功能框架,方便研究人员高效创建定制的LLM基础代理模拟。GPT Researcher[152]是一个实验性应用程序,利用大型语言模型高效开发研究问题,触发网络爬虫以收集信息,总结来源,并聚合摘要。BMTools[153]是一个扩展LLMs的开源库,提供了工具,并提供了一个平台,用于社区驱动的工具构建和共享。它支持各种类型的工具,可以同时使用多个工具执行多个任务,并提供了一个简单的接口,通过URL加载插件,促进了BMTools生态系统的轻松开发和贡献。

备注。利用LLM基础代理在支持上述应用方面也可能带来风险和挑战。一方面,LLMs本身可能容易受到幻觉和其他问题的影响,偶尔会提供错误的答案,导致错误的结论、实验失败,甚至可能对人类安全构成风险。因此,在实验过程中,用户必须具备必要的专业知识和知识,以行使适当的谨慎。另一方面,LLM基础代理可能被用于恶意目的,例如开发化学武器,这需要实施安全措施,例如人类对齐,以确保负责任和道德的使用。总之,在上述章节中,我们介绍了LLM基础自主代理在三个重要领域的典型应用。为了便于理解,我们在表2中总结了先前研究与各自应用的关系。

大型语言模型(LLM)为基础的自主智能体的典型应用。

4 LLM基础自主代理评估

与LLMs本身类似,评估LLM基础自主代理的有效性是一项具有挑战性的任务。本节概述了两种常见的评估方法:主观和客观方法。有关全面概述,请参阅图5的右侧部分。

4.1 主观评估

主观评估根据人类判断来衡量代理的能力[20,22,29,79,158]。它适用于没有评估数据集或难以设计定量指标的场景,例如评估代理的智能或用户友好性。以下,我们将介绍两种常用的主观评估策略。

人类注释:

这种评估方法涉及人类评估员直接对各种代理生成的输出进行评分或排名[22,29,105]。例如,在[20]中,作者雇佣了许多注释员,并要求他们就与代理能力直接相关的五个关键问题提供反馈。类似地,[159]通过让人类参与者对模型在无害性、诚实度、有帮助性、参与度和无偏见性等方面进行评分来评估模型的有效性,然后在不同模型之间比较这些分数。在[79]中,注释员被要求确定专门设计的模型是否可以显著增强在线社区内规则的发展。

图灵测试:

这种评估策略要求人类评估员区分代理产生的输出和人类创建的输出。如果在给定任务中,评估员无法区分代理和人类的结果,这表明代理在这项任务上达到了类似人类的表现。例如,研究人员在[29]中进行了关于自由形式党派文本的实验,人类评估员被要求猜测回应是来自代理还是人类。在[20]中,人类评估员被要求识别行为是来自代理还是真人。在EmotionBench[160]中,收集了人类注释,以比较LLM软件和人类参与者在各种场景中表达的情感状态。这种比较作为评估LLM软件在模仿人类表现和情感表达方面的能力的基准,展示了理解代理能力的微妙方法。

备注。LLM基础代理通常旨在为人类服务。因此,主观代理评估发挥着关键作用,因为它反映了人类的标准。然而,这种策略也面临着高成本、低效率和人群偏见等问题。为了解决这些问题,越来越多的研究人员正在研究使用LLMs本身作为中介来进行这些主观评估。例如,在ChemCrow[75]中,研究人员使用GPT来评估实验结果。他们考虑了任务的完成情况和底层过程的准确性。类似地,ChatEval在[161]中,提出了一种新颖的方法,通过让多个代理以结构化的辩论形式对各种候选模型生成的结果进行批评和评估,从而使用LLMs进行评估。这种创新的LLMs用于评估目的的方法有望提高主观评估的可信度和适用性。随着LLM技术的发展,预计这些方法将变得更加可靠,并找到更广泛的应用,从而克服直接人类评估的当前局限性。

4.2 客观评估

客观评估是指使用可以计算、比较和随时间跟踪的定量指标来评估LLM基础自主代理的能力。与主观评估不同,客观指标旨在提供关于代理性能的具体、可衡量的见解。为了进行客观评估,有三个重要方面需要考虑,即评估指标、协议和基准。以下将详细介绍这些方面。

指标:

为了客观评估代理的有效性,设计合适的指标非常重要,这可能影响评估的准确性和全面性。理想的评估指标应能准确反映代理的质量,并与人类在现实场景中使用它们时的感受保持一致。在现有工作中,我们可以总结出以下几种代表性的评估指标。(1)任务成功指标:这些指标衡量代理完成任务和实现目标的能力。常见的指标包括成功率[12,22,57,59]、奖励/得分[22,59,138]、覆盖率[16]和准确性[18,40,102]。较高的值表示更强的任务完成能力。(2)类人度指标:这些指标量化代理行为与人类行为的相似程度。典型的例子包括轨迹/位置准确性[38, 164]、对话相似性[79,102]和模仿人类回应[29,102]。较高的相似性表示更好的类人模拟性能。(3)效率指标:与前述用于评估代理有效性的指标不同,这些指标旨在评估代理的效率。常考虑的指标包括规划长度[57]、开发成本[18]、推理速度[16,38]和澄清对话次数[138]。

协议:

除了评估指标之外,客观评估的另一个重要方面是如何利用这些指标。在以前的工作中,我们可以识别出以下几种常用的评估协议:(1)现实世界模拟:在这种方法中,代理在沉浸式环境中进行评估,如游戏和交互式模拟器。代理需要自主执行任务,然后使用任务成功率和类人度等指标根据它们的轨迹和完成的目标来评估代理的能力[16,22,33,38,59,85,138,164,166,170]。这种方法预计将评估代理在现实世界场景中的实际能力。(2)社会评估:这种方法利用指标来评估代理在模拟社会中的互动所表现出的社会智能。采取了各种方法,如合作任务来评估团队合作技能,辩论来分析论证推理,以及人类研究来衡量社会适应性[34,79,102,165,173]。这些方法分析了连贯性、心理理论和社会智商等品质,以评估代理在合作、沟通、同理心和模仿人类社会行为等领域的能力。通过让代理处于复杂的互动环境中,社会评估为代理的更高层次社会认知提供了有价值的见解。(3)多任务评估:在这种方法中,人们使用来自不同领域的一系列不同任务来评估代理,这可以有效衡量代理在开放领域环境中的泛化能力[29,85,153,165,166,172,173]。(4)软件测试:在这种方法中,研究人员通过让代理执行软件测试任务来评估代理,如生成测试用例、复制错误、调试代码和与开发人员及外部工具交互[162, 163, 169, 173]。然后,可以使用测试覆盖率和错误检测率等指标来衡量LLM基础代理的有效性。

基准:

考虑到指标和协议,进行评估的一个关键剩余方面是选择合适的基准。过去,研究人员在他们的实验中使用了各种基准。例如,许多研究人员使用像ALFWorld[59]、IGLU[138]和Minecraft[16,33,38]这样的模拟环境作为基准来评估代理的能力。Tachikuma[170]是一个利用TRPG游戏日志来评估LLMs理解和推断与多个角色和新物体复杂互动的基准。AgentBench[172]提供了一个全面的框架,用于在不同环境中评估LLMs作为自主代理。它代表了在现实世界挑战中对LLMs作为代理的系统评估的第一项工作。SocKET[165]是一个全面的基准,用于评估LLMs在58个任务中的社交能力,涵盖幽默和讽刺、情感和感受、可信度等5个类别的社交信息。AgentSims[34]是一个多功能框架,用于评估LLM基础代理,其中可以灵活地设计代理规划、记忆和行动策略,并衡量交互环境中不同代理模块的有效性。ToolBench[153]是一个旨在支持具有一般工具使用能力的强大的LLMs的开源项目。它提供了一个开放平台,用于基于工具学习的LLMs的训练、服务和评估。WebShop[85]开发了一个基准,用于评估LLM基础代理在产品搜索和检索方面的能力。该基准是使用118万真实世界项目的集合构建的。Mobile-Env[166]是一个可扩展的交互平台,可用于评估LLM基础代理的多步骤交互能力。WebArena[171]提供了一个全面的网站环境,涵盖多个领域。它的目的是以端到端的方式评估代理,并确定它们完成任务的准确性。GentBench[174]是一个基准,旨在评估代理在使用工具完成复杂任务时的推理、安全性和效率能力。RocoBench[93]是一个基准,通过多代理协作跨多种场景,强调沟通和协调策略,以评估合作机器人的适应性和泛化能力。EmotionBench[160]评估LLMs的情感评估能力,即它们在面对特定情况时情感的变化。它收集了超过400个引发八种负面情绪的情况,并使用自报量表来衡量LLMs和人类受试者的情感状态。PEB[125]是一个为评估LLM基础代理在渗透测试场景中的能力而设计的基准,包括来自领先平台的13个不同目标。它提供了跨不同难度级别的结构化评估,反映了代理面临的现实世界挑战。ClemBench[167]包含五个对话游戏,以评估LLMs作为玩家的能力。E2E[175]是一个端到端的基准,用于测试聊天机器人的准确性和有用性。

备注。客观评估通过各种指标促进了对LLM基础代理能力的定量分析。虽然当前技术无法完美衡量所有类型的代理能力,但客观评估提供了与主观评估相辅相成的重要见解。在基准和客观评估方法方面的持续进步将进一步提高LLM基础自主代理的发展和理解。

在上述章节中,我们介绍了LLM基础自主代理评估的主观和客观策略。代理的评估在该领域中发挥着重要作用。然而,主观和客观评估各有优缺点。也许在实践中,它们应该结合起来,以全面评估代理。我们在表3中总结了先前工作与这些评估策略的对应关系。

5 相关调查

随着大型语言模型的快速发展,出现了各种全面的调查,为各种方面提供了详细的见解。[176]广泛介绍了LLMs的背景、主要发现和主流技术,涵盖了大量现有工作。另一方面,[177]主要关注LLMs在各种下游任务中的应用和部署所带来的挑战。将LLMs与人类智能对齐是一个活跃的研究领域,解决了偏见和幻觉等问题。[178]汇编了现有的人类对齐技术,包括数据收集和模型训练方法。推理是智能的一个关键方面,影响决策制定、问题解决和其他认知能力。[179]介绍了LLMs推理能力的当前研究状态,探讨了提高和评估其推理技能的方法。[180]提出可以通过推理能力和使用工具的能力来增强语言模型,称为增强语言模型(ALMs)。他们对ALMs的最新进展进行了全面回顾。随着大规模模型的使用变得越来越普遍,评估它们的性能变得越来越关键。[181]阐明了评估LLMs的问题,解决了评估什么、在哪里评估以及如何评估它们在下游任务和社会影响中的性能。[182]还讨论了LLMs在各种下游任务中的能力和局限性。

上述研究涵盖了大型模型的各个方面,包括训练、应用和评估。然而,在本文之前,还没有专门关注LLM基础代理这一迅速出现且极具前景的领域。在本研究中,我们汇编了100篇关于LLM基础代理的相关研究,涵盖了代理的构建、应用和评估过程。

6 挑战

尽管LLM基础自主代理的研究取得了许多显著的成功,但该领域仍处于初级阶段,并且在其发展中需要解决几个重大挑战。以下,我们将介绍许多代表性的挑战。

6.1 角色扮演能力

不同于传统的LLMs,自主代理通常需要扮演特定的角色(例如程序员、研究员、化学家等)来完成不同的任务。因此,代理的角色扮演能力非常重要。尽管LLMs可以有效地模拟许多常见角色,如电影评论家,但它们在准确捕捉各种角色和方面仍然存在困难。首先,LLMs通常是基于网络语料库进行训练的,因此对于那些在网络中很少讨论或新出现的角色,LLMs可能无法很好地模拟它们。此外,以前的研究[30]表明,现有的LLMs可能无法很好地模拟人类认知心理特征,导致在对话场景中缺乏自我意识。解决这些问题的潜在方法可能包括对LLMs进行微调或精心设计代理提示/架构[183]。

为了解决这些问题,可以首先收集关于不常见角色或心理特征的真实人类数据,然后利用这些数据对LLMs进行微调。然而,如何确保经过微调的模型在常见角色上仍然表现良好可能会带来进一步的挑战。除了微调之外,还可以设计定制的代理提示/架构来增强LLM在角色扮演方面的能力。然而,找到最优的提示/架构并不容易,因为它们的设计空间太大。

6.2 泛化人类对齐

人类对齐已经被广泛讨论过,特别是在传统的LLMs中。在LLM基础自主代理领域,尤其是当代理被用于模拟时,我们认为这个概念应该更深入地讨论。为了更好地服务人类,传统的LLMs通常被微调以与正确的人类价值观保持一致,例如,代理不应该计划为了报复社会而制造炸弹。然而,当代理被用于现实世界模拟时,一个理想的模拟器应该能够诚实地描绘多样化的人类特征,包括那些具有不正确价值观的特征。实际上,模拟人类的负面方面可能更为重要,因为模拟的一个重要目标是发现和解决问题,没有负面方面就意味着没有问题需要解决。例如,为了模拟现实世界的社会,我们可能必须允许代理计划制造炸弹,并观察它如何实施计划以及其行为的影响。基于这些观察,人们可以采取更好的行动来阻止现实世界中的类似行为。受到上述案例的启发,基于代理的模拟的一个重要问题可能是如何进行泛化的人类对齐,即对于不同的目的和应用,代理应该能够与多样化的人类价值观保持一致。然而,现有的强大LLMs,包括ChatGPT和GPT-4,主要与统一的人类价值观保持一致。因此,一个有趣的方向是如何通过设计适当的提示策略来“重新对齐”这些模型。

6.3 提示鲁棒性

为了确保代理的理性行为,设计者通常会向LLMs中嵌入辅助模块,如记忆和规划模块。然而,包含这些模块需要开发更复杂的提示框架,以促进一致的操作和有效通信。以前的研究[184,185]已经强调了LLMs提示的鲁棒性不足,因为即使是微小的变化也可能导致截然不同的结果。当构建自主代理时,这个问题变得更加突出,因为它们包含的不仅仅是单个提示,而是一个考虑所有模块的提示框架,其中一个模块的提示可能会影响其他模块。此外,不同LLMs的提示框架可能差异很大。开发一个适用于不同LLMs的统一且有弹性的提示框架仍然是一个关键且未解决的挑战。解决上述问题的两种潜在解决方案是:(1)通过试错手动制作关键提示元素,或(2)使用GPT自动生成提示。

6.4 幻觉

幻觉对LLMs来说是一个根本性的挑战,其特点是模型倾向于以高度自信产生虚假信息。这个挑战不仅限于LLMs,也是自主代理领域的一个重要关注点。例如,在[186]中,观察到在代码生成任务中,当面临简单的指令时,代理可能会表现出幻觉行为。幻觉可能导致严重的后果,如错误或误导性的代码、安全风险和伦理问题[186]。为了缓解这个问题,将人类纠正反馈直接纳入人机交互的迭代过程中是一个可行的方法[23]。关于幻觉问题的更多讨论可以在[176]中找到。

6.5 知识边界

LLM基础自主代理的一个关键应用在于模拟多样化的真实世界人类行为[20]。人类模拟的研究有着悠久的历史,最近的兴趣激增可以归因于LLMs取得的显著进步,它们在模拟人类行为方面展示了重要的能力。然而,认识到LLMs的力量可能并不总是有利的是很重要的。具体来说,理想的模拟应该准确地复制人类知识。在这种情况下,LLMs可能显示出压倒性的能力,因为它们是在庞大的网络知识语料库上训练的,远远超过了普通人可能知道的内容。LLMs的巨大能力可能显著影响模拟的有效性。例如,当试图模拟用户对各种电影的选择行为时,确保LLMs假设自己没有关于这些电影的先验知识至关重要。然而,有可能LLMs已经获得了关于这些电影的信息。如果没有实施适当的策略,LLMs可能会根据其广泛的知识做出决策,尽管现实世界中的用户事先并无法接触到这些电影的内容。

6.6 效率

由于其自回归架构,LLMs通常具有较慢的推理速度。然而,代理可能需要多次查询LLMs来进行每个行动,例如提取记忆信息、在采取行动前制定计划等。因此,代理行动的效率受到LLMs推理速度的极大影响。

7 结论

在这项调查中,我们系统地总结了LLM基础自主代理领域的现有研究。我们从代理的构建、应用和评估三个方面对这些研究进行了介绍和回顾。对于每个方面,我们都提供了详细的分类,以在现有研究之间绘制联系,总结主要技术和它们的发展历史。除了回顾先前的工作,我们还提出了这一领域中的几个挑战,这些挑战预计将指导未来可能的发展方向。

致谢 本工作得到了国家自然科学基金(No. 62102420)、北京杰出青年科学家计划NO. BJJWZYJH012019100020098、智能社会治理平台、“双一流”倡议的重大创新与规划跨学科平台、中国人民大学、公共计算云、中国人民大学世界一流大学(学科)建设基金、智能社会治理平台的支持。

References

1. Mnih V, Kavukcuoglu K, Silver D, Rusu A A, Veness J, Bellemare M G, Graves A, Riedmiller M, Fidjeland A K, Ostrovski G, others . Human-level control through deep reinforcement learning. nature, 2015, 518(7540): 529–533

2. Lillicrap T P, Hunt J J, Pritzel A, Heess N, Erez T, Tassa Y, Silver D, Wierstra D. Continuous control with deep reinforcement learning. arXiv preprint arXiv:1509.02971, 2015

3. Schulman J, Wolski F, Dhariwal P, Radford A, Klimov O. Proximal policy optimization algorithms. arXiv preprint arXiv:1707.06347, 2017

4. Haarnoja T, Zhou A, Abbeel P, Levine S. Soft actor-critic: Off-policy maximum entropy deep reinforcement learning with a stochastic actor. In: International conference on machine learning. 2018, 1861–1870

5. Brown T, Mann B, Ryder N, Subbiah M, Kaplan J D, Dhariwal P, Neelakantan A, Shyam P, Sastry G, Askell A, others . Language models are few-shot learners. Advances in neural information processing systems, 2020, 33: 1877–1901

6. Radford A, Wu J, Child R, Luan D, Amodei D, Sutskever I, others . Language models are unsupervised multitask learners. OpenAI blog, 2019, 1(8): 9

7. Achiam J, Adler S, Agarwal S, Ahmad L, Akkaya I, Aleman F L, Almeida D, Altenschmidt J, Altman S, Anadkat S, others . Gpt-4 technical report. arXiv preprint arXiv:2303.08774, 2023

8. Anthropic . Model card and evaluations for claude models. https://www-files.anthropic.com/production/images/Model-Card-Claude-2.pdf?ref=maginative.com, 2023

9. Touvron H, Lavril T, Izacard G, Martinet X, Lachaux M A, Lacroix T, Rozière B, Goyal N, Hambro E, Azhar F, others . Llama: Open and efficient foundation language models. arXiv preprint arXiv:2302.13971, 2023

10. Touvron H, Martin L, Stone K, Albert P, Almahairi A, Babaei Y, Bashlykov N, Batra S, Bhargava P, Bhosale S, others . Llama 2: Open foundation and fine-tuned chat models. arXiv preprint arXiv:2307.09288, 2023

11. Chen X, Li S, Li H, Jiang S, Qi Y, Song L. Generative adversarial user model for reinforcement learning based recommendation system. In: International Conference on Machine Learning. 2019, 1052–1061

12. Shinn N, Cassano F, Gopinath A, Narasimhan K, Yao S. Reflexion: Language agents with verbal reinforcement learning. Advances in Neural Information Processing Systems, 2024, 36

13. Shen Y, Song K, Tan X, Li D, Lu W, Zhuang Y. Hugginggpt: Solving ai tasks with chatgpt and its friends in hugging face. Advances in Neural Information Processing Systems, 2024, 36

14. Qin Y, Liang S, Ye Y, Zhu K, Yan L, Lu Y, Lin Y, Cong X, Tang X, Qian B, others . Toolllm: Facilitating large language models to master 16000+ real-world apis. arXiv preprint arXiv:2307.16789, 2023

15. Schick T, Dwivedi-Yu J, Dessì R, Raileanu R, Lomeli M, Hambro E, Zettlemoyer L, Cancedda N, Scialom T. Toolformer: Language models can teach themselves to use tools. Advances in Neural Information Processing Systems, 2024, 36

16. Zhu X, Chen Y, Tian H, Tao C, Su W, Yang C, Huang G, Li B, Lu L, Wang X, others . Ghost in the minecraft: Generally capable agents for open-world environments via large language models with text-based knowledge and memory. arXiv preprint arXiv:2305.17144, 2023

17. Sclar M, Kumar S, West P, Suhr A, Choi Y, Tsvetkov Y. Minding language models’(lack of) theory of mind: A plug-and-play multi-character belief tracker. arXiv preprint arXiv:2306.00924, 2023

18. Qian C, Cong X, Yang C, Chen W, Su Y, Xu J, Liu Z, Sun M. Communicative agents for software development. arXiv preprint arXiv:2307.07924, 2023

19. al. e C. Agentverse. https://www.wpsshop.cn/w/IT小白/article/detail/489091

推荐阅读
相关标签
  

闽ICP备14008679号