Agent Memory 技术方案速览

272 阅读5分钟

在 Agent 开发中,Memory 管理是一项很重要的技术,它不仅关系到 Agent 的性能表现,还直接影响到用户体验和系统资源的有效利用。有效的内存管理能够帮助 Agent 更加高效地处理任务,减少不必要的资源消耗,并提高系统的稳定性和响应速度。下面我们学习了解下目前几种比较常见的 Memory 管理方法,以及各自的优缺点和适用场景。


1. 顺序记忆(Sequential Memory)

  • 核心思想:保留所有内容。存储整个对话历史。
  • 工作原理:将每条用户和AI消息追加到一个不断增长的列表中。
  • 优点:完美回忆,实现简单。
  • 缺点:极高的token成本,快速达到上下文限制,速度慢。
  • 适用场景:简短演示、简单机器人、调试。

2. 滑动窗口记忆(Sliding Window Memory)

  • 核心思想:仅保留最近的'N'轮对话。
  • 工作原理:使用固定大小的队列(deque)。添加新消息时,最旧的消息自动丢弃。
  • 优点:固定且可预测的token成本,速度快,易于管理。
  • 缺点:忘记窗口外的所有信息,导致"上下文悬崖"。
  • 适用场景:通用聊天机器人,其中最近的上下文最重要。

3. 摘要记忆(Summarization Memory)

  • 核心思想:定期创建对话的运行摘要。
  • 工作原理:使用LLM将先前的摘要与缓冲区中的最近消息结合起来。
  • 优点:平衡上下文保留和token成本,保持对话流畅。
  • 缺点:在摘要过程中可能丢失细节,额外的LLM调用增加成本和延迟。
  • 适用场景:长时间、创造性的对话、讲故事或头脑风暴代理。

4. 基于检索的记忆(Retrieval-Based Memory, RAG)

  • 核心思想:将对话轮次存储为可搜索文档,仅检索最相关的部分。
  • 工作原理:嵌入每条消息并将其存储在向量数据库(如FAISS)中。在新查询时,执行相似性搜索以找到最相关的过去消息作为上下文。
  • 优点:token使用高效,特别适合回忆特定事实,可扩展。
  • 缺点:设置复杂(嵌入模型、向量数据库),检索质量至关重要。
  • 适用场景:问答机器人、基于知识的代理、现代生产AI系统。

5. 记忆增强变换器(Memory-Augmented Transformers)

  • 核心思想:使用双记忆系统:短期窗口用于最近聊天,长期存储用于关键事实。
  • 工作原理:LLM充当"事实提取器",在每一轮创建简洁的"记忆令牌"(如"用户对花生过敏"),这些令牌被永久存储。
  • 优点:在保留关键信息方面表现出色,抗上下文丢失能力强。
  • 缺点:由于额外的事实提取LLM调用,计算成本高。
  • 适用场景:可靠的个人助手,必须遵守严格规则或用户偏好的代理。

6. 分层记忆(Hierarchical Memory)

  • 核心思想:模仿人类记忆,分为短期(工作)和长期(检索)层。
  • 工作原理:所有消息进入滑动窗口(工作记忆)。如果消息包含关键词(如"记住"、"规则"),则被"提升"到长期检索记忆。
  • 优点:平衡速度和深度回忆,架构直观。
  • 缺点:提升逻辑可能过于简单(关键词)或成本高(基于LLM)。
  • 适用场景:处理随意聊天和重要事实的复杂代理。

7. 基于图的记忆(Graph-Based Memory)

  • 核心思想:将信息存储为实体和关系的知识图。
  • 工作原理:使用LLM从文本中提取(主语、关系、宾语)三元组。将这些作为节点和边添加到图数据库(如networkx)。
  • 优点:在推理连接方面无与伦比,可以回答复杂的多跳问题。
  • 缺点:实现和维护非常复杂,提取可能容易出错。
  • 适用场景:专家系统、领域特定知识库、推荐引擎。

8. 压缩与合并记忆(Compression & Consolidation Memory)

  • 核心思想:将每一轮对话压缩为密集的事实陈述,去除所有"冗余"。
  • 工作原理:在每一轮后,使用带有特定提示的LLM充当"数据压缩器",将交互重写为单个简洁的事实。
  • 优点:token效率极高,非常适合在有限预算下回忆事实。
  • 缺点:失去所有对话细节、个性和流畅性。
  • 适用场景:仅核心事实重要的任务导向机器人(如会议记录、规划)。

9. 类操作系统内存管理(OS-Like Memory Management)

  • 核心思想:模拟计算机内存,分为快速"RAM"(活动上下文)和慢速"磁盘"(被动存储)。
  • 工作原理:最近的轮次保存在小的活动缓冲区("RAM")中。当满时,最旧的轮次被"换出"到被动存储。如果查询需要旧信息,则发生"页面错误",数据被"换入"到上下文中。
  • 优点:概念强大,允许几乎无限的内存,同时保持活动上下文小。
  • 缺点:管理两层复杂,"换入"如果未优化可能很慢。
  • 适用场景:对话持续数天或数周的长时间运行代理。

总结表

方法实现复杂度Token成本回忆质量最佳适用场景
顺序记忆非常低非常高完美(直到限制)演示、简短聊天
滑动窗口差(对于旧信息)通用聊天机器人
摘要好(可能丢失细节)创造性/长时间对话
基于检索(RAG)优秀(针对特定内容)问答、专家代理
记忆增强优秀(针对关键事实)可靠的个人助手
分层中-高非常好(分层)复杂的多任务代理
基于图非常高优秀(针对关系)基于知识的系统
压缩好(事实,无细节)任务导向、事实型机器人
类操作系统非常高低-中非常好(如果分页正确)长时间运行的代理

后续有时间继续深入介绍一些主流产品和应用场景

参考链接:

medium.com/@fareedkhan…