1
2
3
4
5
6
7
8
英文名称: A Survey on Large Language Model based Autonomous Agents
中文名称: 基于大型语言模型的自主代理研究综述
链接: https://link.springer.com/article/10.1007/s11704-023-2640-9
链接: https://arxiv.org/pdf/2308.11432
作者: Lei Wang, Chen Ma, Xueyang Feng, Zeyu Zhang, Hao Yang, Jingsen Zhang, Zhi-Yuan Chen, Jiakai Tang, Xu Chen, Yankai Lin, Wayne Xin Zhao, Zhewei Wei, Ji-Rong Wen
机构: 中国人民大学高灵智能学院
日期: Published: 22 March 2024 (以下为20240404版)
引用次数: 471

摘要

  • 目标: 对基于大型语言模型(LLM)的自主代理进行系统综述,包括其构建、应用以及评估策略,并提出未来研究的挑战和方向。
  • 方法: 提出一个统一框架来概括以往研究,对 LLM 自主代理在社会科学、自然科学和工程中的应用进行概述,并探讨常见的评估策略。
  • 结果: 通过综述指出了现有研究中的挑战,并提出了未来的研究方向。

读后感

在阅读这篇文章时,我有时会恍惚:这是在看认知科学,还是在看人工智能?这两个领域的交集太多了。

这里讨论的不是在孤立环境中训练知识有限的智能体,而是更接近通用智能体。如果一个自主代理具备了通用智能的能力,那么它就可以被认为是 AGI。所以这里可以视为实现 AGI 的一种途径。

因为这是回顾性综述,所以没有太多创新,但总结和提炼能力很强。其中,机制工程 (Mechanism Engineering) 是对我启发最大的一章。非常类似于人的成长和进化。

文章还讨论了自主代理的一些方法和技术,如强化学习、知识表示和推理。主要从三个角度进行探讨:建构、应用、评估。

1 引言

自主代理是一个位于环境内部的系统,是环境的一部分,它感知到该环境并随着时间的推移对其采取行动,以追求自己的议程,从而影响它在未来所感知到的东西。

富兰克林和格雷瑟(1997)

通过自主的计划和行动来完成任务。与之前的智能体相比,人类通常可以从更广泛的环境中学习。而现在的 LLM 智能体拥有更全面的内部世界知识。

2 建构

这里主要讨论两方面:结构和如何解决具体问题。这里的结构指的是更大意义上的模块结构,包括:分析问题、记忆、计划和执行。解决具体问题则指工具如何与具体问题对接。

2.1 结构设计

2.1.1 分析模块

自主代理通常通过承担特定角色来执行任务,例如程序员、教师和领域专家。分析模块旨在指示角色的配置文件,这些配置文件通常被写入提示中以影响大语言模型(LLM)。配置文件模块是 Agent 设计的基础,对记忆、计划和行动程序产生重大影响。

设置内容

  • 人口统计信息:年龄、性别和职业等基本信息
  • 个性的心理信息:人格评估工具(可参考 PTLLM),例如 IPIP-NEO 和 BFI,用于定义各种智能体特征
  • 社会信息:详细说明代理之间的关系、角色、场景和职责

具体方法

  • 手动设置:非常灵活,可以将任何个人资料信息分配给代理。
  • 大模型生成:根据规则和示例生成,适用于代理数量众多的情况。LLM 生成方法可以节省大量时间。
  • 数据对齐:将数据集中有关真实人类的信息组织成自然语言提示,然后利用这些提示来分析代理。

备注

  • 常用的方案是灵活地组合多个策略。

2.1.2 记忆模块

人类记忆遵循从记录知觉输入的感觉记忆到短暂维持信息的短期记忆,再到长时间整合信息的长期记忆的一般过程。常用的方法是:短期记忆类似于上下文窗口中的输入信息;长期记忆类似于外部向量存储,Agent 可以根据需要快速查询和检索。

记忆模块可以帮助智能体积累经验,自我进化,并以更一致、合理、有效的方式行事。这里讨论了记忆的:结构、格式和操作。

2.1.2.1 记忆结构

统一记忆 Unified Memory

这里模拟的是人的短期记忆。将之前的上下文窗口内容、场景和反馈作为提示词,传入之后的对话中。但由于上下文窗口的限制,LLMs 很难将所有内存都置于提示状态,这可能会降低智能体的性能。

混合记忆 Hybrid Memory

模拟了人类的短期和长期记忆。短期记忆会暂时缓冲最近的感知,而长期记忆会随着时间的推移整合重要信息。长期记忆存储智能体过去的行为和想法,这些可以根据当前事件进行检索,还可以利用向量数据库的长期记忆系统。长期记忆还可以存储对过去经验的总结,以提高代理行为的一致性,提供稳定的知识,浓缩的见解

备注

智能体始终处于连续和动态的环境中,其连续的动作表现出高度相关性。因此,不太可能只依赖长期记忆。

2.1.2.2 记忆格式

通常采用多种方式相结合。

数据格式

  • 自然语言:直接使用原始自然语言进行描述。
  • 嵌入:提高内存检索和读取效率,匹配效果更好。

介质

  • 数据库:便于增删查改。
  • 结构列表:便捷、高效,支持层次结构。
2.1.2.3 记忆操作

Agent 通过与环境交互来获取、积累和利用重要知识。主要操作:读、写、反思。

从存储中提取有意义的信息,以增强代理的动作,例如使用先前成功的行动来实现类似的目标。有三个常用的信息提取标准:新近度、相关性和重要性。

其中,q 是查询,M 是全部记忆。三个 s 分别是新近度、相关性和重要性的评分函数。例如,相关性可以通过 LSH、ANNOY、HNSW、FAISS 等算法实现。重要性反映的是记忆本身的特质,与查询无关。α、β 和 γ 是平衡参数。通过为它们分配不同的值,可以获得各种内存读取策略。

存储有价值的信息为将来检索信息性记忆奠定了基础。有两个潜在问题需要解决:

  • 如何存储与现有记忆相似的信息(即重复的记忆)至关重要。整合类似信息的方法很多,比如把与同一子目标相关的成功动作序列存储在一个列表中。当列表的大小达到阈值时,可以使用 LLMs 将其中所有序列压缩成一个统一的计划解,替换之前的记忆;通过计数累积聚合重复信息等。
  • 当内存达到其存储限制(即内存溢出)时如何删除信息也很重要。解决方法包括:先进先出,手动清除等。

反思

模仿人类见证和评估自己认知、情感和行为过程的能力。将存储在记忆中的经验总结为更广泛、更抽象的见解。反射过程可以分层进行,这意味着可以根据现有见解生成新的见解

  • 在 GITM 中,成功完成子目标的行动存储在一个列表中。当列表包含五个以上的元素时,代理将它们汇总为一个通用且抽象的模式,并替换所有元素。
  • 在 ExpeL 中,首先,智能体比较同一任务中成功或失败的轨迹。其次,智能体从一系列成功的轨迹中学习以获得经验。

Agent 与只使用 LLM 的区别在于,用之前的经验让未来行为变得更好:从记忆到计划的改进。

2.1.3 计划模块

2.1.3.1 无反馈规划

单路径推理:任务被分解为几个中间步骤。这些步骤以级联方式连接,每个步骤仅导致一个后续步骤。例如,Chain of Thought(CoT)利用示例启发;Zero-shot-CoT 通过使用触发句子(如“逐步思考”)来生成任务推理过程。HuggingGPT [13] 首先将任务分解为多个子目标,然后根据 Huggingface 模型逐一求解。

多路径推理:生成最终计划的推理步骤被组织成一个树状结构。每个中间步骤可能有多个后续步骤。这种方法类似于人类的思维。CoT-SC 首先使用 CoT 来生成各种推理路径和相应的答案。随后,选择频率最高的答案作为最终输出。

外部规划:首先,将任务描述转换为正式的规划领域定义语言(PDDL)。接着,使用外部规划器处理 PDDL。最后,通过 LLMs 将生成的结果转换回自然语言。

2.1.3.2 有反馈规划

从一开始就直接生成完美的计划非常困难,执行过程中可能会受到不可预测的动态阻碍。人类通常会根据外部反馈迭代地制定和修改计划,需要从环境、人类和模型中获得反馈,以解决更复杂的任务。

环境反馈:从客观世界或虚拟环境中获得。例如,ReAct 建议使用思想 - 行为 - 观察三元组来构建提示;Voyager 通过结合程序执行的中间进度、执行错误和自我验证结果来制定计划;LLMPlanner 引入了一种重新规划算法,在任务完成过程中遇到对象不匹配或无法实现的计划时,动态更新生成的计划。

人类反馈:人类反馈是一种主观信号,有助于使智能体与人类价值观和偏好保持一致,同时缓解幻觉问题。

模型反馈:除了环境和人类反馈(即外部信号)外,还有来自代理本身的内部反馈。首先,代理生成输出,然后 LLMs 对输出提供反馈,并就如何优化提供指导(用不同模型作为评估员、检查员和排序员)。通过不断进行输出—反馈优化迭代,直到满足某些条件。

不同类型的反馈可以结合起来,增强 Agent 的策划能力。

2.1.4 行动模块

将代理的决策转化为特定结果。该模块位于最下游位置,直接与环境交互。

2.1.4.1 行动目标
  • 任务完成:旨在完成特定任务。这类操作目标通常是明确的,每个行动都为最终任务的完成做出贡献。
  • 沟通:旨在与其他代理或真人进行沟通,以共享信息或进行协作。例如,通过沟通共同完成软件开发任务;通过代理与人类积极沟通,并根据人类反馈调整其行动策略。
  • 环境探索:探索未知环境,以扩大其感知能力,并在探索与利用之间找到平衡。例如,Voyager 中的代理可能在任务完成过程中探索未知技能,并通过试错不断改进技能执行代码。
2.1.4.2 动作生成
  • 通过记忆进行行动:代理根据当前任务从记忆中提取信息来生成动作。如果有与任务相关的成功经验,代理会查询记忆,并调用之前成功的操作来处理当前任务。
  • 通过计划进行跟踪:代理按照预先生成的计划行事。如果没有信号表明计划失败,代理将严格遵循这些计划。
2.1.4.3 行动空间

可用的行动大致分为:外部工具和内部知识(LLMs)。

外部工具

(这部分介绍了一些很有用的工具,详见论文正文)

  • API:包括从外部网页中提取相关内容;HuggingGPT 利用 HuggingFace 上的模型来完成复杂的用户任务。
  • 数据库:外部数据库或知识库使代理能够获取特定领域的信息,从而生成更真实的操作。ChatDB 使用 SQL 语句查询数据库,以逻辑方式促进代理操作。
  • 外部模型:与 API 相比,外部模型通常处理更复杂的任务。

内部知识

除了利用外部工具外,许多代理人还完全依靠内部 LLMs 的知识来指导他们的行动。这些知识包括规划能力、对话能力和常识性理解能力。

2.1.4.4 行动影响

行动的影响包括:

  • 环境的不断变化。
  • 内部状态的改变,包括更新记忆、制定新计划、获取新知识等。
  • 触发新的动作。

表 1 对于 profile 模块,使用(1)、(2)和(3)分别表示手工制作方法、LLM 生成方法和数据集对齐方法。对于内存模块,重点介绍内存操作和内存结构的实现策略。对于内存操作,我们使用(1)和(2)分别表示模型只有读/写操作和读/写/反思操作。对于内存结构,用(1)和(2)分别表示统一内存和混合内存。对于计划模块,使用(1)和(2)分别表示无反馈和有反馈的计划。对于动作模块,使用(1)和(2)分别表示模型不使用工具和使用工具。对于智能体能力获取(CA)策略,分别使用(1)和(2)来表示有微调和无微调的方法。“-”表示论文中没有明确讨论相应内容。

2.2 Agent 能力的获取

上述架构可以被视为代理的“硬件”,而处理特定任务的能力、技能和经验则可看作“软件”。

在智能体时代,模型能力的提升可基于三种策略:(1)模型微调(2)提示工程以及(3)设计合适的智能体进化机制(机制工程)

(小编说:调参是直接修改模型参数,而另外两种方法则在模型外部积累经验)

2.2.1 通过微调获取能力

数据集可以通过以下几种方式构建:人工标注、LLM 生成或从真实世界的应用程序中收集。

2.2.2 无需微调即可获取功能

提示工程:使用自然语言描述所需的能力,然后将其用作影响 LLM 行动的提示。Agent 可以通过学习过程不断改进提示。例如,Retroformer 提出了一个回顾性模型,使智能体能够反思其过去的失败,并将这些反思集成到提示中;在 SocialAGI 中,智能体会提示关于听者及其自身心理状态的信念,从而使生成的话语更具吸引力和适应性。

机制工程

  • 试错法:智能体首先执行一个动作,然后调用预定义的批评者来判断该动作是否令人满意。如果不满意,解释器会生成详细信息,解释失败的原因。代理将这些信息纳入其中,以重新设计计划。
  • 众包:不同的代理对同一个问题提供各自的回答。如果回答不一致,系统会提示他们参考其他代理的解决方案,并提供更新的响应。这个迭代过程持续到达成最终共识。
  • 积累经验:一旦成功完成任务,该任务中使用的操作将存储在代理内存中。如果未来遇到类似任务,相关记忆会被提取出来,以便完成当前任务,从而构建知识库。知识库也可以来自代理自行收集的信息。
  • 自我驱动进化:智能体可以自主设定目标,通过探索环境并接收奖励函数反馈来逐步提高能力。常用场景包括:使用大型语言模型作为教师和弱语言模型作为学生;利用多个智能体交流,以完成单个智能体无法完成的任务。

3 应用

3.1 社会科学

  • LLM 可以模拟人的思想和行为。
  • 研究团体行为及多人交互。
  • 进行拆解和归因。
  • 进行一些之前难以实现的实验。

3.2 自然科学

  • 文档和数据管理:查询和利用网络;计划和设计
  • 实验助手:辅助实验,处理危险实验,使实验更加完备性
  • 自然科学教育:提供个性化、公平且富有同情心的教育支持

3.3 工程学

  • 土木工程:设计与优化
  • 计算机科学与软件工程:自动化编码、测试、调试和文档生成
  • 工业自动化:通过分析和仿真提供优化建议或预测未来行为
  • 机器人与具身人工智能:强化学习 Agent 提高自主代理在具身环境中的规划、推理和协作能力

4 评价

4.1 主观评估

LLM 基于代理通常设计为为人类服务。因此,主观代理评估起着至关重要的作用,因为它反映了人类的标准。对模型的无害性、诚实性、乐于助人性、参与度和公正性进行评分,以评估模型的有效性。

4.2 客观评估

  • 指标:任务成功指标、人类相似性指标、效率指标
  • 协议:真实世界模拟评估实践能力;社会能力评估;多任务评估泛化能力;软件测试
  • Benchmarks:评估游戏代理的 Tachikuma,评估自主代理的 AgentBench,评估社交能力的 SocKET,评估工具能力的 ToolBench……