A Survey on Large Language Model based Autonomous Agents
-
ArXiv URL: http://arxiv.org/abs/2308.11432v7
-
作者: Ji-rong Wen; Zhi-Yang Chen; Jingsen Zhang; Hao-ran Yang; Yankai Lin; Wayne Xin Zhao; Xueyang Feng; Lei Wang; Chengbang Ma; Jiakai Tang; 等3人
-
发布机构: Renmin University of China
基于大型语言模型的自主智能体综述
引言
自主智能体 (Autonomous agent) 长期以来被视为实现通用人工智能 (AGI) 的一条有前景的路径。传统研究中的智能体通常在隔离、受限的环境中学习,其决策过程与人类相去甚远。近年来,大型语言模型 (LLMs) 通过从海量网络知识中学习,展现出接近人类的智能水平,催生了基于LLM的自主智能体研究浪潮。

与强化学习相比,基于LLM的智能体拥有更全面的内部世界知识,无需针对特定领域数据进行训练即可执行有效行动。此外,它们提供自然语言交互界面,灵活性和可解释性更强。
本文对基于LLM的自主智能体领域进行了全面的综述,围绕其构建、应用和评估三个关键方面展开。在构建方面,本文提出了一个能够涵盖多数现有工作的统一框架,并总结了智能体能力获取的常用策略。此外,本文还系统梳理了智能体在社会科学、自然科学和工程领域的应用,并探讨了其评估方法,最后指出了该领域面临的挑战与未来方向。
基于LLM的自主智能体构建
构建高效的LLM自主智能体涉及两个核心问题:(1) 如何设计合理的智能体架构以充分利用LLM的能力?(2) 在给定架构下,如何让智能体获取完成特定任务的能力?前者好比定义模型的“硬件”基础,后者则类似学习“软件”参数。
智能体架构设计
为了让传统的LLM转变为能够在动态环境中自主感知、学习和演化的自主智能体,设计合理的架构至关重要。本文通过对现有工作的系统性梳理,提出了一个统一的智能体架构框架。

该框架由四个核心模块组成:
- 画像 (Profiling) 模块:定义智能体的角色和身份。
- 记忆 (Memory) 模块:存储和回忆过去的经验。
- 规划 (Planning) 模块:为未来行动制定计划。
- 行动 (Action) 模块:将智能体的决策转化为具体输出。
其中,画像模块影响记忆和规划,这三个模块共同决定最终的行动模块。
画像模块
画像模块旨在为智能体设定具体角色,如程序员、教师或领域专家,这些设定通常通过提示 (Prompt) 影响LLM的行为。画像信息可包括年龄、性别等基本信息,也包含反映性格的心理信息和智能体间关系的社会信息。构建画像的方法主要有以下三类:
- 手工构建法 (Handcrafting Method):人工为智能体指定画像。例如,Generative Agent、MetaGPT 等研究都手动定义了智能体的身份、目标和职责。此方法虽灵活,但在处理大量智能体时费时费力。
- LLM生成法 (LLM-generation Method):利用LLM根据预设规则和少数“种子”样本自动生成大量智能体画像。例如,RecAgent 使用此方法快速创建大规模用户画像。该方法效率高,但对生成结果的精确控制较弱。
- 数据集对齐法 (Dataset Alignment Method):从真实世界的数据集中提取信息来构建画像。例如,有研究使用美国国家选举研究 (ANES) 的参与者人口统计数据为GPT-3分配角色。这种方法能准确反映真实群体的特征,使智能体行为更具现实意义。
注记:这些方法可以组合使用。例如,可以结合数据集对齐法和手工构建法,在模拟社会发展时,既能反映当前社会状况,又能引入未来可能出现的新角色。
记忆模块
记忆模块是智能体架构的核心,它存储环境感知信息,并利用这些记忆指导未来行动,帮助智能体积累经验和自我进化。
记忆结构
受人类记忆过程的启发,智能体的记忆结构通常分为短期记忆和长期记忆。
- 统一记忆 (Unified Memory):仅模拟人类的短期记忆,通常通过上下文学习 (in-context learning) 实现,将记忆信息直接写入提示中。例如,RLP、SayPlan等模型将场景图、环境反馈等作为短期记忆。这种结构实现简单,但受限于LLM的上下文窗口长度。
- 混合记忆 (Hybrid Memory):同时模拟短期和长期记忆。短期记忆缓存近期感知,长期记忆则固化重要信息。例如,Generative Agent、AgentSims 等采用这种结构,将长期记忆存储在外部向量数据库中,通过嵌入相似性进行高效检索。这种结构能显著增强智能体的长程推理和经验积累能力。
注记:文献中很少见到仅有长期记忆的结构,可能是因为智能体处于连续动态的环境中,短期记忆对于捕捉即时关联至关重要。
记忆格式
记忆可以以多种格式存储,各有优劣。
- 自然语言 (Natural Languages):直接用原始文本存储记忆。这种格式灵活、易于理解且保留了丰富的语义信息,如Reflexion和Voyager。
- 嵌入 (Embeddings):将记忆编码为向量,提高了检索和读取效率,如MemoryBank。
- 数据库 (Databases):将记忆存入数据库,允许智能体通过SQL等方式进行精确的增删改查,如ChatDB。
- 结构化列表 (Structured Lists):以列表形式组织记忆,简洁高效。例如,GITM将子目标的行动序列存储在分层树结构中。
注记:这些格式可以组合使用。例如,GITM的记忆模块使用键值列表,其中键是嵌入向量以支持高效检索,值是自然语言以保留全面的信息。
记忆操作
记忆模块通过三种关键操作与环境交互:
-
记忆读取 (Memory Reading):从记忆中提取有价值的信息以指导当前行动。提取的标准通常有三个:新近度 (recency)、相关性 (relevance) 和重要性 (importance)。其综合评分可表示为:
\[m^{*} = \arg\max_{m \in M} \left( \alpha s^{rec}(q, m) + \beta s^{rel}(q, m) + \gamma s^{imp}(m) \right)\]其中,$q$ 是当前查询,$M$ 是记忆集合,$s^{rec}, s^{rel}, s^{imp}$ 分别是新近度、相关性和重要性评分函数,$\alpha, \beta, \gamma$ 是权重。通过调整权重,可实现不同的读取策略。
- 记忆写入 (Memory Writing):将感知到的环境信息存入记忆。此过程需解决两个问题:
- 记忆重复 (Memory Duplicated):如何处理与现有记忆相似的信息。例如,GITM会将同一子目标的多个成功行动序列用LLM融合成一个统一的计划。
- 记忆溢出 (Memory Overflow):当记忆容量达到上限时如何处理。策略包括按先进先出(FIFO)原则覆盖旧记忆(RET-LLM),或根据用户指令显式删除(ChatDB)。
- 记忆反思 (Memory Reflection):模拟人类的自我反思能力,使智能体能够从具体经验中总结、推断出更抽象的高层认知。例如,Generative Agent 能从“Klaus写论文”、“Klaus和图书管理员交流”等低层记忆中,反思出“Klaus专注于他的研究”这一高层见解。
规划模块
规划模块赋予智能体将复杂任务分解为简单子任务并逐一解决的能力。根据在规划过程中是否接收反馈,可分为两大类。
![单路径推理与多路径推理策略的比较。LMZSP是[44]中提出的模型。](/images/2308.11432v7/x3.jpg)
无反馈规划
智能体在完成一次规划后,中途不接收任何可能影响后续行为的反馈。
- 单路径推理 (Single-path Reasoning):将任务分解为一系列线性串联的步骤。代表性方法有:
- 思维链 (Chain of Thought, CoT):通过在提示中提供推理步骤示例来引导LLM进行分步规划。
- Zero-shot-CoT:仅用“让我们一步一步地思考”等触发性语句,让LLM自行生成推理过程。
- 其他如 Re-Prompting、ReWOO、HuggingGPT 等,通过多次访问LLM、分离规划与观察等方式优化单路径推理。
- 多路径推理 (Multi-path Reasoning):将推理步骤组织成树状或图状结构,在每一步探索多种可能性。代表性方法有:
- 自洽思维链 (Self-consistent CoT, CoT-SC):生成多个不同的推理路径,最后通过投票选择最一致的答案。
- 思维树 (Tree of Thoughts, ToT):构建一个“思想”树,每个节点代表一个中间推理步骤,通过广度或深度优先搜索生成最终计划。
- 其他如 GoT(思维图)、RAP(基于蒙特卡洛树搜索)等,进一步扩展了推理结构,增强了规划的鲁棒性。
- 外部规划器 (External Planner):对于特定领域的复杂问题,直接利用成熟的外部规划工具。例如,LLM+P 和 LLM-DP 将自然语言任务描述转换为规划领域定义语言 (PDDL),交由专业规划器求解,再将结果转回自然语言。
带反馈规划
在处理长周期、复杂的现实任务时,智能体需要根据外部反馈来迭代地制定和修正计划。反馈来源主要有三种:
-
环境反馈 (Environmental Feedback):来自客观世界或虚拟环境的信号,如游戏得分、工具执行结果等。ReAct 框架通过“思考-行动-观察”的循环,将环境观察结果整合进下一步的思考中。Voyager、DEPS 等模型也利用环境反馈(如代码执行错误、任务失败原因)来动态调整计划。
-
人类反馈 (Human Feedback):直接来自人类的指导或评价,有助于智能体行为与人类价值观对齐并减少幻觉。例如,Inner Monologue 模型允许智能体在需要时主动向人类请求关于场景描述的反馈。
-
模型反馈 (Model Feedback):由智能体自身或其他模型产生的内部反馈。例如,“自精炼”(self-refine) 机制让智能体生成输出后,再利用LLM对其进行评估和提出修改建议。Reflexion 模型则能生成详细的语言反馈来指导计划修正,而不仅仅是标量奖励信号。
注记:无反馈规划实现简单,适用于简单任务;带反馈规划设计更复杂,但功能更强大,能有效应对需要长程推理的复杂任务。
行动模块
行动模块负责将智能体的决策转化为与环境直接交互的具体输出。本文从行动前、行动中、行动后三个阶段的四个视角来分析此模块。
行动目标
智能体的行动旨在达成不同目标,主要包括:
- 任务完成 (Task Completion):行动旨在完成一个明确定义的任务,如在Minecraft中制作工具或在软件开发中完成一个函数。
- 沟通 (Communication):行动用于与其他智能体或人类进行信息共享或协作。
- 环境探索 (Environment Exploration):行动旨在探索未知环境,以在“探索”与“利用”之间取得平衡。
行动生成
智能体生成行动的方式主要有两种:
- 通过记忆回溯生成行动 (Action via Memory Recollection):根据当前任务从记忆中检索相关信息,并将其作为提示来指导行动生成。例如,Generative Agents 在每次行动前都会检索近期、相关且重要的记忆。
- 通过遵循计划生成行动 (Action via Plan Following):严格按照预先生成的计划来执行行动。例如,DEPS 在没有收到计划失败信号时,会严格遵守其计划。
行动空间
行动空间指智能体可以执行的所有可能行动的集合,大致可分为两类:
- 外部工具 (External Tools):为了弥补LLM在专业知识、实时信息和计算能力上的不足,智能体被赋予调用外部工具的能力。
- (1) APIs:利用外部API扩展行动能力是一种流行范式。例如,HuggingGPT 集成HuggingFace的模型库,WebGPT 调用搜索引擎,ToolFormer 和 ToolLLaMA 经过专门训练以决定何时以及如何调用API。
- (2) 数据库与知识库 (Databases & Knowledge Bases):使智能体能获取特定领域的结构化信息。例如,ChatDB 通过SQL查询数据库,OpenAGI 接入知识库等专家系统。
- (3) 外部模型 (External Models):利用其他专业模型来执行复杂任务。例如,ViperGPT 使用Codex模型生成并执行Python代码,ChemCrow 是一个专门为化学任务设计的LLM…