如何设计一个LLM智能体,使其能够自主决定将哪些信息存入长时记忆、哪些保留在短时上下文中、哪些丢弃,而无需手动调整的启发式规则或额外的控制器?一个单一的策略能否通过学习,像生成文本一样,通过相同的动作空间来管理这两种记忆类型?
阿里巴巴集团与武汉大学的研究人员提出了Agentic Memory(AgeMem)框架。该框架让大型语言模型(LLM)智能体学习如何将长时记忆和短时记忆的管理作为单一策略的一部分。智能体无需依赖手写规则或外部控制器,而是使用集成到模型动作空间中的记忆工具,自行决定何时存储、检索、总结和遗忘信息。
当前LLM智能体在记忆方面面临的挑战大多数智能体框架将记忆视为两个松散耦合的系统。
长时记忆存储用户画像、任务信息和跨会话的先前交互。
短时记忆是当前的上下文窗口,包含活跃的对话和检索到的文档。
现有系统通常孤立地设计这两个部分。长时记忆通过外部存储(如向量数据库)处理,使用简单的添加和检索触发器。短时记忆则通过检索增强生成、滑动窗口或总结计划来管理。
这种分离带来了几个问题:
长时记忆和短时记忆被独立优化,它们的交互没有经过端到端的训练。
启发式规则决定何时写入记忆和何时总结。这些规则是脆弱的,可能会错过罕见但重要的事件。
额外的控制器或专家模型增加了成本和系统复杂性。
AgeMem移除了外部控制器,将记忆操作融入智能体策略本身。
作为智能体动作空间工具的记忆在AgeMem中,记忆操作被暴露为工具。在每个步骤,模型可以生成普通的文本标记,也可以发出工具调用。该框架定义了6种工具。
针对长时记忆:
ADD:存储带有内容和元数据的新记忆项。
UPDATE:修改现有的记忆条目。
DELETE:移除过时或低价值的项目。
针对短时记忆:
RETRIEVE:对长时记忆执行语义搜索,并将检索到的项目注入当前上下文。
SUMMARY:将对话片段压缩成更短的摘要。
FILTER:移除对未来推理无用的上下文片段。
交互协议采用结构化格式。每个步骤以一个 `<think>` 块开始,模型在此进行内部推理。然后,模型要么发出一个包含工具调用JSON列表的 `<tool_call>` 块,要么发出一个包含面向用户响应的 `<answer>` 块。因此,记忆操作是一等决策,而非副作用。
用于统一记忆的三阶段强化学习AgeMem通过强化学习进行训练,以耦合长时记忆和短时记忆的行为。
时间t的状态包括当前对话上下文、长时记忆存储和任务规范。策略选择生成一个标记或一个工具调用作为动作。每个样本的训练轨迹分为3个阶段:
1. 阶段一:长时记忆构建
智能体在非正式环境中交互,观察后续将变得相关的信息。它使用 ADD、UPDATE 和 DELETE 来构建和维护长时记忆。短时上下文在此阶段自然增长。
2. 阶段二:干扰下的短时记忆控制
短时上下文被重置。长时记忆保持不变。智能体现在接收到相关但非必要的干扰内容。它必须使用 SUMMARY 和 FILTER 来管理短时记忆,以保留有用内容并去除噪声。
3. 阶段三:综合推理
最终查询到达。智能体使用 RETRIEVE 从长时记忆中检索信息,控制短时上下文,并生成答案。
关键细节在于,长时记忆在所有阶段持续存在,而短时记忆在阶段之间被清除。