近期,基于大语言模型的智能体(LLM-based agent)在学术界和工业界中引起了广泛关注。与原始的大语言模型相比,基于大语言模型的智能体可以通过与环境的交互,实现自我进化,并解决更为复杂的任务。对于智能体而言,记忆机制是其中的重要部分,在与环境的交互中提供了关键支持。虽然此前有多项研究提出了记忆机制,但目前仍缺少一个系统性的综述来全面总结和比较这些工作,也缺少对记忆机制统一的框架设计与分析。
为了填补这一空白,我们对基于大语言模型的智能体的记忆机制进行了全面调研与归纳总结,发布了“大语言模型智能体记忆机制综述”。
在综述中,我们讨论了“什么是智能体的记忆”和“为什么智能体需要记忆”,总结回顾了“如何实现智能体的记忆”和“如何评测智能体的记忆能力”,归纳整理了“记忆增强的智能体应用”,并提出当前工作存在的局限性和未来方向。通过该综述,我们希望能够为研究者带来启发,推动大语言模型智能体领域的发展。
论文链接: https://arxiv.org/abs/2404.13501
Github: https://github.com/nuster1128/LLM_Agent_Memory_Survey
对于智能体的记忆,从记忆内容的来源出发,我们提出了狭义和广义两种记忆概念:
举例如下:
假设现在小明让智能体为他推荐一部电影,且他们通过对话来明确小明的观影兴趣,则对话内容是本次任务进行时的交互信息,即为智能体的狭义记忆。如果智能体此前为小明推荐过书籍,则小明的阅读兴趣会侧面反映他的观影兴趣,智能体可以对其进行总结,并作为该类推荐任务的经验;如果智能体需要从外部电影网站上获取一些知识,例如某个电影的导演和演员信息,则可以视为获取了与小明对话这一环境之外的信息,即外部知识,这两类信息与狭义记忆一起构成了广义上的智能体的记忆。
从记忆操作机制的角度,智能体的记忆模块通常需要实现
记忆写入
、
记忆管理
和
记忆读取
三个操作,这三部分支持了智能体与环境的长期交互,以及智能体的知识学习和决策进化。
在论文中,我们采用了符号化的定义,可详见原文。对于本文讨论的智能体记忆,我们通常采用广义概念。
为了更好地阐述记忆对智能体的重要性,我们从认知心理学、智能体的自我进化和智能体的应用三个角度进行讨论。
我们从记忆的来源、记忆的实现形式和记忆的操作三个角度,分别对现有的智能体记忆实现方法进行分类和讨论。
从记忆的来源角度出发,我们将现有工作分为Inside-trial Information, Cross-trial Information和External Knowledge三类来源,这种分类与上文中“广义记忆”的三部分记忆内容来源相对应。
-
Inside-trial Information
: 智能体在进行本次任务时与环境交互的历史信息。
-
Cross-trial Information
: 智能体在此前完成该类任务的历史经验信息。
-
External Knowledge
: 智能体在当前交互环境之外所获得的信息。
其中,前两种记忆都来源于与智能体交互的环境内部,需要智能体亲自参与到交互中来获得信息;而第三种记忆来源于当前交互环境之外,无需智能体参与到当前环境的交互中即可获得。
从记忆的实现形式角度出发,我们将现有工作分为文本形式(Textual Form)和参数形式(Parametric Form)两种实现形式,不同的形式有各自的实现方法。
总体上,目前多数记忆机制采用显式的文本形式,而参数形式的记忆仍在探索中。但两种记忆机制的实现形式有各自的优缺点,适用于不同的场景。
从记忆的操作角度出发,我们将现有工作按照记忆写入(Memory Writing)、记忆管理(Memory Management)和记忆读取(Memory Reading)三个重要操作进行总结。
-
记忆写入
:智能体将重要的信息写入记忆存储,作为未来的推理和决策依据。在记忆写入时,既可以写入原始信息,也可以对其进行总结提取,或同时记录辅助信息。
-
记忆管理
:智能体将写入的记忆进行管理与加工,例如
记忆合并
、
记忆反思
和
记忆遗忘
。
-
记忆读取
:智能体在决策时可以使用此前存储的相关记忆信息,来为决策提供更多信息与知识。
在智能体与环境的交互中,记忆的写入、管理和读取三者相互联系,相互影响,共同参与交互过程。
我们将智能体记忆机制的评测分为直接评测(Direct Evaluation)和间接评测(Indirect Evaluation)两类。
直接评测能够更直接地得到记忆机制的性能,而间接评测则可以锚定特定场景中的记忆性能,两者都有各自适用的情景。