知识模块
🤖 Agent 知识模块
章节首页

Agent 记忆系统

Agent 记忆系统是赋予智能体"状态"和"连续性"的核心组件。没有记忆,Agent 只能处理孤立的请求,无法积累经验、保持上下文连贯或实现个性化交互。


一、为什么 Agent 需要记忆系统?

1.1 记忆系统的必要性

Agent 面临的核心挑战:

挑战无记忆时的表现有记忆后的改善
上下文连贯每次对话都是全新的,无法理解指代保持多轮对话连贯性
知识积累无法保留学到的新信息持久化存储重要知识
个性化服务无法记住用户偏好根据用户历史提供定制服务
任务连续性长任务中断后无法恢复保存中间状态,支持断点续传
经验复用重复犯同样的错误从历史中学习,避免重复错误

1.2 记忆系统的演进

┌─────────────────────────────────────────────────────────────┐
│                    Agent 记忆系统演进历程                    │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  2022          2023          2024          2025            │
│    │             │             │             │              │
│    ↓             ↓             ↓             ↓              │
│ ┌──────┐    ┌────────┐    ┌────────┐    ┌────────┐         │
│ │单一  │ ─→ │分层    │ ─→ │智能    │ ─→ │自适应  │         │
│ │Context│    │记忆    │    │检索    │    │记忆    │         │
│ └──────┘    └────────┘    └────────┘    └────────┘         │
│                                                             │
│ 仅依赖LLM    短期+长期    RAG检索增强    动态压缩          │
│ 上下文窗口   向量数据库    混合检索策略   智能遗忘          │
│                                                             │
│ 简单对话     多轮对话     知识密集型     长期交互          │
│ 无状态服务   有状态Agent  企业级应用     个性化Agent        │
│                                                             │
└─────────────────────────────────────────────────────────────┘

二、记忆系统分类

2.1 三层记忆模型

Agent 记忆系统借鉴人类认知心理学,分为三类:

┌─────────────────────────────────────────────────────────────┐
│                    Agent 三层记忆模型                        │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│                    ┌─────────────────┐                      │
│                    │     用户输入     │                      │
│                    └────────┬────────┘                      │
│                             │                               │
│                             ↓                               │
│  ┌──────────────────────────────────────────────────────┐  │
│  │                    工作记忆                           │  │
│  │              Working Memory (推理中)                  │  │
│  │  ┌─────────────────────────────────────────────────┐ │  │
│  │  │  • 当前推理过程中的临时"草稿纸"                   │ │  │
│  │  │  • 存储:内存变量、Scratchpad                    │ │  │
│  │  │  • 生命周期:单次任务执行期间                     │ │  │
│  │  │  • 示例:ReAct 中的 Thought/Observation          │ │  │
│  │  └─────────────────────────────────────────────────┘ │  │
│  └──────────────────────┬───────────────────────────────┘  │
│                         │                                  │
│                         ↓                                  │
│  ┌──────────────────────────────────────────────────────┐  │
│  │                    短期记忆                           │  │
│  │            Short-Term Memory (上下文窗口)             │  │
│  │  ┌─────────────────────────────────────────────────┐ │  │
│  │  │  • 当前对话的上下文窗口                           │ │  │
│  │  │  • 存储:LLM Context Window                      │ │  │
│  │  │  • 生命周期:会话期间                             │ │  │
│  │  │  • 示例:最近 N 轮对话、系统提示词                │ │  │
│  │  └─────────────────────────────────────────────────┘ │  │
│  └──────────────────────┬───────────────────────────────┘  │
│                         │                                  │
│                         │ (定期归档)                        │
│                         ↓                                  │
│  ┌──────────────────────────────────────────────────────┐  │
│  │                    长期记忆                           │  │
│  │           Long-Term Memory (持久化存储)               │  │
│  │  ┌─────────────────────────────────────────────────┐ │  │
│  │  │  • 持久化存储的历史信息                           │ │  │
│  │  │  • 存储:向量库、关系型数据库                     │ │  │
│  │  │  • 生命周期:永久                                 │ │  │
│  │  │  • 示例:用户偏好、历史知识库、任务状态            │ │  │
│  │  └─────────────────────────────────────────────────┘ │  │
│  └──────────────────────────────────────────────────────┘  │
│                                                             │
└─────────────────────────────────────────────────────────────┘

2.2 记忆类型对比

记忆类型定义存储介质生命周期典型应用场景
短期记忆当前对话的上下文窗口LLM Context Window会话期间多轮对话连贯性、指代消解
长期记忆持久化存储的历史信息向量库、关系型数据库永久用户偏好、历史知识库、任务状态
工作记忆当前推理过程中的临时"草稿纸"内存变量、Scratchpad单次任务执行期间ReAct框架中的Thought/Observation

三、核心组件概览

3.1 记忆系统架构

┌─────────────────────────────────────────────────────────────────────┐
│                    Agent 记忆系统完整架构                            │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  ┌─────────────┐    ┌─────────────┐    ┌─────────────┐            │
│  │  用户输入   │ ─→ │  感知层     │ ─→ │  记忆写入   │            │
│  └─────────────┘    └─────────────┘    └──────┬──────┘            │
│                                               │                     │
│         ┌─────────────────────────────────────┼────────────────┐   │
│         │                                     │                │   │
│         ↓                                     ↓                │   │
│  ┌─────────────┐                      ┌─────────────┐          │   │
│  │  短期记忆   │ ←─────────────────── │  记忆检索   │          │   │
│  │  Context    │                      │  Retrieval  │          │   │
│  └──────┬──────┘                      └──────┬──────┘          │   │
│         │                                    │                  │   │
│         │              ┌─────────────────────┼──────────────┐   │   │
│         │              │                     │              │   │   │
│         ↓              ↓                     ↓              │   │   │
│  ┌───────────────────────────┐       ┌─────────────┐        │   │   │
│  │      上下文组装           │       │  长期记忆   │        │   │   │
│  │    Context Assembly       │       │  Vector DB  │        │   │   │
│  └───────────┬───────────────┘       └─────────────┘        │   │   │
│              │                                               │   │   │
│              ↓                                               │   │   │
│  ┌───────────────────────────┐       ┌─────────────┐        │   │   │
│  │         LLM 推理          │ ←──── │  工作记忆   │        │   │   │
│  └───────────────────────────┘       └─────────────┘        │   │   │
│                                                               │   │   │
│         ┌────────────────────────────────────────────────────┘   │   │
│         │                                                        │   │
│         ↓                                                        │   │
│  ┌─────────────┐    ┌─────────────┐    ┌─────────────┐          │   │
│  │  记忆压缩   │ ─→ │  记忆更新   │ ─→ │  记忆遗忘   │          │   │
│  └─────────────┘    └─────────────┘    └─────────────┘          │   │
│                                                                   │   │
│                    【记忆管理层】                                  │   │
│                                                                   │   │
└───────────────────────────────────────────────────────────────────┘ │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

3.2 核心功能模块

模块功能关键技术
记忆存储不同类型记忆的持久化向量数据库、关系数据库、内存缓存
记忆检索根据查询召回相关记忆语义检索、关键词检索、混合检索
记忆压缩减少记忆占用空间摘要生成、关键信息提取
记忆更新保持记忆的时效性冲突检测、增量更新
记忆遗忘清理无效或过时记忆TTL 过期、LRU 淘汰、重要性评分

四、存储技术选型

4.1 技术对比

存储技术代表产品优势劣势适用记忆类型
向量数据库Milvus, Pinecone, Chroma, Weaviate支持语义相似度检索不支持复杂关系查询长期记忆(非结构化文本)
关系型数据库PostgreSQL, MySQL, SQLite支持复杂查询、事务无法直接进行语义检索长期记忆(用户画像、任务状态)
文件系统/键值对JSON, Redis, Pickle读写速度极快难以扩展,无查询能力短期记忆、缓存、配置

4.2 选型决策树

┌─────────────────────────────────────────────────────────────┐
│                    存储技术选型决策树                        │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│                      ┌─────────────┐                        │
│                      │ 需要语义检索 │                        │
│                      └──────┬──────┘                        │
│                             │                               │
│              ┌──────────────┴──────────────┐               │
│              ↓                              ↓               │
│         ┌─────────┐                   ┌─────────┐          │
│         │   是    │                   │    否   │          │
│         └────┬────┘                   └────┬────┘          │
│              │                              │               │
│              ↓                              ↓               │
│     ┌───────────────┐              ┌───────────────┐       │
│     │  向量数据库    │              │ 需要复杂查询? │       │
│     │  Chroma/Milvus│              └───────┬───────┘       │
│     └───────────────┘                      │               │
│                               ┌────────────┴────────────┐  │
│                               ↓                          ↓  │
│                          ┌─────────┐              ┌─────────┐│
│                          │   是    │              │    否   ││
│                          └────┬────┘              └────┬────┘│
│                               │                         │     │
│                               ↓                         ↓     │
│                     ┌───────────────┐          ┌───────────┐  │
│                     │ 关系型数据库   │          │ Redis/JSON│  │
│                     │ PostgreSQL    │          │ 文件缓存  │  │
│                     └───────────────┘          └───────────┘  │
│                                                             │
└─────────────────────────────────────────────────────────────┘

五、章节内容导航


六、学习建议

6.1 学习路径

入门 → 记忆系统概述(理解三层记忆模型)

基础 → 短期记忆(掌握 Context Window 管理)

进阶 → 长期记忆(学习向量数据库使用)

深入 → 记忆检索(掌握 RAG 和混合检索)

高级 → 记忆压缩与管理(优化记忆系统性能)

6.2 实践建议

阶段实践内容预期收获
入门理解三层记忆模型的区别建立记忆系统整体认知
基础实现多轮对话的上下文管理掌握短期记忆使用
进阶使用 Chroma 构建向量记忆掌握长期记忆存储
深入实现 RAG 检索增强提升记忆检索准确性
高级添加记忆压缩和遗忘机制优化记忆系统性能

七、总结

概念一句话总结面试关键词
记忆系统Agent 的"大脑存储",赋予状态和连续性短期记忆、长期记忆、工作记忆
三层模型短期对话、长期存储、工作推理三种记忆Context Window、向量数据库
存储选型根据检索需求选择向量库或关系数据库Chroma、Milvus、PostgreSQL
检索策略语义+关键词混合检索,RAG 是主流语义检索、混合检索、RAG
记忆管理压缩摘要、遗忘机制、优先级管理记忆压缩、TTL、LRU

一句话总结:Agent 记忆系统分为短期、长期、工作三层,通过合理的存储选型、检索策略和管理机制,实现智能体的状态保持和知识积累。


最后更新:2026年3月18日