论文解读-《A Survey on Large Language Model based Autonomous Agents》
1. 论文介绍
论文题目:A Survey on Large Language Model based Autonomous Agents
论文领域:AI Agent的综述
论文发表:2024 Frontiers of Computer Science
论文资料库:LLM-Agent-Survey
论文背景:

2. 论文摘要
自主Agent一直是学术界和工业界研究的热点。以往的研究主要集中在孤立环境下对知识有限的Agent进行训练,这与人类的学习过程有很大的不同,使得Agent很难做出类似于人类的决策。近年来,通过获取大量的网络知识,大型语言模型(LLM)在实现人类智能方面显示出巨大的潜力。这引发了研究LLM自治Agent的热潮。在本文中,我们提出了一个全面的调查这些研究,提供了一个系统的审查领域的LLM为基础的自主Agent从整体的角度。首先讨论了基于LLM的自治Agent的构建,在此基础上提出了一个统一的框架,该框架包含了之前的大部分工作。然后,我们全面概述了基于LLM的自治Agent在社会科学、自然科学和工程领域的各种应用。最后,我们深入研究了基于LLM的自治Agent常用的评估策略。在总结前人研究成果的基础上,提出了该领域面临的挑战和未来的发展方向。
3. 相关介绍
基于LLM的自主Agent的发展历程

本文围绕基于LLM的自主Agent的三个关键方面:构建,应用和评估。
关于构建方面主要集中两个问题,(1)如何设计一个更好使用LLM的Agent架构,(2)如何激励和增强Agent完成不同任务的能力。从直觉上对第一个问题来说是从硬件底层来解决,第二个问题是从软件资源。针对问题(1),本文给出了一个结合了之前大部分研究的统一Agent架构;针对问题(2),给出了一个最常用的Agent的使用方法的总结。
4. 基于LLM的自主Agent的构建
为了实现Agent利用LLM来高效完成不同的任务,需要解决两个问题:(1)架构设计为更好地使用不同的LLM,(2)基于设计好的架构,如何保证Agent有能力完成特定的任务。
4.1 架构设计
当前的LLM在问答形式上的任务上取得了巨大的进展。但是构建自主Agent和简单的问答形式QA的任务有很大的差别。为了弥合LLM和自主Agent的差距,关键是设计合理的Agent架构,在LLM的协助下最大限度发挥能力。本文提出了一个统一框架,包含一个分析模块,一个记忆模块,一个计划模块和一个动作模块。

分析模式的作用是确定Agent的角色,记忆模块和计划模块将Agent和动态环境结合,使其能够回忆过去的行为和计划未来的行动。动作模块负责将Agent的决策转为具体的输出。
分析模块
分析模块的作用是标志Agent角色的配置文件。在使用LLM中通常把配置文件写入提示,以影响LLM的行为。具体选择哪些信息来描述Agent很大程度上取决于特定的应用场景。
在确定了配置文件的类型后,下一个步骤是为Agent创建特定的配置文件。有三个方法:
(1)手工方法
手动配置Agent的配置文件,预先定义了Agent的各个角色和相应的职责,手动为每个Agent分配不同的配置文件以实现协作。手工方法非常灵活,可以为Agent分配任何配置信息。但它是劳动密集型难以处理大量的Agent。
(2)LLM生成的方式
Agent的配置文件根据LLM自动生成,通常需要首先指出配置文件生成规则,阐明Agent配置文件的组成和属性。(可以选择几个种子Agent作为示例,然后让LLM生成所有Agent配置文件)。缺点是缺乏对配置文件的精确控制。
(3)数据对齐方法
Agent配置文件是从现实世界中的数据集获取的。可以首先把数据集中关于真实人类的信息组织成自然语言提示后,利用它来分析Agent。该方法的好处是准确地捕捉了真实群体的属性,从而使Agent行为更有意义,更能反映现实场景。
目前大部分的配置工作是由以上三者之一独立完成。本文认为将它们结合起来会有更大的意义,不同类型的Agent采用不同的方式来产生。
记忆模块
Agent需要从环境中感知到的信息进行存储,利用记忆来帮助未来的行动。记忆模块可以帮助Agent积累经验,自我进化,以更加一致,合理和有效的方式行事。本文重点关注记忆模块的结构,格式和操作。
(1)记忆结构
基于LLM的自主Agent通常包含了类似人类记忆过程的原则和机制,人类的记忆遵循从记录感知输入的感官记忆,到短暂保存信息的短期记忆,再到长期巩固信息的长期记忆的一般过程。短期记忆类似于受transformer架构约束的上下文窗口内的输入信息,长期记忆类似外部矢量存储,Agent可以根据需要快速查询和检索。
a,统一记忆,该结构模拟了人类的短期记忆。一般是通过上下文学习实现的,记忆信息直接写入提示词中。短期记忆的好处是直截了当,提高Agent感知最近或上下文敏感行为和观察的能力。但是由于LLM的上下文窗口限制,很难将所有记忆都放入提示词中,降低了Agent的性能。
b,混合记忆,明确地模仿了人类的短期和长期记忆,短期记忆暂时缓冲存着最近的感知,而长期记忆随着时间的推移巩固重要信息,可以根据当前事件来进行检索。
(2)记忆格式
不同的存储格式有着不同的优势,适用于各种应用。
a,自然语言:存储器信息可以灵活和可理解的方式表示,保留了丰富的语义信息。
b,嵌入特征:记忆信息被编码为嵌入特征向量,可以提高记忆检索和读取的速度。
c,数据库数据:Agent可以高效全面地处理数据库,可使用SQL语句来精确添加删除更改信息。
d,结构化列表:记忆信息被组织成列表,记忆的语义可以被高效简洁的方式传递。如层次结构明确捕捉了目标与相应计划之间的关系。
除了上述的代表性的,还有很多格式,如代码格式,键值对格式等。
(3)记忆操作
Agent和环境之间的交互式通过三个关键的记忆操作来实现的,记忆读取,记忆写入和记忆反射。
a,记忆读取:目的是从记忆中提取有意义的信息,以增强主体的行动。关键在于如何从历史行为中提取有价值的信息。通常来说信息有三个维度标准,新近性,相关性,重要性。信息的提取的评价标准有以下表达式

其中q是请求,M是代表整个记忆,m表示提取到的信息,$s{rec}$表示信息新近衡量度,$s$表示信息相关衡量度,$s^{imp}$表示信息重要衡量度,$\alpha$,$\beta$,$\gamma$,表示平衡参数。
b,记忆写入:目的是将感知到环境信息存储在记忆中,使得Agent更加智能。有面临两个潜在问题,解决如何存储与现有记忆相似的信息的问题,和当记忆达到存储限制后如何删除信息的问题。
c,记忆重复,目的是合并类似的信息,如重新压缩为一个统一的信息,增强型方法则为通过计数累积来聚合重复信息,避免冗余存储。
d,记忆溢出:可以根据用户命令来明确删除记忆,或使用FIFO来覆盖最旧的条目。
e,记忆反射:该方法模拟了人类见证和评估自己的认知、情感和行为过程的能力。当适用于Agent时,目标是向Agent提供独立总结和推断更抽象更复杂和更高级信息的能力。Agent有能力将存储在记忆中的过去的经验总结为更广泛更抽象的经验。反射过程可以分层进行,可以根据现有的见解生成见解。
规划模块
当面对一项复杂的任务,人类倾向于将其分解为更简单的子任务,并分别解决。规划模块赋予Agent以该人类的能力。以下根据Agent在规划过程中是否可以受到反馈来总结现有的研究。
无反馈的规划:Agent在采取行动后不会收到其可能影响未来行为的反馈。
a,单路径推理:一个任务被分解为多个中间步骤,步骤以级联的方式连接。COT方法把推理步骤融入到提示词中,激发LLM以循序渐进的方式执行。
b,多路径推理:生成的最终计划的推理步骤被组织为树状结构,使用COT来生成各种路径和相应的答案,随后选择频率最高的答案作为输出。TOT(思维树)使用树状推理结构生成计划,最终计划是使用BFS或DFS来生成。
c,外部规划器:在特定领域的问题计划生成还存在着不足,有研究基于任务描述转为正式的规划领域定义语言PDDL,使用外部规划器来处理PDLL,生成的结果再转为自然语言。

反馈式规划:很多情况下一开始制定一个完美的计划是非常困难的。Agent在处理复杂任务时根据外部反馈来反复制定和修改计划。
a,环境反馈:如有研究提出的思维-行为-观察三元组,观察通过外部反馈获得的行为结果。
b,人类反馈:从人类互动是增强Agent的规划能力的一种非常直观的策略。人类的反馈是一种主观信号,可有效地使Agent与人类的价值观保持一致,有助于缓解幻觉问题。
c,模型反馈:通常基于预训练的模型生成,有研究提出的一种自我精炼机制,由输出,反馈,细化组成。模型反馈由评估模型生成,该模块监控Agent推理步骤。
动作模块
动作模块负责将Agent的决策转为具体的结果。该模块位于最下游,直接与环境交互,受到Agent配置信息,记忆和计划模块的影响,从四个角度来看:行动目标:行动的预期结果是什么;动作产生:如何产生;行动空间:有哪些可用的行动;行动影响:行动的后果是什么。
(1)行动目标:Agent可以执行具有各种目标的行动。介绍几种有代表性的
a,任务完成:Agent的行动旨在完成特地的任务。
b,沟通交互:Agent采用行动与其他Agent或人类互动,以共享信息或进行协作
c,环境探索:Agent旨在探索陌生环境以扩展其感知能力,并在探索和利用之间获得平衡。
(2)动作产生:Agent可以通过不同的策略和来源采取行动
a,通过记忆采取行动:在该策略中,动作是通过根据当前任务从Agent记忆中提取信息而生成的。任务和提取的记忆被用作触发Agent动作的提示。在此过程中,对话中的对话历史记录会保存在Agent记忆。Agent生成的每个话语都受到其记忆的影响。
b,通过计划采取行动:Agent根据其预先生成的计划采取行动。Agent通过将任务分解为许多子目标来制定高级计划。基于这些计划,Agent采取行动,按顺序解决每个子目标,以完成最终任务。
(3)动作空间:动作空间是Agent可以执行的一组可能动作。一般来说,可以将这些行为大致分为两类:外部工具和LLM的内部知识。
a,外部工具:Agent被赋予调用外部工具执行动作的能力
- API:用外部API来补充和扩展行动空间是近年来流行的范例
- 数据库和知识库。集成外部数据库或知识库使Agent能够获得特定领域的信息,以生成更真实的动作。
- 外部模型。之前的研究经常利用外部模型来扩展可能行动的范围。与API相比,外部模型通常处理更复杂的任务。每个外部模型可以对应于多个API。
 b,LLM的内部知识:许多Agent仅依靠LLM的内部知识来指导他们的行动。
- 规划能力。之前的研究表明,LLM可以作为体面的规划者,将复杂的任务分解为更简单的任务
- 对话能力。LLMs通常可以生成高质量的对话。这种能力使Agent的行为更像人类。
- 常识理解能力。的另一个重要功能是LLMs的优点在于它们能够很好地理解人类的常识。基于这种能力,许多Agent可以模拟人类的日常生活,做出类似人类的决策。
(4)行动影响
a,环境变化。可以通过行动直接改变环境状态,例如移动位置、收集物品和建造建筑物。
b,改变内部状态。Agent采取的行动也会改变Agent本身,包括更新记忆、形成新计划、获取新知识等等。
c,触发新的行动。在任务完成过程中,一个Agent动作可以由另一个Agent动作触发。
4.2 Agent能力的获取
仅仅依靠硬件资源不足实现有效的任务性能,因为Agent可能缺乏必要的特定任务能力,技能和经验。为了使Agent拥有这些资源,可以制定了各种策略,根据这些策略是否需要对LLM进行微调,方法分为两类

通过微调获得能力
根据任务相关的数据集对Agent进行微调,以提高Agent完成任务的能力。一般来说,数据集可以基于人类注释、LLM生成或从现实应用中收集。
(1)使用人工标注的数据集进行微调
研究人员首先设计注释任务,然后招募工人来完成这些任务。旨在使LLM与人类价值观和偏好保持一致。与其他模型不同,其他模型以简单和象征性的方式利用人类反馈,这种方法将人类反馈转化为自然语言形式的详细比较信息。LLM直接基于这些自然语言数据集进行微调。
(2)使用 LLM 生成的数据集进行微调
考虑到 LLMs 可以在广泛的领域内实现类似人类的能力,一个自然的想法是使用 LLMs 来完成注释任务。虽然这种方法产生的数据集可能不如人工标注的那样完美,但它要便宜得多,并且可以用来生成更多的样本。
(3)使用真实数据集进行微调
无需微调的能力获取
在传统机器学习,模型能力主要通过从数据集中学习获得,其中知识被编码到模型参数中。在LLM时代,可以通过训练/微调模型参数或设计精细提示(即提示工程师)来获取模型能力。
在Agent时代,模型能力可以通过三种策略获得:模型微调,提示词工程,以及设计适当的Agent进化机制(我们称之为机制工程)。
(1)提示词工程。由于语言理解能力很强,人们可以使用自然语言直接与LLM进行交互。这引入了一种增强Agent能力的新策略,即可以使用自然语言描述所需的能力,然后将其用作影响LLM行动的提示。
(2)机制工程。与模型微调和提示工程不同,机制工程是一种增强Agent能力的独特策略。以下是几种代表性的方法
- 试错法:Agent首先执行一个动作,随后调用预定义的评论家来评判该动作。Agent的关键作用之一是模拟人类行为并代表用户生成响应。为了实现这一目标,Agent首先生成预测响应,然后将其与真实的人类反馈进行比较。如果预测的响应和真实的人类反馈不同,评论器就会生成失败信息,随后将其纳入Agent的下一个动作。
- 众包。有研究设计了一种辩论机制,利用群体的智慧来增强Agent的能力。首先,不同的Agent对给定的问题提供单独的响应。如果他们的回答不一致,系统会提示他们结合其他Agent的解决方案,并提供更新的回答。
- 经验积累。Agent在开始时不知道如何解决任务。然后,它进行探索,一旦成功完成任务,该任务中使用的动作就会存储到Agent的记忆中。在未来,如果Agent遇到类似的任务,那么相关的记忆就会被提取出来以完成当前的任务。在这个过程中,改进的Agent能力来自专门设计的记忆积累和利用机制。
- 自我驱动的进化。Agent可以自主地为自己设定目标,并通过探索环境和接收奖励函数的反馈来逐步提高自己的能力。遵循这一机制,Agent可以根据自己的偏好获取知识并发展能力。
综上,可以发现微调方法通过调整模型参数来提高Agent能力,这可以结合大量特定于任务的知识,但只适用于开源LLM。没有微调的方法通常基于精细的提示策略或机制工程来增强Agent的能力。它们可用于开源和闭源的LLM。
对于基于 LLM 的Agent的构建,其中我们重点关注两个方面,包括架构设计和能力获取。总结了现有研究的工作。


5. 基于LLM的自主Agent的应用
由于强大的语言理解、复杂的任务推理和常识理解能力,基于LLM的自主Agent在影响多个领域方面显示出巨大的潜力。本节简要总结了之前的研究,并根据其在三个不同领域的应用进行了分类:社会科学、自然科学和工程学。

5.1 社会科学
社会科学是科学的一个分支,致力于研究社会以及社会内部个体之间的关系。基于LLM的自主Agent可以通过利用其令人印象深刻的人类理解、思考和任务解决能力来促进这一领域的发展。
心理学
在心理学领域,基于LLM的Agent可用于进行模拟实验,提供心理健康支持等例
政治学和经济学
基于 LLM 的Agent也可以用来研究政治学和经济。和基于LLM的代Agent用于意识形态检测和预测投票模式。
社会模拟
以前,用人类社会进行实验往往成本高昂、不道德,甚至不可行。随着LLM的不断繁荣,许多人探索用基于LLM的Agent构建虚拟环境来模拟社会现象,如有害信息的传播等
法学
基于 LLM 的Agent可以在法律决策过程中提供帮助,促进更明智的判断
研究助理
除了在专业领域的应用,基于LLM的Agent越来越多地被用作社会科学研究广泛领域中的多功能助理。基于LLM的Agent提供了多方面的帮助,从生成简洁的文章摘要和提取关键关键词到为研究制定详细的脚本,展示了他们丰富和简化研究过程的能力。
5.2 自然科学
自然科学是科学的一个分支,它基于观察和实验得出的经验证据,关注自然现象的描述、理解和预测。
文档和数据管理
基于LLM的Agent在语言理解以及使用互联网和数据库等工具进行文本处理方面表现出了强大的能力。这些能力使Agent能够在与文档和数据管理相关的任务中脱颖而出,Agent可以有效地查询和利用互联网信息来完成诸如问答和实验计划等任务。
实验助理
基于LLM的Agent具有独立进行实验的能力,使其成为支持科学家开展研究项目的宝贵工具。
5.3 工程类
基于 LLM 的Agent可以与人类流利地交流,通常被用于开发基于Agent的教育工具,例如开发的基于Agent的教育系统,以促进学生学习实验设计、方法和分析。这些系统的目标是提高学生的批判性思维和解决问题的能力,同时加深对科学原理的理解。
5.4 风险
使用基于LLM的Agent来支持上述应用程序也可能带来风险和挑战。一方面,LLM本身可能容易受到错觉和其他问题的影响,偶尔会提供错误的答案,导致错误的结论、实验失败,甚至在危险实验中给人类安全带来风险。因此,在实验过程中,用户必须具备必要的专业知识和知识,以保持适当的谨慎。另一方面,基于LLM的代理可能被用于恶意目的
6. 基于LLM的自主Agent的评价
评估基于LLM的自主代理的有效性是一项具有挑战性的任务。本节概述了两种流行的评估方法:主观方法和客观方法。

6.1 主观评价
主观评估基于人的判断来衡量Agent的能力。它适用于没有评估数据集或评估数据集非常少的场景难以设计定量指标。
(1)人工注释:这种评估方法涉及人工评估人员直接对各种Agent生成的输出进行评分或排名
(2)图灵测试:这种评估策略要求人类评估者区分Agent产生的输出和人类创建的输出。如果在给定的任务中,评估者无法将Agent和人类的结果分开,那么这就表明Agent可以在这项任务上达到类似人类的性能。
基于LLM的Agent通常是为人类服务的。因此,主观Agent评估起着至关重要的作用,因为它反映了人类的标准。然而,这一策略也面临着成本高、效率低和人口偏见等问题。
6.2 客观评价
客观评估是指使用可计算、比较和随时间跟踪的定量指标来评估基于LLM的自主Agent的能力。与主观评价相反,客观指标旨在提供对Agent性能的具体、可衡量的见解。为了进行客观评估,有三个重要方面,即评估指标、协议和基准。

(1)度量:为了客观地评估Agent的有效性,设计适当的度量标准非常重要,这可能会影响评估的准确性和全面性。理想的评估指标应该精确地反映Agent的质量,并在现实场景中使用它们时与人类的感受保持一致。
a,任务成功指标:这些指标衡量Agent完成任务和实现目标的程度。
b,人类相似性指标:这些指标量化Agent行为与人类行为的相似程度。
c,效率指标:与上述用于评估Agent有效性的指标相比,这些指标旨在评估Agent的效率。
(2)协议:除了评估指标外,客观评估的另一个重要方面是如何利用这些指标.
a,现实模拟:在这种方法中,Agent在沉浸式环境中进行评估,如游戏和交互式模拟器。
b,社会评估:这种方法利用指标来评估基于模拟社会中Agent交互的社会智能。
c,多任务评估:人们使用来自不同领域的一组不同任务来评估Agent,这可以有效地衡量Agent开放领域环境中的泛化能力
d,软件测试:研究人员通过让Agent执行诸如生成测试用例、重现错误、调试代码以及与开发人员和外部工具交互等任务来评估Agent。然后,可以使用测试覆盖率和错误检测率等指标来衡量基于LLM的Agent的有效性。
(3)基准:考虑到指标和协议,剩下的一个关键方面是为进行评估选择合适的基准。在过去,人们在实验中使用了各种基准。
客观评估通过各种指标促进了基于LLM的Agent能力的定量分析。虽然目前的技术不能完美地衡量所有类型的Agent能力,但客观评估提供了重要的见解,补充了主观评估。客观评估的基准和方法学的持续进步将进一步促进基于LLM的自主Agent的开发和理解。
7. 相关研究
广泛介绍了LLM的背景、主要发现和主流技术,涵盖了大量现有作品。另一方面,有研究主要关注LLM在各种下游任务中的应用以及与部署相关的挑战。将LLM与人类智能对齐是一个活跃的研究领域,用于解决诸如偏见和错觉等问题。
有研究阐明了评估LLM的方法,解决了评估什么、在哪里评估以及如何评估他们在下游任务和社会影响中的表现等问题,还讨论了LLM在各种下游任务中的能力和局限性。上述研究包括大型模型的各个方面,包括训练、应用和评估。
8. 当前挑战
角色扮演能力(Role-playing capability)
与传统的LLM不同,自主代理通常必须扮演特定的角色(例如,程序编码员、研究员和化学家)来完成不同的任务。如何确保微调后的模型在常见角色中仍然表现良好,可能会带来进一步的挑战。除了微调之外,还可以设计量身定制的代理提示/架构,以提高LLM在角色扮演方面的能力。然而,找到最佳的提示/架构并不容易,因为它们的设计空间太大了。
广义人类对齐(Generalized human alignment)
基于主体的模拟的一个重要问题可能是如何进行广义的人类对齐,即对于不同的目的和应用,主体应该能够与不同的人类价值观对齐。因此,一个有趣的方向是如何通过设计适当的提示策略来“重新调整”这些模型。
快速鲁棒性(Prompt robustness)
LLM提示缺乏鲁棒性,因为即使微小的改变也会产生截然不同的结果。在构建自主Agent时,这个问题变得更加明显,因为它们包含的不是单个提示,而是考虑所有模块的提示框架,其中一个模块的提示有可能影响其他模块。
开发一个适用于各种LLM的统一且具有弹性的提示框架仍然是一个关键且尚未解决的挑战。对于上述问题,有两种潜在的解决方案:(1)通过反复试验手动制作必要的提示元素,或(2)使用GPT自动生成提示。
幻觉(Hallucination)
幻觉对LLM提出了根本性的挑战,其特征是模型倾向于产生高度自信的虚假信息。
幻觉可能导致严重后果,如错误或误导性代码、安全风险和道德问题。为了缓解这个问题,将人类修正反馈直接纳入人类与代理交互的迭代过程中,提出了一些可行的方法。
知识边界(Knowledge boundary)
基于LLM的自主代理的一个关键应用在于模拟各种现实世界的人类行为,LLM可能会显示出压倒性的能力,他们接受过大量网络知识的培训,远远超过普通人的知识水平。LLM的巨大能力可以显著影响模拟的有效性。
对于构建可信的代理模拟环境,一个重要的问题是如何限制LLM中用户未知知识的使用。
效率(Efficiency)
由于其自回归架构,LLM的推理速度通常较慢。然而,Agent可能需要多次查询LLM以获取每个动作,例如从记忆中提取信息、在采取行动之前制定计划等。因此,Agent动作的效率受到LLM推理速度的极大影响。
9. 总结
LLM Agent领域的很全面的综述。对比和总结比较很好。
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号