近期,基于大语言模型的智能体(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)两类。
直接评测能够更直接地得到记忆机制的性能,而间接评测则可以锚定特定场景中的记忆性能,两者都有各自适用的情景。
记忆推动了智能体在各领域中的应用,而在各个应用场景中,记忆所承担的功能也各不相同。
角色扮演与社会模拟(Role-play and Social Simulation):在角色扮演和社会模拟中,记忆赋予了智能体不同的人格和自我感知,使他们能够按照人设执行动作,从而区分于其他的智能体角色。基于不同的人格,它们可以进一步交互形成模拟社会。
个人助理(Personal Assistant):在个人助理中,记忆赋予了智能体记忆用户习惯和个性化需求的能力,使智能体能够提供个性化的帮助。此外,记忆可以基于上下文,帮助智能体更好地理解当前用户的需求。
开放世界游戏(Open-world Game):在开放游戏世界中,记忆赋予了智能体总结回顾过往经验的能力,从而用于智能体的后续探索。另外,来自外部信息的记忆可以为智能体提供更丰富的知识,提升其探索能力。
代码生成(Code Generation):在代码生成和软件开发中,记忆赋予了智能体更丰富的开发知识。此外,借助过往记忆,智能体可以生成风格更加一致的代码,同时有利于基于上下文进行需求澄清。
推荐系统(Recommendation):在推荐系统中,记忆赋予了智能体捕捉和维护用户个性化信息的能力,使它能够更深入地理解用户的个性化需求,从而提供更符合用户需求的推荐结果。
领域专家系统(Expert System in Specific Domains):在领域专家系统中,记忆赋予了智能体丰富的领域知识。此外,记忆有利于提升知识的时效性,克服知识过时的问题。
在各个应用中,记忆机制在不同的方面实现了智能体在任务中的必要功能,增强了智能体完成的任务能力。
最后,我们进一步讨论了当前智能体记忆机制工作的局限性和未来方向,包括参数化记忆机制、多智能体记忆机制、记忆机制与终身学习和类人智能体(Humanoid agent)的记忆机制。
在本文中,我们讨论了大语言模型智能体的记忆机制,包括“什么是智能体的记忆”、“为什么智能体需要记忆”、”如何实现智能体的记忆“、”如何评测智能体的记忆能力“、”记忆增强的智能体应用“以及当前存在的局限性和未来方向。我们希望该综述能够为研究者提供启发和借鉴,推动大语言模型智能体记忆领域的发展。未来,我们将会对大语言模型智能体的记忆机制进行更加深入的研究。
如果您对该综述有问题或建议,欢迎通过邮件联系我们!