探秘基于LLM的自主智能体:构建、应用与挑战全解析

以前的自主智能体研究,智能体往往在孤立环境中学习,和人类的学习过程差别很大,很难做出像人类那样的决策。而现在大型语言模型发展得不错,有达到人类水平智能的潜力,所以基于大型语言模型来构建自主智能体的研究越来越多。这篇文章就是把这些研究做一个全面的总结,让大家能更好地了解这个领域,也为以后的研究指出方向,对推动这个领域的发展有重要意义。

本文对基于大型语言模型的自主智能体进行了系统综述,涵盖构建、应用与评估,提出该领域面临的挑战及未来方向,为该领域的研究提供了全面的参考和指导。

摘要&解读

自主智能体长期以来一直是学术界和工业界的研究焦点。以往的研究通常侧重于在孤立环境中训练知识有限的智能体,这与人类的学习过程有很大不同,使得智能体难以做出类人决策。近年来,通过获取大量网络知识,大型语言模型(LLMs)展现出了达到人类水平智能的潜力,导致基于LLM的自主智能体研究激增。在本文中,我们对这些研究进行了全面综述,从整体角度对基于LLM的自主智能体进行了系统回顾。我们首先讨论了基于LLM的自主智能体的构建,提出了一个涵盖先前大量工作的统一框架。然后,我们概述了基于LLM的自主智能体在社会科学、自然科学和工程学中的多样应用。最后,我们深入探讨了常用于基于LLM的自主智能体的评估策略。基于先前的研究,我们还提出了该领域的几个挑战和未来方向。

  • 研究背景:以往自主智能体研究在孤立环境中训练,与人类学习过程差异大,难以实现类人决策。随着大型语言模型的发展,其展现出达到人类水平智能的潜力,促使基于其构建自主智能体的研究兴起,旨在使智能体能够更好地在复杂环境中执行任务,像人类一样感知、规划和行动,以完成各种目标。

  • 研究贡献

  • 提出基于大型语言模型的自主智能体统一框架,涵盖角色设定、记忆、规划和行动模块,整合了先前众多研究成果,为智能体架构设计提供了全面的参考。

  • 总结了智能体能力获取的多种策略,包括微调与非微调方法,如利用不同类型数据集微调以及通过提示工程和机制工程增强能力,拓展了智能体能力提升的途径。

  • 系统梳理了智能体在社会科学、自然科学和工程学等领域的应用,为跨学科研究提供了思路,展示了该技术的广泛适用性和潜在价值。

  • 详细阐述了主观和客观的智能体评估策略,包括多种评估指标、协议和基准,有助于更准确地衡量智能体的性能和效果。

  • 实现设计

  • 智能体架构设计

  • 角色设定模块:通过手工制作、LLM 生成或数据集对齐方法确定智能体角色特征,包括基本信息、心理和社会信息等,以影响智能体行为。

  • 记忆模块:采用统一记忆(仅模拟短期记忆,通过上下文学习)或混合记忆(结合短期和长期记忆,利用向量数据库等存储和检索长期记忆)结构,记忆格式有自然语言、嵌入、数据库、结构化列表等,通过记忆读取(基于近期性、相关性和重要性评分提取信息)、记忆写入(解决记忆重复和溢出问题)和记忆反思(总结和推断抽象信息)操作与环境交互。

  • 规划模块:无反馈规划包括单路径推理(如思维链及其变体)、多路径推理(如自我一致思维链、思维树及其扩展)和外部规划器(利用外部规划工具);有反馈规划包括环境反馈(根据环境信号调整计划)、人类反馈(从人类交互中获取反馈)和模型反馈(基于自身内部反馈改进计划)。

  • 行动模块:行动目标包括任务完成、通信、环境探索等;行动产生有基于记忆回忆和基于计划执行两种策略;行动空间包括外部工具(APIs、数据库和知识库、外部模型)和内部知识(规划、对话、常识理解能力);行动影响包括改变环境、改变内部状态、触发新行动。

  • 智能体能力获取

  • 微调能力获取:使用人类注释数据集(如基于人类注释的各种任务数据集)、LLM 生成的数据集(利用 LLM 生成任务数据)、现实世界数据集(如真实网络数据、文本到 SQL 数据集)对智能体进行微调。

  • 无微调能力获取:提示工程(通过设计提示增强智能体能力,如思维链提示)和机制工程(试错法、众包法、经验积累法、自驱动进化法等)。

一、引言

“自主智能体是一个处于环境之中并作为环境一部分的系统,它能感知环境并对其采取行动,随着时间推移,追求自身目标,并影响其未来的感知。” ——Franklin和Graesser(1997)

自主智能体一直被认为是实现人工通用智能(AGI)的有前途的方法,AGI有望通过自主规划和行动完成任务。在先前的研究中,智能体被假定基于简单的启发式策略函数行动,并在孤立和受限的环境中学习[1 - 6]。这种假设与人类的学习过程有很大差异,因为人类思维高度复杂,个体可以从更广泛的环境中学习。由于这些差距,从先前研究中获得的智能体通常远不能复制人类水平的决策过程,特别是在无约束的开放域环境中。

近年来,大型语言模型(LLMs)取得了显著成功,展示出实现类人智能的巨大潜力[5 - 10]。这种能力源于利用全面的训练数据集和大量的模型参数。基于此能力,一个新兴的研究领域是将LLMs用作中央控制器来构建自主智能体,以获得类人决策能力[11 - 17]。

与强化学习相比,基于LLM的智能体拥有更全面的内部世界知识,使其即使在没有特定领域数据训练的情况下也能采取明智的行动。此外,基于LLM的智能体可以提供自然语言接口用于人机交互,具有更大的灵活性和更强的可解释性。

沿着这个方向,研究人员开发了许多有前景的模型(见图1概述),其关键思想是为LLMs配备记忆和规划等人类能力,使其表现得像人类并有效完成各种任务。以前,这些模型是独立提出的,很少有人对它们进行全面总结和比较。然而,我们认为对这个快速发展的领域进行系统总结对于全面理解它非常重要,并有助于激发未来的研究。

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

总之,本综述对基于LLM的自主智能体这一新兴领域的现有研究进行了系统回顾,并建立了全面的分类法。我们的重点包括三个主要领域:智能体的构建、应用和评估方法。借鉴大量先前的研究,我们确定了该领域的各种挑战,并讨论了潜在的未来方向。我们期望我们的综述能够为基于LLM的自主智能体领域的新手提供全面的背景知识,并鼓励进一步的开创性研究。

二、基于LLM的自主智能体构建

基于LLM的自主智能体有望通过利用LLMs的类人能力有效执行各种任务。为了实现这一目标,有两个重要方面:(1)应设计哪种架构以更好地使用LLMs;(2)在设计好架构的情况下,如何使智能体获得完成特定任务的能力。在架构设计方面,我们对现有研究进行了系统综合,最终形成了一个全面的统一框架。对于第二个方面,我们根据是否微调LLMs总结了智能体获取能力的策略。将基于LLM的自主智能体与传统机器学习相比,架构设计类似于定义网络结构,而能力获取类似于学习网络参数。在以下各节中,我们将更详细地探讨这两个方面。

2.1 智能体架构设计

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

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来研究LLM输出的毒性。一般来说,手工制作方法非常灵活,因为可以为智能体分配任何角色信息。然而,它也可能很费力,特别是在处理大量智能体时。

  • LLM生成方法:在这种方法中,智能体角色是基于LLMs自动生成的。通常,首先指示角色生成规则,阐明目标群体中智能体角色的组成和属性。然后,可以可选地指定几个种子智能体角色作为少样本示例。最后,利用LLMs生成所有智能体角色。例如,RecAgent[21]首先通过手动制作几个智能体的属性(如年龄、性别、个人特征和电影偏好)来创建种子角色。然后,它利用ChatGPT根据种子信息生成更多智能体角色。这种方法大大减少了构建智能体角色所需的时间和精力,特别是对于大规模群体。然而,它可能对生成的角色缺乏精确控制,这可能导致与预期特征不一致或偏差。

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

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

2.1.2 记忆模块

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

  • 记忆结构:基于LLM的自主智能体通常从认知科学对人类记忆过程的研究中获取灵感。人类记忆一般遵循从记录感知输入的感觉记忆,到短暂维持信息的短期记忆,再到长期巩固信息的长期记忆的过程。在设计智能体记忆结构时,研究人员从人类记忆的这些方面获得启发。特别是,短期记忆类似于受transformer架构约束的上下文窗口内的输入信息。长期记忆类似于智能体可以根据需要快速查询和检索的外部向量存储。下面,我们介绍两种基于短期和长期记忆的常用记忆结构。

  • 统一记忆:这种结构仅模拟人类的短期记忆,通常通过上下文学习实现,记忆信息直接写入提示中。例如,RLP[30]是一个对话智能体,它为说话者和听者维护内部状态。在每一轮对话中,这些状态作为LLM提示,充当智能体的短期记忆。SayPlan[31]是一个专为任务规划设计的具身智能体。在这个智能体中,场景图和环境反馈充当智能体的短期记忆,指导其行动。CALYPSO[32]是一个为游戏《龙与地下城》设计的智能体,它可以协助地下城主创建和讲述故事。其短期记忆基于场景描述、怪物信息和先前的总结。DEPS[33]也是一个为《我的世界》开发的游戏智能体。智能体首先生成任务计划,然后利用它们提示LLMs,LLMs进而产生行动以完成任务。这些计划可以被视为智能体的短期记忆。在实践中,实现短期记忆很简单,可以增强智能体感知近期或上下文敏感行为和观察的能力。然而,LLMs的有限上下文窗口限制了将全面的记忆纳入提示中,这可能会损害智能体的性能。这一挑战需要具有更大上下文窗口和处理扩展上下文能力的LLMs。因此,许多研究人员转向混合记忆系统来缓解这个问题。

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

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

  • 记忆格式:除了记忆结构,从记忆存储介质的格式角度分析记忆模块也是一种方法,例如自然语言记忆或嵌入记忆。不同的记忆格式具有不同的优势,适用于各种应用。下面,我们介绍几种代表性的记忆格式。

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

  • 嵌入:在这种格式中,记忆信息被编码为嵌入向量,这提高了检索和读取效率。例如,MemoryBank[39]将每个记忆段编码为嵌入向量,并使用双塔密集检索模型从过去的对话中高效检索相关信息。

  • 数据库:在这种格式中,记忆信息存储在数据库中,允许智能体高效和全面地操作记忆。例如,ChatDB[40]使用数据库作为符号记忆模块。智能体可以利用SQL语句精确地添加、删除和修改记忆信息。

  • 结构化列表:在这种格式中,记忆信息被组织成列表,并且记忆的语义可以以高效和简洁的方式传达。例如,GITM[16]以分层树结构存储子目标的行动列表。分层结构明确地捕捉了目标和相应计划之间的关系。RETLLM[41]首先将自然语言句子转换为三元组短语,然后将它们存储在记忆中。

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

上面我们主要讨论了记忆模块的内部设计。下面,我们将重点转向用于与外部环境交互的记忆操作。

  • 记忆操作:记忆模块在智能体通过与环境交互获取、积累和利用重要知识方面起着关键作用。智能体与环境的交互通过三个关键的记忆操作来完成:记忆读取、记忆写入和记忆反思。下面我们更详细地介绍这些操作。

  • 记忆重复:为了整合相似信息,人们开发了各种方法来整合新记录和先前记录。例如,在[16]中,与同一子目标相关的成功行动序列存储在一个列表中。一旦列表大小达到,使用将其中的所有序列浓缩为一个统一的计划解决方案。用新生成的解决方案替换内存中的原始序列。增强型[42]通过计数累积聚合重复信息,避免冗余存储。

  • 记忆溢出:为了在内存已满时写入信息,人们设计了不同的方法来删除现有信息以继续记忆过程。例如,在[40]中,可以根据用户命令显式删除记忆。[41]使用固定大小的缓冲区作为内存,以先进先出()的方式覆盖最旧的条目。

  • 记忆读取:记忆读取的目的是从记忆中提取有意义的信息以增强智能体的行动。例如,利用先前成功的行动来实现类似的目标[16]。记忆读取的关键在于如何从历史行动中提取有价值的信息。通常,有三个常用的信息提取标准,即近期性、相关性和重要性[20]。更近、更相关和更重要的记忆更有可能被提取。从现有文献中,我们得出以下用于记忆信息提取的公式:其中是查询,例如智能体应处理的任务或智能体所处的上下文。是所有记忆的集合。、和是用于衡量记忆的近期性、相关性和重要性的评分函数。这些评分函数可以使用各种方法实现,例如可以基于、、、等实现。需要注意的是,仅反映记忆本身的特征,因此与查询无关。、和是平衡参数。通过为它们分配不同的值,可以获得各种记忆读取策略。例如,通过设置,许多研究[16,30,38,41]在记忆读取时只考虑相关性得分。通过设置,[20]对上述三个指标同等加权以从记忆中提取信息。

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

  • 记忆反思:记忆反思模拟人类观察和评估自己认知、情感和行为过程的能力。当应用于智能体时,其目的是为智能体提供独立总结和推断更抽象、复杂和高级信息的能力。更具体地说,在生成式智能体(Generative Agent)[20]中,智能体能够将存储在记忆中的过去经验总结为更广泛和更抽象的见解。首先,智能体根据其最近的记忆生成三个关键问题。然后,使用这些问题查询记忆以获得相关信息。基于获得的信息,智能体生成五个见解,这些见解反映了智能体的高级想法。例如,低级记忆“克劳斯·穆勒正在写一篇研究论文”、“克劳斯·穆勒正在与图书管理员交流以推进他的研究”和“克劳斯·穆勒正在与阿耶莎·汗谈论他的研究”可以归纳出高级见解“克劳斯·穆勒致力于他的研究”。此外,反思过程可以分层进行,这意味着可以基于现有见解生成新的见解。在[16]中,成功完成子目标的行动存储在一个列表中。当列表包含超过五个元素时,智能体将它们总结为一个共同的抽象模式并替换所有元素。在[43]中,介绍了两种智能体获取反思的方法。首先,智能体比较同一任务中的成功或失败轨迹。其次,智能体从一系列成功轨迹中学习以获得经验。

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

2.1.3 规划模块

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

  • 无反馈规划:在这种方法中,智能体在采取行动后不会接收影响其未来行为的反馈。下面我们介绍几种代表性策略。

  • 单路径推理:在这种策略中,最终任务被分解为几个中间步骤。这些步骤以级联方式连接,每个步骤仅导致一个后续步骤。遵循这些步骤以实现最终目标。具体来说,思维链(Chain of Thought,)[45]提出将解决复杂问题的推理步骤输入到提示中。这些步骤作为示例启发逐步进行规划和行动。在这种方法中,计划是基于提示中的示例启发创建的。零样本思维链(Zero - shot - CoT)[46]通过用“逐步思考”等触发句子提示,使其生成任务推理过程。与不同,这种方法不在提示中包含推理步骤作为示例。重新提示(RePrompting)[47]涉及在生成计划之前检查每个步骤是否满足必要的先决条件。如果一个步骤不满足先决条件,它会引入一个先决条件错误消息并提示重新生成计划。[48]引入了一种将计划与外部观察分离的范式,智能体首先生成计划并独立获得观察结果,然后将它们组合在一起以得出最终结果。[13]首先将任务分解为许多子目标,然后基于解决每个子目标。与和不同,它们一次性生成所有推理步骤,和通过多次访问产生结果。[49]受人类认知双过程理论[50]的启发,在复杂的交互任务中结合了和模块的力量进行规划。模块基于学习的模式提供快速响应,而模块使用大型语言模型,通过提出关键问题和生成行动序列进行深入规划,以确保任务成功完成。

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

  • 外部规划器:尽管在零样本规划方面表现出强大的能力,但有效地为特定领域问题生成计划仍然极具挑战性。为了解决这个挑战,研究人员转向外部规划器。这些工具已经很成熟,并且采用高效的搜索算法来快速识别正确甚至最优的计划。具体来说,[58]首先将任务描述转换为正式的规划领域定义语言(),然后使用外部规划器处理。最后,使用将生成的结果转换回自然语言。类似地,[59]利用将观察结果、当前世界状态和目标转换为。随后,将转换后的数据传递给外部规划器,外部规划器有效地确定最终的行动序列。[22]表明擅长生成高级计划,但在低级控制方面存在困难。为了解决这个限制,采用了一种启发式设计的外部低级规划器,以根据高级计划有效地执行行动。

  • 有反馈规划:在许多现实世界场景中,智能体需要进行长期规划以解决复杂任务。当面对这些任务时,上述无反馈规划模块可能会因为以下原因而效果不佳:首先,从一开始就生成一个完美无缺的计划极其困难,因为它需要考虑各种复杂的先决条件。因此,仅仅遵循初始计划往往会导致失败。此外,计划的执行可能会受到不可预测的转换动态的阻碍,使得初始计划无法执行。同时,当研究人类如何处理复杂任务时,我们发现个人可能会根据外部反馈迭代地制定和修改他们的计划。为了模拟这种人类能力,研究人员设计了许多规划模块,其中智能体在采取行动后可以接收反馈。反馈可以从环境、人类和模型中获得,具体如下。

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

  • 人类反馈:除了从环境中获取反馈外,直接与人类交互也是增强智能体规划能力的一种非常直观的策略。人类反馈是一种主观信号。它可以有效地使智能体与人类价值观和偏好保持一致,并有助于缓解幻觉问题。在内部独白(Inner Monologue)[62]中,智能体旨在在3D视觉环境中执行高级自然语言指令。它被赋予主动从人类那里征求关于场景描述的反馈的能力。然后,智能体将人类反馈纳入其提示中,从而实现更明智的规划和推理。在上述情况下,我们可以看到,不同类型的反馈可以结合起来增强智能体的规划能力。例如,内部独白(Inner Monologue)[62]收集环境和人类反馈以促进智能体的计划。

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

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

2.1.4 行动模块

行动模块负责将智能体的决策转化为具体的结果。这个模块位于最下游位置,直接与环境交互。它受到角色设定、记忆和规划模块的影响。本节从四个角度介绍行动模块:(1)行动目标:行动的预期结果是什么?(2)行动产生:行动是如何生成的?(3)行动空间:智能体可以执行哪些行动?(4)行动影响:行动的后果是什么?在这些角度中,前两个侧重于行动前的方面,第三个侧重于行动本身,第四个强调行动的影响。

  • 行动目标:智能体可以出于各种目的执行行动。这里我们给出几个代表性的例子:

  • 任务完成:在这种情况下,智能体的行动旨在完成特定任务,如在《我的世界》中制作铁镐[38]或在软件开发中完成一个函数[18]。这些行动通常有明确的目标,每个行动都有助于完成最终任务。旨在实现这种目标的行动在现有文献中非常常见。

  • 通信:在这种情况下,行动是为了与其他智能体或真实人类进行通信以共享信息或协作。例如,[18]中的智能体可能会相互通信以共同完成软件开发任务。在内部独白(Inner Monologue)[62]中,智能体积极与人类进行通信,并根据人类反馈调整其行动策略。

  • 环境探索:在这个例子中,智能体旨在探索不熟悉的环境以扩大其感知并在探索和利用之间取得平衡。例如,[38]中的智能体可能在任务完成过程中探索未知技能,并根据环境反馈通过试错不断完善技能执行代码。

  • 行动产生:与普通不同,在普通中模型输入和输出直接相关,智能体可能通过不同的策略和来源采取行动。下面我们介绍两种常用的行动产生策略。

  • 基于记忆回忆的行动:在这种策略中,行动是通过根据当前任务从智能体记忆中提取信息生成的。任务和提取的记忆用作提示来触发智能体行动例如,在生成式智能体(Generative Agents)[20]中,智能体维护一个记忆流,在采取每个行动之前,它会从记忆流中检索近期、相关和重要的信息来指导智能体的行动。在 GITM[16]中,为了实现一个低级子目标,智能体查询其记忆以确定是否有与该任务相关的成功经验。如果之前完成过类似任务,智能体会调用之前成功的行动来直接处理当前任务。在诸如 ChatDev[18]和 MetaGPT[23]等协作智能体中,不同的智能体可能会相互通信。在这个过程中,对话历史记录在智能体的记忆中。智能体生成的每个话语都受到其记忆的影响。

  • 基于计划执行的行动:在这种策略中,智能体按照预先生成的计划采取行动。例如,在 DEPS[33]中,对于给定的任务,智能体首先制定行动计划。如果没有表明计划失败的信号,智能体将严格遵循这些计划。在 GITM[16]中,智能体通过将任务分解为许多子目标来制定高级计划。基于这些计划,智能体采取行动依次解决每个子目标,以完成最终任务。

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

  • 规划能力:先前的工作表明,LLMs 可以用作不错的规划器,将复杂任务分解为更简单的任务[45]。LLMs 的这种能力甚至可以在提示中不包含示例的情况下被触发[46]。基于 LLMs 的规划能力,DEPS[33]开发了一个《我的世界》智能体,它可以通过子目标分解解决复杂任务。类似的智能体如 GITM[16]和 Voyager[38]也在很大程度上依赖于 LLMs 的规划能力来成功完成各种任务。

  • 对话能力:LLMs 通常可以生成高质量的对话。这种能力使智能体的行为更像人类。在先前的工作中,许多智能体基于 LLMs 的强大对话能力采取行动。例如,在 ChatDev[18]中,不同的智能体可以讨论软件开发过程,甚至反思自己的行为。在 RLP[30]中,智能体可以根据听众对其话语的潜在反馈与听众进行通信。

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

  • APIs:利用外部 APIs 来补充和扩展行动空间是近年来流行的范式。例如,HuggingGPT[13]集成了 HuggingFace 庞大的模型生态系统来处理复杂的用户任务。类似地,WebGPT[67]提出在响应用户请求时自动生成查询以从外部网页提取相关内容。TPTU[68]探索了 LLMs 通过战略任务规划和基于 API 的工具解决复杂任务的潜力。Gorilla[69]引入了一个经过微调的 LLM,能够为 API 调用生成精确的输入参数,有效减轻了在使用外部 API 时的幻觉问题。ToolFormer[15]采用自监督学习来确定何时以及如何调用外部工具,使用工具 API 的演示进行训练。API - Bank[70]提供了一个全面的基准,包含多种 API 工具,用于系统地评估工具增强的 LLMs,以及强大的训练数据集,旨在增强它们的集成能力。ToolLLaMA[14]提出了一个工具使用框架,包括数据收集、培训和评估,其微调模型在各种 APIs 上表现出色。RestGPT[71]将 LLMs 与遵循广泛接受的 Web 服务开发标准的 RESTful APIs 连接起来,使生成的程序更符合现实世界的应用。TaskMatrix.AI[72]将 LLMs 与广泛的 APIs 生态系统连接起来以支持任务执行。其核心是一个多模态对话基础模型,与用户交互,理解他们的目标和上下文,然后为特定任务生成可执行代码。本质上,这些智能体战略性地利用外部 APIs 作为多功能工具,通过集成各种计算能力系统地扩展了它们的行动空间,并超越了传统语言模型的固有局限性。

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

  • 外部模型:先前的研究经常利用外部模型来扩展可能的行动范围。与 APIs 相比,外部模型通常处理更复杂的任务。每个外部模型可能对应多个 APIs。例如,ViperGPT[75]首先使用基于语言模型实现的 Codex 从文本描述生成 Python 代码,然后执行代码以完成给定任务。ChemCrow[76]是一个基于 LLM 的化学智能体,旨在执行有机合成、药物发现和材料设计等任务。它利用了十七个专家设计的模型来协助其操作。MM - REACT[77]集成了各种外部模型,如用于视频总结的 VideoBERT、用于图像生成的 X - decoder 和用于音频处理的 SpeechBERT,增强了其在各种多模态场景中的能力。

  • 外部工具:虽然 LLMs 在完成大量任务方面已被证明是有效的,但对于需要全面专家知识的领域,它们可能效果不佳。此外,LLMs 可能还会遇到幻觉问题,这些问题很难自行解决。为了缓解上述问题,智能体被赋予调用外部工具来执行行动的能力。下面我们介绍一些文献中利用的代表性工具。

  • 内部知识:除了利用外部工具,许多智能体仅依靠 LLMs 的内部知识来指导其行动。我们现在介绍 LLMs 的几个关键能力,这些能力可以支持智能体合理有效地行动。

  • 行动影响:行动影响是指智能体行动的后果。虽然可能的影响范围很广,但为了清晰起见,我们强调几个关键示例:

  • 改变环境:智能体可以通过行动直接改变环境状态,例如移动位置、收集物品、建造建筑物等。例如,在 GITM[16]和 Voyager[38]中,环境在智能体完成任务的过程中被其行动所改变。具体来说,当智能体收集资源(如收获三块木头)时,这些资源会从环境中消失。

  • 改变内部状态:智能体采取的行动也可以改变智能体本身,包括更新记忆、形成新计划、获取新知识等。例如,在生成式智能体(Generative Agents)[20]中,在系统内执行行动后,记忆流会被更新。类似地,SayCan[79]使智能体能够采取行动来更新对环境的理解。

  • 触发新行动:在任务完成过程中,一个行动往往会导致后续行动。例如,在 Voyager[38]中,一旦智能体收集到必要的资源,它就会触发建筑物的建造。

2.2 智能体能力获取

在上述章节中,我们主要关注如何设计智能体架构以更好地利用 LLMs 的能力,使其能够完成类似于人类表现的任务。架构充当智能体的“硬件”。然而,仅依靠硬件不足以实现有效的任务性能。这是因为智能体可能缺乏必要的特定任务能力、技能和经验,这些可以被视为“软件”资源。为了为智能体配备这些资源,已经设计了各种策略。一般来说,我们根据是否需要微调 LLMs 将这些策略分为两类。下面我们详细介绍每一类。

  • 微调能力获取:增强智能体完成任务能力的一种直接方法是使用特定任务数据集对模型进行微调。这些数据集可以从人类注释、LLM 生成的内容或现实世界应用中构建。我们在下面详细讨论这些方法。

  • 使用人类注释数据集进行微调:使用人类注释数据集对智能体进行微调是一种在各种应用场景中都可以使用的通用方法。在这种方法中,研究人员首先设计注释任务,然后招募工作人员完成它们。例如,在 CoH[85]中,作者旨在使 LLMs 与人类价值观和偏好保持一致。与其他模型不同,在其他模型中人类反馈以简单和象征性的方式被利用,这种方法将人类反馈转换为以自然语言形式的详细比较信息。直接基于这些自然语言数据集对 LLMs 进行微调。在 RET - LLM[41]中,为了更好地将自然语言转换为结构化记忆信息,作者基于人类构建的数据集对 LLMs 进行微调,其中每个样本是一个“三元组 - 自然语言”对。在 WebShop[86]中,作者从亚马逊网站收集了 118 万个真实产品,并将它们放在一个模拟电子商务网站上,该网站包含几个精心设计的人类购物场景。基于这个网站,作者招募了 13 名工作人员收集一个真实人类行为数据集。最后,基于这个数据集训练了三种基于启发式规则、模仿学习和强化学习的方法。虽然作者没有微调基于 LLM 的智能体,但我们认为本文提出的数据集在增强网络购物领域智能体的能力方面具有巨大潜力。在 EduChat[87]中,作者旨在增强 LLMs 的教育功能,如开放域问答、论文评估、苏格拉底式教学和情感支持。他们基于涵盖各种教育场景和任务的人类注释数据集对 LLMs 进行微调。

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

  • 使用现实世界数据集进行微调:除了基于人类或 LLM 注释构建数据集外,直接使用现实世界数据集对智能体进行微调也是一种常见策略。例如,在 MIND2WEB[88]中,作者收集了大量现实世界数据集以增强智能体在网络领域的能力。与先前的研究不同,本文提出的数据集涵盖了各种任务、现实世界场景和全面的用户交互模式。具体来说,作者从 137 个跨越 31 个领域的现实世界网站收集了 2000 多个开放式任务。使用这个数据集,作者对 LLMs 进行微调,以提高它们在电影发现和票务预订等网络相关任务上的性能。类似地,在 SQL - PaLM[89]中,研究人员使用跨域、大规模的文本到 SQL 数据集(包括 Spider 和 BIRD)对 PaLM - 2 进行微调。得到的模型在文本到 SQL 任务上取得了显著的性能提升,证明了现实世界数据集在特定领域应用中的有效性。

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

  • 试错法:在这种方法中,智能体首先执行一个行动,随后调用一个预定义的评估器来判断该行动。如果行动被认为不令人满意,智能体则通过纳入评估器的反馈做出反应。例如,在 RAH[91]中,智能体在推荐系统中充当用户助手。智能体的一个关键角色是模拟人类行为并代表用户生成响应。为了实现这个目标,智能体首先生成一个预测响应,然后将其与真实人类反馈进行比较。如果预测响应和真实人类反馈不同,评估器生成失败信息,随后将其纳入智能体的下一个行动。类似地,在 DEPS[33]中,智能体首先设计一个计划来完成给定任务。在计划执行过程中,如果一个行动失败,解释器生成详细说明失败原因的信息。然后,智能体将此信息纳入重新设计计划。在 RoCo[92]中,智能体首先为多机器人协作任务中的每个机器人提出一个子任务计划和一个 3D 路径点。然后,通过一组环境检查(如碰撞检测和逆运动学)验证计划和路径点。如果任何检查失败,反馈将附加到每个智能体的提示中,并开始另一轮对话。智能体使用 LLMs 讨论和改进他们的计划和路径点,直到它们通过所有验证。PREFER[93]扩展了这个想法,通过利用 LLMs 在智能体表现不佳时生成详细反馈,实现迭代改进和性能提升。

  • 众包法:在[94]中,作者设计了一种辩论机制,利用众包的智慧来增强智能体能力。首先,不同的智能体对给定问题提供单独的响应。如果它们的响应不一致,它们将被提示纳入其他智能体的解决方案并提供更新的响应。这个迭代过程持续到达到最终共识答案。在这种方法中,每个智能体的能力通过理解和纳入其他智能体的意见得到增强。

  • 经验积累法:在 GITM[16]中,智能体一开始不知道如何解决任务。然后,它进行探索,一旦成功完成任务,该任务中使用的行动就会存储在智能体的记忆中。将来,如果智能体遇到类似任务,则提取相关记忆来完成当前任务。在这个过程中,智能体能力的提高来自于专门设计的记忆积累和利用机制。Voyager[38]引入了一个技能库,其中特定技能的可执行代码通过与环境的交互得到完善,从而随着时间的推移实现高效的任务执行。在 AppAgent[95]中,智能体被设计为以类似于人类用户的方式与应用程序交互,通过自主探索和观察人类演示进行学习。在这个过程中,它构建了一个知识库,作为在手机上执行各种应用程序中复杂任务的参考。在 MemPrompt[96]中,用户被要求以自然语言提供关于智能体解决问题意图的反馈,并且此反馈存储在记忆中。当智能体遇到类似任务时,它试图检索相关记忆以生成更合适的响应。

  • 自驱动进化法:这种方法允许智能体通过自主学习和反馈机制自主改进。LMA3[97]使智能体能够自主为自己设定目标,并通过探索环境和从奖励函数接收反馈逐渐提高其能力。遵循这种机制,智能体可以根据自己的偏好获取知识和发展能力。SALLMMS[98]将先进的 LLMs 如 GPT - 4 集成到多智能体系统中,智能体可以适应并执行复杂任务,展示出先进的通信能力,从而在与环境的交互中实现自驱动进化。在 CLMTWA[99]中,通过使用大型语言模型作为教师和较弱的语言模型作为学生,教师可以生成和传达自然语言解释,通过心理理论提高学生的推理技能。教师还可以根据干预的预期效用为学生个性化解释并仅在必要时进行干预。同时,NLSOM[100]利用智能体之间的自然语言协作,根据反馈动态调整角色、任务和关系,以解决超出单个智能体能力范围的问题。

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

  • 机制工程:与模型微调和提示工程不同,机制工程是一种独特的增强智能体能力的策略。下面我们介绍几种机制工程的代表性方法。

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

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

三、基于LLM的自主智能体应用

由于具有强大的语言理解、复杂任务推理和常识理解能力,基于 LLM 的自主智能体在多个领域展现出了显著的影响力。本节简要总结了先前的研究,根据其在三个不同领域的应用进行分类:社会科学、自然科学和工程学(见图 5 左侧的全局概述)。

3.1 社会科学

社会科学是科学的一个分支,致力于研究社会以及社会中个体之间的关系。基于 LLM 的自主智能体可以利用其令人印象深刻的类人理解、思考和解决任务的能力来推动这一领域的发展。下面我们讨论几个可能受到基于 LLM 的自主智能体影响的关键领域。

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

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

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

  • 法学:基于 LLM 的智能体可以在法律决策过程中充当辅助工具,促进更明智的判断[111, 112]。Blind Judgement[112]使用几个语言模型来模拟多个法官的决策过程。它收集不同的意见并通过投票机制整合结果。ChatLaw[111]是一个基于 LLM 的著名中文法律模型。它巧妙地支持数据库和关键词搜索策略,专门设计用于减轻此类模型中普遍存在的幻觉问题。此外,该模型还采用自注意力机制通过减轻参考不准确的影响来增强 LLM 的能力。

  • 研究助手:除了在特定领域的应用外,基于 LLM 的智能体越来越多地被用作社会科学研究广泛领域中的多功能助手[104, 113]。在[104]中,基于 LLM 的智能体提供多方面的帮助,从生成简洁的文章摘要、提取关键关键词到编写详细的研究脚本,展示了它们丰富和简化研究过程的能力。同时,在[113]中,基于 LLM 的智能体充当写作助手,展示了它们为社会科学家识别新研究问题的能力,从而为该领域的探索和创新开辟了新途径。这些例子凸显了基于 LLM 的智能体在提高社会科学研究效率、创造力和广度方面的潜力。

3.2 自然科学

自然科学是科学的一个分支,基于观察和实验的经验证据,致力于描述、理解和预测自然现象。随着 LLMs 的蓬勃发展,基于 LLM 的智能体在自然科学中的应用越来越受欢迎。下面我们介绍几个基于 LLM 的智能体可以发挥重要作用的代表性领域。

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

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

  • 自然科学教育:基于 LLM 的智能体可以与人类流畅地交流,经常被用于开发基于智能体的教育工具。例如,[114]开发了基于智能体的教育系统,以促进学生对实验设计、方法和分析的学习。这些系统的目标是提高学生的批判性思维和解决问题的能力,同时促进对科学原理的更深入理解。Math Agents[116]可以协助研究人员探索、发现、解决和证明数学问题。此外,它可以与人类交流并帮助他们理解和使用数学。[117]利用 CodeX[118]的能力自动解决和解释大学水平的数学问题,可作为教育工具用于教学学生和研究人员。CodeHelp[119]是一个用于编程的教育智能体。它提供许多有用的功能,如设置课程特定的关键词、监控学生查询并向系统提供反馈。EduChat[87]是一个专门为教育领域设计的基于 LLM 的智能体。它通过对话为教师、学生和家长提供个性化、公平和富有同情心的教育支持。FreeText[120]是一个利用 LLMs 自动评估学生对开放式问题的回答并提供反馈的智能体。

3.3 工程学

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

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

  • 工业自动化:在工业自动化领域,基于 LLM 的智能体可用于实现生产过程的智能规划和控制[129]。[129]提出了一个新颖的框架,将 LLMs 与数字孪生系统集成,以适应灵活的生产需求。该框架利用提示工程技术创建能够根据数字孪生提供的信息适应特定任务的 LLM 智能体。这些智能体可以协调一系列原子功能和技能,以完成不同层次的生产任务。这项研究展示了将 LLMs 集成到工业自动化系统中的潜力,为更敏捷、灵活和自适应的生产过程提供了创新解决方案。IELLM[130]展示了一个关于 LLMs 在石油和天然气行业中的作用的案例研究,涵盖了工厂自动化和 PLC 编程等应用。

  • 机器人学与具身人工智能:最近的工作推动了更高效的强化学习智能体在机器人学和具身人工智能方面的发展[16, 38, 79, 132 - 135, 137 - 140]。这些努力侧重于增强自主智能体在具身环境中的规划、推理和协作能力。例如,[138]提出了规划 - 行动 - 报告(Planner - Actor - Reporter)范式用于具身推理和任务规划。DECKARD[139]引入了规划 - 行动 - 报告范式,通过解耦智能体的规划、执行和报告过程促进具身推理和任务规划。TaPA[137]构建了一个多模态数据集,包括室内场景的多视图 RGB 图像、人类指令和相应的计划,以微调 LLMs。微调后的模型将视觉感知与任务规划对齐,使它们能够生成更可执行的计划,并显著提高它们在视觉接地任务中的性能。

为了克服物理限制,智能体可以通过利用多种技能生成可执行计划并完成长期任务。在控制策略方面,SayCan[79]专注于利用移动操作机器人研究广泛的操作和导航技能。以厨房环境中遇到的典型任务为灵感,它提出了一组涵盖 7 个技能家族和 17 个对象的 551 种技能。这些技能包括诸如拾取、放置、抓取和操作物体等各种动作。TidyBot[136]是一个具身智能体,旨在个性化家庭清洁任务。它可以通过文本示例学习用户对物体放置和操作方法的偏好。

为了促进基于 LLM 的自主智能体的应用,研究人员还引入了许多开源库,基于这些库,开发者可以根据自己的定制需求快速实现和评估智能体[19, 82, 127, 142 - 155]。例如,LangChain[147]是一个开源框架,可自动化编码、测试、调试和文档生成任务。通过将语言模型与数据源集成并促进与环境的交互,LangChain 通过多个智能体角色之间的自然语言通信和协作实现了高效且具有成本效益的软件开发。基于 LangChain,XLang[145]提供了一套全面的工具和一个完全集成的用户界面。它专注于可执行语言接地,使自然语言指令能够转换为与各种环境(包括数据库、网络应用程序和物理机器人)无缝交互的代码或动作序列。AutoGPT[82]是一个完全自动化的智能体。它设置一个或多个目标,将它们分解为相应的任务,并循环执行这些任务,直到目标实现。WorkGPT[148]是一个类似于 AutoGPT 和 LangChain 的智能体框架。通过为其提供一个指令和一组 APIs,它与 AI 进行来回对话,直到指令完成。GPT - Engineer[128]和 DemoGPT[127]是专注于通过提示自动化代码生成以完成开发任务的开源项目。SmolModels[126]提供了一系列适用于各种任务的紧凑型语言模型。AGiXT[144]是一个动态 AI 自动化平台,能够有效地管理指令并在各种 AI 提供商之间执行复杂任务,集成了自适应记忆、智能功能和一个多功能插件系统。AgentVerse[156]是一个多功能框架,便于研究人员高效地创建定制的基于 LLM 的智能体模拟。GPT Researcher[150]是一个实验性应用,利用 LLMs 高效地开发研究问题、触发网络爬虫收集信息、总结来源并汇总摘要。BMTools[151]提供了一个社区驱动的工具构建和共享平台。它支持各种类型的工具,允许同时使用多个工具执行任务,并提供一个简单的接口,通过 URLs 加载插件,促进了 BMTools 生态系统的轻松开发和贡献。

备注:利用基于 LLM 的智能体支持上述应用可能也会带来风险和挑战。一方面,LLMs 本身可能容易出现幻觉和其他问题,偶尔会提供错误答案,导致错误结论、实验失败,甚至在危险实验中对人类安全构成风险。因此,在实验过程中,用户必须具备必要的专业知识和知识,以谨慎行事。另一方面,基于 LLM 的智能体可能会被恶意利用,例如开发化学武器,因此需要实施安全措施,如人类对齐,以确保负责任和道德的使用。

总之,在上述章节中,我们介绍了基于 LLM 的自主智能体在三个重要领域的典型应用。为了便于更清晰的理解,我们在表 2 中总结了先前研究与其各自应用之间的关系。

四、基于LLM的自主智能体评估

与 LLMs 本身类似,评估基于 LLM 的自主智能体的有效性是一项具有挑战性的任务。本节概述了两种常用的评估方法:主观和客观方法。如需全面了解,请参阅图 5 右侧部分。

4.1 主观评估

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

  • 人类注释:这种评估方法涉及人类评估者直接对各种智能体生成的输出进行评分或排名[22, 29, 104]。例如,在[20]中,作者通过提出 25 个问题招募了众多注释者,这些问题在五个与智能体能力直接相关的关键领域探索他们的能力。在[80]中,注释者被要求确定专门设计的模型是否能显著促进在线社区规则的发展。

  • 图灵测试:这种评估策略要求人类评估者区分智能体生成的输出和人类创建的输出。如果在给定任务中,评估者无法区分智能体和人类的结果,则表明智能体在该任务上可以达到类人性能。例如,在[29]中,研究人员在自由形式的党派文本上进行实验,人类评估者被要求猜测响应是来自人类还是基于 LLM 的智能体。

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

4.2 客观评估

客观评估是指使用可计算、可比较和可随时间跟踪的定量指标来评估基于 LLM 的自主智能体的能力。与主观评估不同,客观指标旨在为智能体性能提供具体、可测量的见解。进行客观评估时,有三个重要方面,即评估指标、协议和基准。下面我们更详细地介绍这些方面。

  • 指标:为了客观评估智能体的有效性,设计合适的指标非常重要,这可能会影响评估的准确性和全面性。理想的评估指标应准确反映智能体的质量,并在现实世界场景中使用时与人类感受保持一致。在现有工作中,我们可以总结出以下代表性的评估指标。

  • 任务成功指标:这些指标衡量智能体完成任务和实现目标的能力。常见的指标包括成功率[12, 22, 58, 60]、奖励/分数[22, 60, 161]、覆盖率[16]和准确率/错误率[18, 40, 80, 101]。根据场景的不同,准确率可能反映程序可执行性[18]或任务有效性[101]等方面。这些任务成功指标的值越高,表明智能体完成任务的能力越强。

  • 人类相似性指标:这些指标通过强调与人类特征相关的各个方面来量化智能体行为与人类行为的相似程度,如连贯性[104]、流畅性[104]、与人类的对话相似性[80]和人类接受率[101]。相似度越高,表明智能体模拟人类的性能越好。

  • 效率指标:与上述用于评估智能体有效性的指标不同,这些指标旨在评估智能体的效率。通常考虑的指标包括开发成本[18]和训练效率[16, 38]。

  • 协议:除了评估指标外,客观评估的另一个重要方面是如何利用这些指标。在先前的工作中,我们可以确定以下常用的评估协议。

  • 真实世界模拟:在这种方法中,智能体在沉浸式环境(如游戏和交互式模拟器)中进行评估。智能体需要自主执行任务,然后利用任务成功率和人类相似性等指标根据其轨迹和完成的目标评估智能体的能力[12, 16, 22, 33, 38, 60, 86, 161, 164, 168]。通过模拟现实世界场景,这种方法旨在对智能体的实际能力进行全面评估。

  • 社会评估:这种方法利用指标根据智能体在模拟社会中的交互来评估其社会智能。采用了各种方法,如协作任务来评估团队合作技能、辩论来分析论证推理以及人类研究来测量社会能力[34, 80, 101, 163]。这些方法分析诸如连贯性、心理理论和社会智商等品质,以评估智能体在合作、通信、同理心和模仿人类社会行为等方面的能力。通过使智能体处于复杂的交互环境中,社会评估为智能体的高级社会认知提供了有价值的见解。

  • 多任务评估:在这种方法中,人们使用来自不同领域的一组多样化任务来评估智能体,这可以有效地测量智能体在开放域环境中的泛化能力[12, 29, 86, 151, 162 - 164, 169, 170]。

  • 软件测试:在这种方法中,研究人员通过让智能体执行软件测试任务(如生成测试用例、重现错误、调试代码以及与开发者和外部工具交互)来评估智能体[159, 160, 167]。然后,可以使用测试覆盖率和错误检测率等指标来衡量基于 LLM 的智能体的有效性。

  • 基准:给定指标和协议,评估的一个关键方面是选择合适的基准。随着时间的推移,已经引入了各种基准来评估基于 LLM 的智能体在不同领域和场景中的能力。许多研究采用诸如 ALFWorld[60]、IGLU[161]和 Minecraft[16, 33, 38]等环境来评估智能体在交互式和面向任务的模拟中的能力。Tachikuma[168]通过 TRPG 游戏日志评估 LLMs 推断和理解涉及多个角色和新颖对象的复杂交互的能力。AgentBench[169]提供了一个全面的框架,用于在不同环境中评估 LLMs 作为自主智能体的能力。它代表了对 LLMs 作为智能体在不同领域的现实世界挑战中的首次系统评估。SocKET[163]是一个全面的基准,用于评估 LLMs 在 58 个涵盖幽默和讽刺、情感和感觉、可信度等五类社会信息的任务中的社会能力。AgentSims[34]是一个多功能框架,用于评估基于 LLM 的智能体,在其中可以灵活设计智能体的规划、记忆和行动策略,并测量不同智能体模块在交互式环境中的有效性。ToolBench[151]专注于评估和增强语言模型使用工具的能力,具有 16,464 个真实世界的 RESTful APIs 和针对单工具和多工具场景定制的各种指令。WebShop[86]开发了一个基准,用于评估基于 LLM 的智能体在产品搜索和检索方面的能力,该基准是使用 118 万个真实世界物品构建的。Mobile - Env[164]是一个可扩展的交互式平台,旨在评估基于 LLM 的智能体的多步交互能力。WebArena[173]提供了一个全面的网站环境,涵盖多个领域。其目的是对智能体进行端到端评估,并确定其完成任务的准确性。GentBench[171]旨在评估智能体在利用工具完成复杂任务时的能力,包括推理、安全性和效率。RocoBench[92]包括六个任务,用于评估多智能体在不同场景中的协作,强调通信和协调策略,以评估合作机器人中的适应性和泛化能力。EmotionBench[172]评估 LLMs 的情感评估能力,即它们在特定情况下的情感变化。它收集了 400 多个引发八种负面情绪的情况,并使用自我报告量表测量 LLMs 和人类受试者的情感状态。PEB[125]专为评估基于 LLM 的智能体在渗透测试场景中的能力而设计,包括来自领先平台的 13 个不同目标。它提供了跨不同难度级别的结构化评估,反映了智能体在现实世界中的挑战。ClemBench[165]包含五个对话游戏,用于评估 LLMs 作为玩家的能力。E2E[174]是一个用于测试聊天机器人准确性和有用性的端到端基准。

备注:客观评估通过各种指标促进了对基于 LLM 的智能体能力的定量分析。虽然当前技术无法完美测量所有类型的智能体能力,但客观评估提供了补充主观评估的重要见解。客观评估基准和方法的持续进步将进一步促进基于 LLM 的自主智能体的发展和理解。

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

五、相关综述

随着大型语言模型的蓬勃发展,出现了各种全面的综述,为各个方面提供了详细的见解。[175]广泛介绍了 LLMs 的背景、主要发现和主流技术,涵盖了大量现有工作。另一方面,[176]主要关注 LLMs 在各种下游任务中的应用以及部署它们所面临的挑战。使 LLMs 与人类智能对齐是一个活跃的研究领域,旨在解决诸如偏差和幻觉等问题。[177]汇编了现有的人类对齐技术,包括数据收集和模型训练方法。推理是智能的一个关键方面,影响决策、问题解决和其他认知能力。[178]介绍了 LLMs 推理能力的研究现状,探索了提高和评估其推理技能的方法。[179]提出语言模型可以通过增强推理能力和利用工具的能力(称为增强语言模型(ALMs))来得到改进。他们对 ALMs 的最新进展进行了全面回顾。随着大规模模型的使用越来越普遍,评估它们的性能变得越来越关键。[180]阐明了评估 LLMs 的方法,包括评估什么、在哪里评估以及如何评估它们在下游任务和社会影响中的性能。[181]还讨论了 LLMs 在各种下游任务中的能力和局限性。上述研究涵盖了大型模型的各个方面,包括训练、应用和评估。然而,在本文之前,没有工作专门关注快速兴起且极具潜力的基于 LLM 的智能体领域。在本研究中,我们汇编了 100 篇关于基于 LLM 的智能体的相关作品,涵盖了它们的构建、应用和评估过程。

六、挑战

虽然先前关于基于 LLM 的自主智能体的工作取得了许多显著的成功,但这个领域仍处于初始阶段,在其发展过程中仍有几个重大挑战需要解决。下面我们介绍几个代表性的挑战。

6.1 角色扮演能力

与传统 LLMs 不同,自主智能体通常必须扮演特定角色(如程序员、研究人员和化学家)来完成不同任务。因此,智能体的角色扮演能力非常重要。虽然 LLMs 可以有效地模拟许多常见角色,如电影评论家,但仍有各种角色和方面它们难以准确捕捉。首先,LLMs 通常基于网络语料库进行训练,因此对于在网络上很少讨论的角色或新出现的角色,LLMs 可能无法很好地模拟它们。此外,先前的研究[30]表明,现有的 LLMs 可能无法很好地模拟人类认知心理特征,导致在对话场景中缺乏自我意识。解决这些问题的潜在方法可能包括微调 LLMs 或精心设计智能体提示/架构[182]。例如,可以首先收集不常见角色或心理特征的真实人类数据,然后利用它来微调 LLMs。然而,如何确保微调后的模型仍然对常见角色表现良好可能会带来进一步的挑战。除了微调之外,还可以设计定制的智能体提示/架构来增强 LLM 的角色扮演能力。然而,找到最优的提示/架构并不容易,因为它们的设计空间非常大。

6.2 广义人类对齐

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

6.3 提示鲁棒性

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

6.4 幻觉

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

6.5 知识边界

基于 LLM 的自主智能体的一个关键应用是模拟各种现实世界人类行为[20]。人类模拟的研究有着悠久的历史,最近的兴趣激增可归因于 LLMs 的显著进步,LLMs 在模拟人类行为方面表现出了强大的能力。然而,需要认识到 LLMs 的强大能力并不总是有利的。具体来说,一个理想的模拟应该准确复制人类知识。在这种情况下,LLMs 可能会表现出过度的能力,因为它们是在远超普通人所知的大量网络知识上进行训练的。LLMs 的巨大能力可能会显著影响模拟的有效性。例如,当试图模拟用户对各种电影的选择行为时,至关重要的是要确保 LLMs 假设对这些电影没有先验知识。然而,有可能 LLMs 已经获取了关于这些电影的信息。如果不实施适当的策略,LLMs 可能会根据其广泛的知识做出决策,尽管现实世界用户事先不会了解这些电影的内容。基于上述示例,我们可以得出结论,对于构建可信的智能体模拟环境,一个重要问题是如何限制 LLM 对用户未知知识的利用。

6.6 效率

由于其自回归架构,LLMs 通常推理速度较慢。然而,智能体可能需要多次查询 LLMs 以执行每个动作,例如从记忆中提取信息、在采取行动之前进行规划等。因此,智能体行动的效率在很大程度上受到 LLM 推理速度的影响。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值