A survey on large language model based autonomous agents
Abstract#
传统智能体训练方式一般侧重于在孤立环境中基于有限知识训练, 这与人类的学习过程有显著差别, 也导致智能体难以做出类似人类的决策. 近来, LLM 展示出了达到类人智能的潜力, 导致基于 LLM 的智能体研究数量激增. 本文对这些研究进行了全面调查, 给出了对基于 LLM 的智能体的系统回顾.
本文讨论了基于 LLM 的智能体的构建, 给出了一个统一框架, 概述了智能体在研究中的应用, 并研究了对其常用的评估策略, 提出了该领域的几个挑战和未来方向.
Introduction#
Background#
在以前的研究中, 智能体都被设想为在孤立且严格限制的环境中基于简单的启发式策略函数行动. 这样的设想使它们的行为和人类的学习过程产生了显著差异, 训练出的智能体也难以重复人类级别的决策过程, 尤其是在未受限的开放领域工作中.
近来, LLM 通过利用全面的训练数据集合和大量模型参数, 在实现类人智能方面展示出了巨大潜力. 与强化学习相比, 基于 LLM 的智能体有更全面的内在世界知识 (internal world knowledge), 让其即使在未针对特定领域训练的情况下, 也能做出更明智的决策. 基于 LLM 的智能体还可以通过自然语言与用户交互, 有更好的灵活性和可解释性.
Motivation#
在基于 LLM 的智能体研究方向, 研究人员开发了许多有前途的模型, 其指导思想是为 LLM 配备记忆, 计划等能力, 让它们具有近似人类的能力. 作者认为, 对过去这些独立提出的模型进行系统的总结有助于对它们的全面理解, 并有利于启发未来的研究.
Contributions:#
对于智能体构建, 本文重点关注两个问题:
- 如何设计智能体架构以更好利用 LLM: 作者提出了一个统一的智能体框架, 以涵盖过去的大部分研究.
- 如何激发和增强智能体完成不同任务的能力: 作者总结了常用的智能体获取能力的策略.
本文对基于 LLM 的智能体的现有研究进行了系统的回顾, 并聚焦于三个重要领域: 智能体的构建, 评估和分类法.
基于 LLM 的智能体构建#
为了让基于 LLM 的智能体高效执行不同的任务, 有两个重要方面值得注意:
- 应当采用何种智能体架构以更好使用 LLM (类似于确定网络结构)
- 给定设计架构, 如何让智能体习得执行特定任务的能力 (类似于习得网络参数)
智能体架构设计#
LLM 展现出的巨大潜力主要是在提问-回答形式下的, 这与构建智能体的目标相去甚远. 智能体需要的能力是扮演特定角色, 自主感知周围环境并从中学习, 并像人类一样据此进化. 为弥补这个差距, 一个关键角度是设计合理的智能体架构, 使得 LLM 能够最大限度发挥能力. 本节提出了一个统一的框架以总结这些模块, 包含档案模块, 记忆模块, 计划模块, 行动模块.
档案模块#
智能体在执行任务时常扮演特定角色 (如程序员, 老师, 特定领域专家). 档案模块根据具体应用场景指示智能体所扮演的角色, 藉此影响智能体的行为, 一般通过写入 prompt 实现. 智能体的档案通常包括年龄, 性别, 职业等基本信息, 反映智能体个性的心理信息, 以及具体指出智能体之间关系的社会信息.
在确认了档案类型后, 就需要为智能体创建特定的档案. 现有文献一般采取三种策略.
- 手工方法: 手动指定智能体档案, 如「你是一个外向的人」. 该方法被用在许多之前的工作中, 具有高度灵活性, 但在智能体数量较多时可能会导致工作量骤增.
- LLM 生成方法: 先给定档案的生成规则, 再阐明目标人群中智能体档案的组成和特性, (可选) 给定少量「种子档案」作为少样本实例, 最终利用 LLM 生成智能体所需要的档案. 该方法在智能体数量较多时可以省下大量时间, 但可能会缺少对档案的精确控制.
- 数据集对齐方法: 该方法中, 智能体档案从真实世界的数据集中获取. 在此方法中, 可以先将数据集中真实人类的信息组织成自然语言的 prompt, 再利用其得到智能体的档案.
大多数以前的工作都只选取了单一的档案生成策略, 但将其结合在一起或许会有额外的优势.
记忆模块#
记忆模块在智能体架构设计中非常重要. 它存储从环境中感知到的信息, 并利用这些信息帮助完成未来的行动. 记忆模块能帮助智能体积累经验, 自我进化, 行为更加一致, 合理, 高效. 作者在本节对记忆模块进行了全面的概述, 并聚焦于它的结构, 格式和操作.
记忆结构#
智能体的记忆结构模仿了人类记忆的短期记忆和长期记忆之分, 短期记忆类似于 transformer 架构限制下上下文窗口中输入的内容, 长期记忆类似于智能体可以快速存取的外部存储的向量.
具体实现一般包括一致记忆和混合记忆两种结构. 一致记忆可以充当短期记忆, 通常通过上下文学习实现, 记忆信息直接写入 prompt 中, 实现简单, 但很难将所有记忆都写入 prompt, 对 LLM 的窗口长度和处理上下文能力都要求较高, 可能会降低智能体的性能. 因此, 许多研究转向了混合记忆的方向.
混合记忆结构准确模仿了人类的短期记忆和长期记忆, 在短期记忆中缓存最近的感知, 在长期记忆中随时间巩固重要信息. 在实践中, 这种结构可以增强智能体的长期推理能力和积累经验的能力, 对在复杂环境中完成任务至关重要.
记忆格式#
- 自然语言: 使用自然语言直接描述记忆信息, 灵活易懂, 保留了丰富的语义信息.
- 嵌入 (Embedding): 将记忆信息编码为嵌入向量, 可以增强记忆检索和读取效率.
- 数据库: 记忆信息储存在如 SQL 的数据库中.
- 结构化列表: 记忆信息储存为列表, 可以高效简洁地传达记忆的语义.
记忆操作#
智能体与环境的交互通过三个关键记忆操作完成: 读取记忆, 写入记忆, 反思记忆.
- 读取记忆: 从记忆中提取有意义的信息, 增强智能体行为. 通常有新近度, 相关性, 重要性三个标准, 查询时需要选出综合评分最高的记忆.
- 写入记忆: 将感知到的环境信息储存在记忆中. 写入记忆需要解决两个潜在问题, 即如何处理重复记忆, 如何在达到存储限制时删除记忆. 为了处理重复记忆, 可以将与同一子目标先关的记忆存储在列表中, 在列表满时用 LLM 将其压缩为一个同一方案. 为了在记忆溢出时删除记忆, 可以根据用户命令显式删除, 也可以以 FIFO 方式覆盖等.
- 反思记忆: 该能力模仿人类自我评估能力设计, 旨在允许智能体将过去经验总结为更广泛抽象的观点, 为智能体提供独立总结和推断高级信息的能力.
计划模块#
智能体和传统 LLM 的一个重要区别是必须具有在动态环境中学习和完成任务的能力. 当面对复杂任务时, 人类倾向于将其解构为更简单的子任务并分开解决, 计划模块旨在赋予智能体类似的能力, 使智能体行为更合理可靠. 根据智能体能否在计划过程中获得反馈, 作者将过去的研究总结如下.
无反馈计划#
智能体行动后不会收到反馈. 代表性策略如下.
- 单路径推理: 最终任务被分解为几个级联的中间步骤, 每个步骤只影响一个后继步骤.
- 多路径推理: 生成最终计划的推理步骤被组织成树状结构, 每个中间步骤可以有多个后续步骤, 更类似人类思维.
- 外部计划器: 尽管 LLM 在零样本规划中表现出了出色的能力, 针对特定领域有效设计计划仍然十分困难. 为此, 研究人员采用了外部计划器, 通过高效的搜索算法快速识别正确计划.
- 反馈计划: 在一开始就生成一个完美的计划非常困难, 因此在需要长期规划以解决复杂任务的实际场景中, 常常采用反馈规划, 包括环境反馈, 人工反馈和模型反馈. 反馈计划的模块需要仔细设计, 但功能强大的多, 且对需要长期推理的任务效果出色.
行动模块#
行动模块负责将智能体的决策转化为具体的结果. 该模块直接与环境交互, 并受档案模块, 记忆模块和计划模块的影响. 本文从四个角度介绍行动模块, 分别是行动目标(行动的预期结果), 行动产出(行动是如何产生的), 行动空间(有哪些可用行动), 行动影响(行动的后果).
行动目标: 智能体可以为各种目的进行行动, 例如完成任务, 交流沟通, 探索环境等.
行动产出: 不同于普通 LLM 的输入和输出直接相关, 智能体可以根据不同的策略和来源采取行动. 常用的策略有通过记忆采取行动, 从智能体的记忆中提取信息生成行动, 如查找是否有与该任务相关的成功经验, 或通过计划采取行动, 智能体按预先生成的计划执行动作.
行动空间是智能体能采取的可能行动的集合, 一般分为外部工具和内在知识. 外部工具可以帮助解决需要全面专业知识领域的问题, 包括 API, 数据库, 知识库, 外部模型等. 许多智能体仅依靠 LLM 的内部知识指导其行为, 包括 LLM 的规划能力, 对话能力, 常识理解能力等.
行动影响指行动后果, 如环境变化, 改变智能体内部状态, 触发新行为等.
智能体能力获取#
仅仅依赖智能体架构的设计不足以让智能体有效完成任务, 因为智能体可能缺乏必要的能力, 技能和经验. 为此, 研究者设计了各种策略, 通常可按是否需要微调 LLM 分为两类.
通过微调获取能力#
简单明了的方法是根据基于任务的数据集微调 LLM, 所需数据集可以通过人工注释, LLM 生成, 使用真实世界的数据集等方法获取.
不经微调获取能力#
传统机器学习中, 模型能力主要通过从数据集中学习获得, 知识被编码到模型参数中. 对于 LLM 来说, 可以通过训练/微调模型参数或设计精确的 prompt 使模型获取能力, 即 prompt 工程师. 对智能体来说, 模型能力可以通过三种策略获得: 模型微调, prompt 工程师, 适当设计的智能体进化策略 (机制工程). 下面将介绍 prompt 工程和机制工程.
prompt 工程: LLM 拥有强大的语言理解能力, 因此人们可以直接使用自然语言描述所需功能, 并将其作为 LLM 的 prompt.
机制工程是一种增强智能体能力的独特策略, 下面将介绍几种具有代表性的机制工程方法.
- 试错: 智能体首先执行一个动作, 然后调用一个预先定义的批评者对其进行评价, 如果行动未能满足评价标准, 智能体会纳入批评者的反馈对此做出反应, 迭代完善以改进自己.
- 群体资源: 研究者设计了一种辩论机制, 让每个智能体对同一个问题分别给出答案, 如果它们的答案不一致, 它们就会在 prompt 的要求下纳入其他智能体给出的答案并给出新的回应, 如此迭代直到智能体达成共识. 在这个方法中, 所有智能体都可以通过理解和吸收其他智能体的意见得到能力增强.
- 经验积累: 智能体一旦成功完成任务, 就将该任务中执行的操作存储到记忆中, 在以后遇到类似任务时提取相关记忆完成当前任务. 在这个过程中, 智能体的能力提升来自于专门设计的内存积累和利用机制.
- 自驱动进化: 智能体可以自主为自己设定目标, 在和环境的交互中自主获取知识并发展能力, 即自我驱动的学习.
在比较了上述策略后, 作者发现, 微调方法通过调整模型参数来提高智能体能力, 可以纳入大量的特定任务知识, 但仅适用于开源的 LLM. 不进行微调的方法通常基于精细的 prompt 或机制工程来增强智能体能力, 可用于开源和闭源 LLM. 然而, 由于 LLM 输入上下文窗口的限制其难以包含过多的任务信息, 且 prompt 和机制的设计空间极大, 不易找到最优解.
基于 LLM 智能体应用#
基于 LLM 的智能体已经显示出影响多个领域的巨大潜力. 本节简要总结了过往的研究, 根据它们在三个不同领域的应用对其进行分类: 社会科学, 自然科学和工程学.
社会科学#
基于 LLM 的智能体可以通过其出色且类似人类的理解力, 思维能力和解决问题的能力促进该领域发展, 例如在心理学中提供心理健康支持, 在政治和经济学中帮助研究, 用于进行社会模拟, 用于在法理学中辅助法律决策过程, 在其他社会科学领域中作为多功能助手等.
自然科学#
基于 LLM 的智能体在自然科学中的应用也在逐渐普及, 例如进行文档和数据管理, 作为实验助手辅助研究, 进行自然科学教育等.
工程学#
基于 LLM 的智能体在协助和促进工程学研究及应用方面也表现出了巨大的潜力, 例如在土木工程中设计和优化复杂的结构, 在计算机科学和软件工程中帮助生成代码, 测试, 调试和生成文档, 在工业自动化领域实现智能规划与控制, 在机器人与具身人工智能领域增强其规划, 推理和合作能力等.
注意, 上述应用也可能带来风险和挑战. 一方面, LLM 本身容易受到幻觉和其他问题的影响, 可能会提供错误的结论, 另一方面, 基于 LLM 的智能体可能会被用于恶意目的. 因此, 实验过程中, 使用者需要具备足够的专业知识, 并实施足够的安全措施.
基于 LLM 的智能体评估#
本节概述了两种流行的评估方法: 主观评价和客观评价.
主观评价#
主观评价即基于人类判断衡量智能体能力, 适用于没有评估数据集或难以设计定量评价指标的场景, 一般有人工注释和图灵测试两种策略. 人工注释方法中, 评估者直接对智能体的输出进行评价, 图灵测试中, 评估者需要尝试区分智能体的输出和人类创建的内容, 以判断智能体能否在该任务中实现类似人类的性能.
基于 LLM 的代理通常旨在为人类服务, 因此主观评价起着至关重要的作用. 然而, 这种策略也面临着成本高, 效率低和人类偏见等问题, 因此, 越来越多的研究人员正在研究使用 LLM 本身作为进行主观评价, 以克服人类直接评价的局限性.
客观评价#
客观评价是指使用可以计算, 比较和追踪的定量指标评估能力. 为了进行客观评估, 有三个需要注意的方面, 即指标, 协议和基准.
理想的评估指标应该准确反映智能体的质量和使用者的感受. 具有代表性的指标包括任务成功指标, 人类相似性指标, 效率指标等.
协议是指如何利用指标进行评价, 常见协议有现实世界模拟, 社会评价 (与模拟社会中的智能体互动以评估能力), 多任务评价 (使用来自同一领域的不同任务测试智能体), 软件测试等.
基准是用于测试智能体的基准环境, 包括各种仿真环境, 交互平台等.
客观评价有利于定量分析智能体的能力, 客观评价基准和方法的持续进步将进一步推动对基于 LLM 智能体的开发和理解.
相关调查#
本文整理了 100 篇关于基于 LLM 智能体的相关著作, 涵盖其构建, 应用和评估过程.
挑战#
虽然相关工作已经取得了许多显著成果, 但该领域仍然处于起步阶段, 发展过程中有许多重大挑战需要解决.
角色扮演能力#
与传统 LLM 不同, 智能体通常必须扮演特定的角色来完成不同的任务, 故其角色扮演能力非常重要. 尽管 LLM 可以有效模拟许多常见角色, 但仍有许多角色和方面难以准确捕捉, 例如网络上很少讨论的角色和新出现的角色. 此外, 现有 LLM 无法很好地模拟人类的认知心理学特征, 导致对话场景中缺乏自我意识. 解决方案可能包括微调 LLM 或仔细设计 prompt 和架构, 以及设计定制的 prompt 和架构等. 然而, 由于 prompt 和架构的设计空间太大, 找到最优解并不容易.
广义人类对齐#
为了更好服务人类, LLM 通常会经过微调以符合人类价值观, 但当智能体被用于现实模拟中, 理想的模拟应该能诚实地描绘不同的人类特征, 包括负面特征. 因此, 基于智能体的模拟的一个重要问题是如何进行广义的人类对齐, 即针对不同的问题使智能体与不同的人类价值观进行对齐. 目前大多数 LLM 与人类的通用价值观保持一致, 因此, 一个方向是通过设计 prompt 重新调整这些模型.
Prompt 鲁棒性#
为确保智能体的行为合理, 设计者常常在 LLM 中嵌入补充模块, 如记忆和计划模块. 然而, 包含这些模块的智能体需要更复杂的 prompt 使其行为一致并能高效沟通. 先前的研究显示, LLM 缺乏鲁棒性, 微小的改变就可能产生截然不同的输出. 在构建智能体时, 这个问题更加突出, 因为智能体需要包含多个模块 prompt 的 prompt 框架, 且其中一个模块的 prompt 可能会影响其他模块, 不同 LLM 的 prompt 框架也可能存在很大差异. 开发适用于不同 LLM 的统一且稳定的 prompt 框架仍然是一项关键挑战, 潜在的解决方案包括通过试错手动创建基础 prompt 元素, 或用 GPT 自动生成 prompt.
幻觉#
幻觉是 LLM 的一个根本性挑战, 特点是 LLM 倾向于以高置信度产生虚假信息. 这一挑战也是智能体领域的一个重大问题, 可能导致严重后果. 为了缓解这个问题, 一个可能的方法是将人类的校正反馈直接纳入人机交互的迭代过程中.
知识边界#
基于 LLM 的智能体的一个关键应用在于模拟现实世界中的人类行为. 然而, 理想的模拟应该准确复制人类知识, 但 LLM 在接受大量互联网知识的训练后, 知识范围可能会远远超出普通人的能力, 这可能显著影响模拟的有效性. 为了构建效果足够好的智能体模拟环境, 一个重要的问题是如何约束模拟对象未知的知识不被 LLM 利用.
效率#
LLM 通常具有较慢的推理速度, 但智能体可能需要对每个行动都多次查询 LLM. 因此, 智能体的效率极大地受 LLM 推理速度影响.
Conclusion#
本文系统地总结了基于 LLM 的智能体领域的现有研究, 从构建, 应用和评估三个方面介绍和回顾了这些研究, 并提供了详细的分类法, 以建立现有研究之间的联系. 本文还提出了该领域的几个挑战, 这些挑战有望指导未来的潜在研究方向.