基于大语言模型的Agent研究综述

前言

本文对基于大型语言模型的自主智能体进行了综述调查,从整体和全面的角度对这一领域进行了系统回顾,并提出了一种统一框架和多样应用。

阅读总结

一篇来自人大高瓴研究院的综述,详细介绍了基于LLM的智能体的发展和应用,以及对未来的预测。作为AI当前最火的领域,智能体本质上就是框架+prompt,但是其效果惊艳,能够完成很多LLM无法完成的简单任务,其在未来一定大有可为。

Paper https://arxiv.org/pdf/2308.11432.pdf

Code GitHub - Paitesanshi/LLM-Agent-Survey

Abstract

自主智能体一直是学术界一个突出的研究课题。在这一领域,过去的研究通常集中在使用有限的知识来训练孤立环境中的智能体,这与人类的学习过程有很大的不同,因此使得智能体难以实现类人的决策。近年来,通过获取大量的网络知识,大型语言模型(LLMs)在实现人类水平智能方面表现出了巨大的潜力。这引发了基于 LLM 的自主智能体研究热潮。为了充分利用 LLM 的潜力,研究人员为不同应用设计了各种智能体架构。本文对这些研究进行了全面的调查,并从整体上对自主智能体领域进行了系统的回顾。更具体地说,我们的重点在于基于 LLM 的智能体的构建,为此我们提出了一个统一的框架,涵盖了大部分以前的工作。此外,我们还提供了基于LLM 的人工智能代理在社会科学、自然科学和工程领域的各种应用摘要。最后,我们讨论了用于评估 LLM 基于的人工智能代理的常用策略。根据以前的研究,我们还提出了这个领域的一些挑战和未来方向。

1、Introduction

自主智能体一直都被认为是解决AGI的有前途的方法,它有望通过自我指导的规划和行动来完成任务。但是之前的工作,智能体都在隔绝的环境中,基于简单启发式策略函数来学习,这与人类学习方式大相径庭,因此它们无法复刻人类的决策。

近年来,LLMs基于海量数据模型参数获得了类人类智能,取得显著的成效。因此越来越多研究将LLMs作为中央控制器,来指导自主智能体获取人类决策的能力。其关键是为LLMs配备记忆和规划等关键能力,让它们像人类一样完成任务。 本文对基于LLMs的自主智能体提做了一个全面的综述,具体来说,作者将综述分为三个部分:构建,应用和评估

构建主要关注如何设计更好的智能体框架,以及激发和增强智能体完成不同任务的能力。

应用主要关注智能体在社会科学、自然科学和工程上的应用。

评估部分作者深入研究了评估基于 LLM 的自主代理的策略,重点关注主观和客观策略。

并且基于之前的研究,作者谈及了该领域的挑战,讨论了未来发展方向。

2、LLM-based Autonomous Agent Construction

我们期待基于LLM的自主智能体能够利用LLM的类人类能力来解决各种问题,为了实现这个目标,有两个重要的方面:

应该设计哪种架构来更好地使用LLm?

如何学习架构的参数,让智能体获取解决具体任务的能力?

作者首先整合了一个全面的统一框架,接着根据是否对LLM进行微调,总结智能体获取能力的策略。下面是详细的介绍。

2.1、Agent Architecture Design

image.png

LLMs在QA任务上展现巨大的潜力,但是自主智能体和QA又远远不同,因为它们需要根据指定的角色,像人一样自主感知环境并从环境中学习。为了建立LLM和智能体的桥梁,关键在于设计合理的智能体架构帮助LLM最大化其能力。

本文提出的构建框架如上图所示,由分析模块记忆模块规划模块动作模块组成。

分析模块用于识别智能体的角色,记忆模块和规划模块让智能体在动态环境中可以根据历史的行为计划未来的动作。动作模块将智能体的决策付诸于行动。分析模块影响记忆和规划模块,三者共同影响动作模块。

2.1.1、Profiling Module

自主智能体通过承担特定的角色来执行任务,而这一角色很大程度取决于具体的应用场景。那么如何为智能体创建特定的画像呢,现有的方法通常采用如下三种策略:

手动构建方法。手动为智能体赋予角色信息的方法灵活,但是劳动密集型。

LLM生成方法。智能体的画像通过LLM进行生成得到,可以选择一些智能体的画像作为小样本。LLM生成方法可以大大节省时间,但是无法精准调控。

数据集对齐方法。智能体的画像从真实世界的数据集中获取,可以准确捕获真实人群的属性,从而让智能体的行为更能反映现实世界。

作者认为,将上述三种方法结合起来可能有额外的好处,比如数据对齐可以让画像更真实,再加上手动构建可以丰富画像的信息。画像模块作为智能体设计的基础,对智能体的记忆、规划和动作过程都有很大的影响。

2.1.2、Memory Module

记忆模块存储从环境中获取的信息,并利用已有的记忆帮助未来的动作。记忆模块帮助智能体积累经验,自我提升,从而以有效、合理、一致的方式行事。本小节关注于记忆模块的结构、格式和操作。

Memory Structures 基于LLM的自主智能体通常结合人类记忆的原理和机制。具体来说,人类有长期记忆短期记忆,在智能体中,也有类似的机制,长期记忆类似于外部向量存储,智能体可以根据需求快速检索查询,短期记忆类似于受Transformer架构约束的上下文窗口的输入信息。下面将介绍两种智能体中常见的架构:

统一记忆。仅仅模拟人类的短期记忆,通常通过上下文学习的方式将记忆信息直接写入prompt中。统一记忆的方法简单直接,同时又能增强智能体感知上下文行为和观察的能力。

混合记忆。模拟了人类的长短期记忆方式,短期记忆包含在智能体的上下文中,长期记忆存储智能体过去的行为和想法,可以根据当前的事件进行检索。长期记忆常常用过向量数据库实现。长期记忆提供稳定的知识,短期记忆则允许灵活的规划。在实践中,整合长短期记忆可以增强智能体的长期推理额积累经验的能力,这在复杂环境中完成任务至关重要。

只有长期记忆的方法很少出现在文献中,因为智能体在与环境交互的过程中总是需要短期记忆捕获动作之间的连续性。

Memory Formats 从格式上来看,记忆又可以分为自然语言记忆和embedding记忆等,下面进行列举:

自然语言:这种形式的记忆存储了智能体的行为和观察等,它的好处有灵活易懂,丰富语义可以指导智能体。

embedding:记忆信息编码为embedding向量,这种方式可以提升记忆检索和阅读效率。

数据库:记忆信息存储在数据库中,智能体可以全面、高效操纵记忆。

结构化列表:这种形式的记忆信息被组织成列表,可以高效简洁表达语义。 上面只是有代表性的记忆形式,还有很多其它的形式。不同的记忆形式有自己优势的场景。

Memory Operations 记忆模块通过与环境交互去获取、积累和使用,这一般涉及三个操作:记忆存储,记忆读取和记忆反思。

记忆读取:从记忆中提取有用信息增强智能体行动。关键在于如何提取有用信息,一般最近的、相关的、重要的信息会被提取。

记忆存储:存储通过环境交互获得的信息。这要求信息是有价值的,能够为未来检索丰富的记忆奠定基础。该部分的关键在于如何存储与现有记忆相似的信息(去重),以及内存到达存储上限,如何删除信息(溢出)。

记忆反思:让智能体根据经验信息进行总结,得到更广泛和抽象的见解,这个过程的目标是为智能体提供独立总结和推断更抽象、复杂和高级信息的能力。

传统LLM和Agent的一个显著区别是后者必须在动态环境中学习和完成任务的能力,这个区别的体现主要在记忆模块和规划模块。

2.1.3、Planning Module

当面对复杂的任务时,人类会倾向将复杂任务分解为多个简单的子任务并单独解决。规划模块即赋予智能体这种能力。具体来说,作者根据是否接受反馈将现有研究分类如下:

没有反馈的规划。智能体执行任务不会接收到反馈。

image.png

单一路径推理。一个任务会分解成多个中间步骤,以级联方式连接。

多路径推理。生成计划的推理步骤被组织成树状结构。它和单一路径推理的区别见上图。

外部规划。LLM对特定领域生成计划仍然具有挑战性。为应对这种挑战,研究人员求助于外部工具,它可以识别出最优的计划。

有反馈的规划。现实场景中,有反馈的计划才是更合理的。因为任务可能会在执行过程中发生改变(如出错),这就需要反馈来修改计划。

环境反馈。从客观世界或者虚拟环境中获取。

人类反馈。直接与人类交互,可以让智能体符合人类的偏好,缓解幻觉问题,从而实现更明智的规划和推理。

模型反馈。模型内部也可以设计反馈机制,比如自我优化模块,通过与LLMs不断交互来提高输出的质量直到达到要求。

总的来说,没有反馈的规划只能适用于某些简单的任务,而有反馈的规划需要更为细致的设计,但是能够解决更多复杂的任务。

2.1.4、Action Module

动作模块用于将智能体的决策转换为具体的结果,直接与环境交互。它受到分析,记忆和规划模块的影响。本节从动作目标,动作产生,动作空间,动作影响四个方面对动作模块进行介绍。

Action Goal 智能体可以执行具有任何目标的动作。这样的目标包括:完成任务、沟通、环境探索与交互。

Action Production 与传统的LLM不同,智能体会通过不同的策略和来源来采取动作。有两种常见的动作产生策略:

通过记忆采取动作。智能体根据存储的记忆信息采取相关动作。

通过计划采取动作。智能体严格遵循计划采取动作。

Action Strategy

行动策略是指agent产生行动的方法。在现有的工作中,这些策略可能是记忆回忆、多轮互动、反馈调整和结合外部工具。

记忆回忆。生成智能体维持对话和经验的记忆流。在执行操作时,将检索相关的内存片段作为llm的条件输入,以确保操作的一致性。

多轮互动。该方法试图利用多轮对话上下文,让代理确定适当的响应作为动作。

反馈调整。人类反馈已被证明可以促进代理适应和增强其行动策略。

结合外部工具。可以通过合并外部工具和扩展知识来源来增强基于llm的自治代理。一方面,在训练或推理阶段,代理可以具备访问和使用各种api、数据库、web应用程序和其他外部资源的能力。另一方面,在外部知识资源的帮助下,智能体直接获取的知识的范围和质量可以扩大。

Action Space 动作空间是指智能体可以执行的一组可能的动作。这些动作主要分为两类,外部工具和LLMs内部知识。

外部工具。有些领域的任务需要专家知识,此外LLMs容易出现幻觉问题,因此调用外部工具执行动作可以增强智能体的能力。这些外部工具包括:

APIs。利用外部的API来补充和扩展动作空间。

数据库和知识库。连接到外部数据库或知识库可以帮助智能体获取特定领域的信息以生成更合理的动作。

外部模型。利用外部模型来扩大动作空间的范围。

内部知识。除了利用外部的知识,智能体可以依靠智能体内部的知识来指导它们采取动作。这些内在的知识基于LLM一些关键的能力:

规划能力。LLM可以自己对任务进行分解。

对话能力。LLM通常可以产生高质量的对话来采取行动。

常识理解能力。LLM可以很好理解人类的常识并做出类似人类的决策。

Action Impact 动作执行后会产生很多的结果。这些结果可以分为如下类别:环境变化、改变内部状态、触发新的动作。

2.2、Learning Strategy

学习是人类获得知识和技能的基本机制,促进了他们能力的增强-------这一意义深刻地延伸到基于LLM的智能体领域。

Learning from Example

从例子中学习是人类和人工智能学习的基础过程。在基于LLM的代理领域,这一原则体现在微调中,这些代理通过接触真实世界的数据来改进它们的技能。

方法包括:Learning from Human-Annotations、Learning from LLMs’ Annotations.

Learning from Environment Feedback

在许多情况下,智能代理需要主动探索周围环境并与环境进行交互。因此,他们需要有适应环境的能力,并从环境反馈中提升自己的能力。在强化学习领域,智能体通过不断探索环境并根据环境反馈进行适应来学习。这一原则也适用于基于llm的智能代理。

Learning from Interactive Human Feedback

交互式人类反馈为智能体提供了在人类指导下以动态方式适应、发展和改进其行为的机会。与一次性反馈相比,交互式反馈更符合现实场景。

上面这些小节就是基于LLM的智能体构建细节,主要在于架构和能力获取两个方面。相关的工作见下表。

image.png

3、LLM-based Autonomous Agent Application

基于LLM的智能体在很多领域展现出显著的潜力。本节基于前面的研究将应用场景分类为三种:社会科学,自然科学和工程。

image.png

3.1、Social Science

社会科学致力于研究社会以及社会人与人之间的关系。基于LLM的智能体可以利用其出色的人类理解能力、思考和任务解决能力来促进这个领域的发展。下面是几个典型的领域:

心理学。智能体可以通过模拟实验来提供心理健康的支持。实验表明更好的模型往往能提供更真实的结果,可以帮助用户应对焦虑、抑郁等问题,但是都有可能会产生有害信息。

政治学与经济学。基于LLM的智能体也可以用于学习政治学与经济学, 通过解析言论的结构或者赋予他们特定的特征(天赋,偏好,个性),以模拟人类的行为。

模拟社交。基于LLM的智能体可以模拟在线社区,模拟虚拟城镇中人类的生活,或者模拟课堂场景等。

法律体系。基于LLM的智能体可以为法律决策过程提供更明智的判断,有的工作采用多语言模拟多个法官,通过收集不同意见,以投票机制整合。为了减少LLM的幻觉问题,ChatLaw支持数据库和关键字检索来缓解。

研究助手。基于LLM的智能体可以协助科研人员完成各种任务, 如文章摘要,提取关键字等,或者充当写作助理。

3.2、Natural Science

在自然科学中,基于LLM的智能体也有很多的应用:

文档与数据管理。自然科学领域通常涉及大量文献的收集、组织和整合,需要耗费大量的时间和人力,而智能体利用自己强大的理解能力和文本处理能力,可以回答问题和制定实验计划。

实验助手。智能体拥有独立进行实验的能力。现有的工作包括利用智能体设计实验计划,提供实验的建议等。

自然科学教育。由于基于LLM的智能体可以和人类流畅交流,因此通常被用来开发基于智能体的教育工具。比如帮助学生理解学习数学、提高学生编程水平等。对于幻觉问题,可以采用丰富的prompt或者检索解决。

3.3、Engineering

基于LLM的智能体在工程研究和应用上也展现了强大的潜能:

土木工程。智能体可以帮助设计和优化复杂的结构。

计算机科学与软件工程。智能体提供了自动化编码、测试、调试和文档生成的潜力。比如设计端到端的框架进行通信和协作,或者抽象出不同角色监督代码生成过程来提高输出代码的质量。

工业自动化。工业自动化领域,可以利用智能体实现生成过程中的智能规划和控制。

航空航天工程。基于llm的代理可以创新地设计航天器,模拟流体流动,进行结构分析,甚至通过生成与工程系统集成的可执行代码来控制自动驾驶车辆。

机器人与人工智能。在该领域,重点是增强智能体在具体环境中进行规划、推理和协作的能力。

为了推动基于LLM的智能体的应用,研究人员还引入了开源库,帮助其他开发人员根据自己的需求快速实现和评估智能体。例如开源框架LangChain,可以自动编码、测试、调试和文档生成。基于语言模型和数据源集成,LangChain通过自然语言通信和多角色智能体协作来实现高效的软件开发。此外还有自动化智能体AutoGPT、通过对话完成任务的WorkGPT,利用大语言模型的能力,再加上爬虫获取的外部知识来总结和汇总摘要。

当然,基于智能体的LLM虽然支持上面的一系列应用,但也会带来一定的风险与挑战。一方面,大模型本身会易出现幻觉问题,导致提供错误的答案,因此用户必须采取适当的措施。另一方面,基于LLM的智能体可能会被恶意使用,比如发展化学武器。需要采取适当的安全措施。

image.png

4、LLM-based Autonomous Agent Evaluation

有两种常见的评估策略,即第三节图中的客观评估和主观评估。

4.1、Subjective Evalution

主观评估主要基于人类的判断,通常适用于没有评估数据集或者难以量化的场景。下面是两种常用的主观评估策略:

人类标注。让人类评测者直接对不同智能体的输出结果进行评估或排名。

图灵测试。在该方法中,人类评测者需要区分智能体和真实人类的产生结果。如果在给定任务上无法区分,则表明智能体可以在该任务上达到类似人类的表现。

基于LLM的智能体通常设计用于服务人类,因此主观评估方法非常重要,但是这种方法仍需面对高昂成本、低效和人口偏差。为了解决这个问题,很多研究者采用LLM作为主观评估的代理,随着LLM模型能力的提升, 这样的评估策略会越来越可信可用。

4.2、Objective Evaluation

客观评估是采用定量指标来评估基于LLM的智能体的能力。客观评估旨在为智能体提供具体的、可测量的见解。它包括三个重要方面:评估指标、协议和基准

常见的评估指标如下:任务成功指标人类相似度度量效率指标。 如何利用这些评估指标也很重要,通常有如下的评估协议:

真实世界模拟。智能体在游戏或者交互式模拟器等沉浸环境进行评估。

社会评估。利用指标来估计基于模拟社会中智能体交互的社会智能。

多任务评估。采用不同领域的任务来评估智能体。

软件测试。让智能体执行软件测试任务来评估智能体。

给定指标和协议,剩下的关键就是采用合适的基准执行评估。过去常用ALFWorld、IGLU和Mincraft等模拟环境作为评估的benchmark,现有的benchmark有AgentBench,它提供了一个全面的框架,用于评估跨环境智能体。SocKET评估LLM社交能力,AgentSims评估基于LLM的智能体在交互环境的有效性。WebShop用于评估基于LLM的智能体的产品搜索和检索能力。

客观评估采用不同的指标对基于LLM的智能体的能力进行评估,虽然无法完美衡量,但是也是对主观评估的重要补充。

image.png

5、Related Surveys

随着大语言模型的蓬勃发展,出现了大量的综述文章,提供各个方面的见解,比如有介绍LLM的背景和发展,LLM在下游任务上的应用与挑战,LLM的幻觉问题,LLM的对齐方法,LLM推理能力的探索等等,但是一直没有基于LLM的Agent的相关综述。本文整理了超过百篇基于LLM的智能体的相关著作,涵盖其构建、应用和评估。

6、Challenges

虽然基于LLM的智能体取得了很多显著的成功,但是也有很多局限性和挑战。

6.1、Role-playing Capability

角色扮演在智能体对话中至关重要,但是LLM会很难扮演不熟悉的角色(即在预训练过程中很少见的)。此外智能体很难模拟人类的认知心理,导致对话场景缺乏自我意识。潜在的解决方法是微调,但是也很难保证微调后其它角色扮演仍表现良好。此外还有设计量身定制的框架,但是这样的设计空间太大,很难找到最佳。

6.2、Generalized Human Alignment

传统的LLM通过微调来达到符合人类的价值观,但是现有的LLM都是与广义的人类价值观对齐,需要有针对不同场景的人类价值观对齐,比如消极的人类价值观,通过研究这个可以帮助阻止现实中存在的类似问题。可以尝试的方向是设计有趣的Prompt。

6.3、Prompt Robustness

为了确保智能体的合理行为,设计者通常设计不同的模块到LLM中(包含大量的Prompt)来促进一致的操作和有效的沟通。但是Prompt的方式缺乏稳健性,可能会影响别的模块,可行的解决方案有:反复试错,或者GPT自行生成

6.4、Hallucination

幻觉对LLM提出了根本的挑战,为了解决这个问题,一种可能的方法是将人类校正反馈纳入到人类与智能体交互的循环中。

6.5、Knowledge Boundary

基于LLM的智能体的一个重要的应用是模拟人类行为。但是LLM通常有强大的知识储备,因此在做判断的时候通常会用到广泛的知识,与真实人类做决策行为不同。如何约束它使用这些知识也是未来的方向。

6.6、Efficiency

LLM推理速度较慢,如果采用API部署多个智能体会显著增加时间成本。

7、Conclusion

本文系统总结了基于LLM的智能体现有的研究,从构建、应用和评估三个方面进行介绍和总结。最后作者还提出这个领域的几点挑战,预期该领域的未来方向。

个人总结

这是一篇总结非常到位的基于LLM智能体的综述,总结了从22年底到23年9月近百篇智能体的工作,当然后序还是有很多衍生的工作产生。在我看来,真正的智能体就是文章中所提到的四合一,即分析、规划、记忆和动作。分析限定了智能体的角色,也就限定了智能体的活动空间和范围,规划是针对特定任务所设计的步骤,记忆是便于复用以前的经验,而动作是执行计划,是真正与环境的交互,人在执行任务的时候也是同样的过程,首先人本身有自己的角色,是老师、学生还是设计师等等,有了角色,面对当前任务才会采取特定角色的规划策略,执行任务时也会根据自身的技能与环境交互,在交互过程中复用以前的知识或使用工具。这样的智能体才真正像人类一样行动,才是真正意义上的智能体。

Logo

更多推荐