LLM 记忆系统知识体系全图
🧠 LLM 记忆系统知识体系全图
Section titled “🧠 LLM 记忆系统知识体系全图”从短期记忆到长期记忆,从 RAG 到知识图谱——一图梳理 LLM 记忆系统的完整知识体系。
LLM 记忆系统├── 📋 记忆分类│ ├── 🔄 短期记忆(Context Window)│ └── 💾 长期记忆(External Memory)├── 🏗️ 架构范式│ ├── 🔍 检索增强生成(RAG)│ ├── 📊 向量数据库│ ├── 🕸️ 知识图谱│ ├── 📝 逐字/日志存储│ └── 🧩 混合架构├── ⚙️ 关键技术│ ├── 🎯 向量化(Embedding)│ ├── 🔎 检索策略│ ├── ✍️ 写入策略│ ├── ⏰ 唤醒/遗忘策略│ └── 🔄 记忆压缩与抽象├── 🏛️ 代表性系统│ ├── Mem0│ ├── MemPalace│ ├── OpenClaw Memory│ ├── Letta (MemGPT)│ └── LangChain Memory├── 📏 评估方法│ ├── 基准测试(Benchmarks)│ └── 评估维度└── 🚀 未来方向一、📋 记忆分类
Section titled “一、📋 记忆分类”🔄 短期记忆(Working Memory / Context Window)
Section titled “🔄 短期记忆(Working Memory / Context Window)”LLM 的”工作记忆”,即上下文窗口内的信息。
短期记忆├── 📌 定义:当前对话上下文窗口中保持的信息,会话结束即消失├── 📐 容量限制:受模型上下文长度约束(8K ~ 1M+ tokens)├── 📝 典型实现:│ ├── 直接拼接对话历史│ ├── 滑动窗口截断旧消息│ ├── 摘要压缩(将旧对话压缩为摘要)│ └── Token 桶管理(优先保留关键信息)└── ⚠️ 局限:无法跨会话、无法累积学习、信息密度低💾 长期记忆(Long-term Memory / External Memory)
Section titled “💾 长期记忆(Long-term Memory / External Memory)”持久化存储在外部系统中的结构化或非结构化信息,可跨会话使用。
长期记忆├── 📌 定义:持久化存储的用户偏好、经历、知识,可跨会话检索├── 🏗️ 存储形态:│ ├── 向量库(语义检索)│ ├── 键值存储(精确查找)│ ├── 知识图谱(关系推理)│ ├── 文件系统(日志/快照)│ └── 混合存储(多种形态组合)├── 🎯 核心能力:读(检索)+ 写(记忆)+ 忘(遗忘)+ 更新└── 🔑 关键挑战:什么时候记?记什么?怎么记?怎么忘?📊 短期 vs 长期记忆对比
Section titled “📊 短期 vs 长期记忆对比”| 维度 | 短期记忆 | 长期记忆 |
|---|---|---|
| 持久性 | 会话结束即消失 | 持久化存储 |
| 容量 | 受上下文窗口限制 | 理论上无限 |
| 访问方式 | 直接可见 | 需要检索 |
| 信息精度 | 逐字逐句 | 语义级别 |
| 成本 | 占用 context tokens | 存储和检索成本 |
| 类比 | 人的”注意力” | 人的”记忆” |
二、🏗️ 架构范式
Section titled “二、🏗️ 架构范式”🔍 检索增强生成(RAG)
Section titled “🔍 检索增强生成(RAG)”RAG 架构├── 📌 核心思想:从外部知识库检索相关片段,注入 prompt 辅助生成├── 📊 流程:│ 用户查询 → Embedding → 向量检索 → 上下文拼接 → LLM 生成├── ✅ 优势:实现简单、效果稳定、无需训练├── ❌ 局限:检索质量依赖 embedding 和分块策略、缺乏推理能力└── 🔄 变体: ├── Naive RAG(基础检索) ├── Advanced RAG(查询改写、重排序、多跳检索) └── Modular RAG(路由、微调、自适应检索)📊 向量数据库(Vector DB)
Section titled “📊 向量数据库(Vector DB)”向量数据库├── 📌 以高维向量表示记忆片段,通过相似度检索访问├── 🏗️ 主流方案:│ ├── 🟢 云原生:Pinecone、Weaviate、Zilliz│ ├── 🟡 自托管:Milvus、Qdrant、Chroma│ └── 🔵 轻量嵌入:sqlite-vec、FAISS(本地文件)├── 🔑 关键参数:维度、距离度量(余弦/欧氏/内积)、索引类型└── ⚡ 检索方式:ANN 近似最近邻(HNSW、IVF、PQ)🕸️ 知识图谱(Knowledge Graph)
Section titled “🕸️ 知识图谱(Knowledge Graph)”知识图谱记忆├── 📌 以实体-关系-实体的三元组结构存储记忆,支持推理├── 🏗️ 构建方式:│ ├── LLM 自动抽取(从对话中提取实体和关系)│ ├── 人工定义 schema│ └── 混合方式(schema 引导 + 自动抽取)├── ✅ 优势:结构清晰、支持多跳推理、关系显式化├── ❌ 局限:构建成本高、schema 设计困难、灵活性低└── 🛠️ 工具:Neo4j、LightRAG、GraphRAG、Microsoft GraphRAG📝 逐字/日志存储(Verbatim / Journal Storage)
Section titled “📝 逐字/日志存储(Verbatim / Journal Storage)”日志存储├── 📌 原样保存对话记录和事件日志,配合搜索索引访问├── 📊 典型实现:│ ├── JSONL 日志文件(每条消息一行)│ ├── Markdown 日记(每日笔记)│ └── SQLite 全文检索├── ✅ 优势:信息无损、实现极简、调试友好├── ❌ 局限:检索效率低、语义理解弱└── 💡 适用场景:对话回放、审计、混合架构的底层存储🧩 混合架构(Hybrid Architecture)
Section titled “🧩 混合架构(Hybrid Architecture)”混合记忆架构├── 📌 结合多种存储形态,取长补短├── 🏗️ 典型组合:│ ├── 向量库 + 知识图谱(语义检索 + 关系推理)│ ├── 向量库 + 关键词搜索(语义 + 精确匹配)│ ├── 日志存储 + 向量索引(原始数据 + 语义访问)│ └── 分层记忆(工作记忆 + 情景记忆 + 语义记忆)├── 🌟 代表:│ └── OpenClaw Memory(MEMORY.md 长期记忆 + 向量检索 + 日志存储)└── 🔑 设计原则:根据访问模式选择存储,而非一刀切三、⚙️ 关键技术
Section titled “三、⚙️ 关键技术”🎯 向量化(Embedding)
Section titled “🎯 向量化(Embedding)”Embedding 技术├── 📌 将文本映射到高维向量空间,语义相近的文本距离更近├── 📊 主流模型:│ ├── OpenAI:text-embedding-3-small/large│ ├── 开源:bge-m3、gte-qwen2、nomic-embed-text│ ├── 多模态:CLIP(图文联合嵌入)│ └── 领域微调:针对特定场景 fine-tuned 的嵌入模型├── 🔑 关键考量:维度 vs 精度 vs 成本 vs 延迟└── 📐 分块策略(Chunking): ├── 固定长度分块 ├── 语义分块(按句子/段落边界) └── 递归分块(分层拆分)🔎 检索策略
Section titled “🔎 检索策略”检索策略├── 📊 单路检索:│ ├── 向量相似度检索(ANN)│ ├── BM25 关键词检索│ └── 全文检索(FTS)├── 🔄 多路混合检索:│ ├── 向量 + 关键词(Reciprocal Rank Fusion)│ ├── 向量 + 知识图谱│ └── 多查询扩展(Query Expansion)├── 🎯 高级检索:│ ├── 查询改写(Query Rewriting)│ ├── HyDE(假设性文档嵌入)│ ├── 重排序(Reranking:Cohere/bge-reranker)│ └── 多跳检索(Multi-hop Retrieval)└── 📏 过滤条件:时间范围、来源、标签、元数据✍️ 写入策略(Memory Writing)
Section titled “✍️ 写入策略(Memory Writing)”写入策略├── 📌 决定"什么时候写、写什么、怎么写"├── 🕐 触发时机:│ ├── 实时写入(每条消息后)│ ├── 批量写入(会话结束后摘要)│ ├── 定时写入(cron 周期性整理)│ └── 事件驱动(用户明确要求"记住这个")├── 📝 写入内容:│ ├── 原文存储(逐字记录)│ ├── 摘要提取(LLM 压缩为要点)│ ├── 事实抽取(实体、偏好、决策)│ └── 教训记录(错误纠正、经验总结)└── 🔄 去重与合并:避免重复记忆、合并相似信息⏰ 唤醒与遗忘策略
Section titled “⏰ 唤醒与遗忘策略”唤醒与遗忘├── ⏰ 唤醒策略(什么时候想起记忆):│ ├── 语义相似度触发(用户消息匹配记忆)│ ├── 时间触发(定时检查、周期回顾)│ ├── 事件触发(特定场景/关键词)│ └── 主动回忆(空闲时整理近期记忆)├── 🗑️ 遗忘策略(什么时候删除记忆):│ ├── TTL 过期(时间衰减)│ ├── 访问频率衰减(久不访问的淡忘)│ ├── 冲突覆盖(新信息替代旧信息)│ ├── 用户主动删除│ └── 归档(冷热分层,不删但降优先级)└── 🎯 目标:像人类一样——重要的记得牢,琐碎的自然忘记🔄 记忆压缩与抽象
Section titled “🔄 记忆压缩与抽象”记忆压缩├── 📌 将大量原始记忆压缩为精炼的知识├── 📊 压缩方式:│ ├── 对话摘要(长对话 → 几句话)│ ├── 事实抽取(对话 → 结构化事实)│ ├── 主题聚类(相似记忆合并)│ ├── 层级抽象(细节 → 概括 → 原则)│ └── 记忆蒸馏(从日志提炼到长期记忆文件)├── 🌟 代表模式:│ └── OpenClaw:每日笔记 → MEMORY.md(原始日志精选为长期记忆)└── ⚖️ 权衡:压缩越多越节省空间,但丢失细节越多四、🏛️ 代表性系统
Section titled “四、🏛️ 代表性系统”🏛️ 系统全景对比
Section titled “🏛️ 系统全景对比”| 系统 | 核心特点 | 记忆类型 | 开源 |
|---|---|---|---|
| Mem0 | 自动记忆提取、用户/会话/Agent 分层 | 向量 + 结构化 | ✅ |
| MemPalace | 记忆宫殿隐喻、分层记忆管理 | 多层抽象 | ✅ |
| OpenClaw Memory | 文件即记忆 + 向量检索 + 摘要蒸馏 | 混合 | ✅ |
| Letta (MemGPT) | 虚拟上下文管理、OS 风格内存分页 | 分层 + 向量 | ✅ |
| LangChain Memory | 多种记忆后端、与 LLM Chain 深度集成 | 可插拔 | ✅ |
| Khoj | 个人 AI 助手、自动记忆 + 搜索 | 混合 | ✅ |
| Zep | 长期对话记忆服务 | 向量 + 摘要 | ✅ |
Mem0├── 📌 面向 AI 应用的记忆层,自动从交互中提取和管理记忆├── 🏗️ 核心架构:│ ├── 记忆提取(LLM 自动识别值得记忆的信息)│ ├── 记忆存储(向量库 + 图数据库)│ ├── 记忆检索(语义搜索 + 过滤)│ └── 记忆更新(冲突解决、增量更新)├── 👤 分层管理:用户记忆、会话记忆、Agent 记忆├── 🔗 集成:OpenAI、LangChain、LlamaIndex 等└── 🌐 https://github.com/mem0ai/mem0MemPalace
Section titled “MemPalace”MemPalace├── 📌 基于记忆宫殿隐喻的分层记忆管理系统├── 🏗️ 核心思想:│ ├── 模拟人类记忆宫殿的空间组织方式│ ├── 记忆按主题和重要性分层放置│ ├── 支持记忆的联想和关联│ └── 记忆提取和推理能力├── 🎯 优势:结构化强、可解释性好└── 🌐 https://github.com/AkariAsai/MemoryPalaceOpenClaw Memory
Section titled “OpenClaw Memory”OpenClaw Memory├── 📌 文件即记忆——用 Markdown 文件作为记忆载体├── 🏗️ 架构:│ ├── MEMORY.md(长期记忆,精选的重要信息)│ ├── memory/YYYY-MM-DD.md(每日笔记,原始记录)│ ├── 向量检索(memory_search 语义搜索)│ └── 会话搜索(tdai_conversation_search)├── 🔄 记忆生命周期:│ 每日笔记 → 心跳整理 → 提炼到 MEMORY.md → 归档旧文件├── ✅ 优势:人类可读、可编辑、透明、零供应商锁定├── 💡 设计哲学:像人一样管理记忆——记笔记、回顾、提炼└── 🌐 OpenClaw 核心,开源Letta (MemGPT)
Section titled “Letta (MemGPT)”Letta (原 MemGPT)├── 📌 受操作系统虚拟内存启发的分层记忆管理├── 🏗️ 核心架构:│ ├── 主上下文(Main Context)→ 类似 RAM│ ├── 回忆存储(Recall Store)→ 类似硬盘│ ├── 归档存储(Archival Store)→ 类似冷存储│ └── Agent 自主决定何时读/写/换页├── 🎯 优势:Agent 有自主记忆管理能力├── 💡 创新:将 OS 内存管理的思想引入 LLM 记忆└── 🌐 https://github.com/letta-ai/letta五、📏 评估方法
Section titled “五、📏 评估方法”📊 基准测试(Benchmarks)
Section titled “📊 基准测试(Benchmarks)”评估基准├── 📋 LOCOMO(Long Context Memory Benchmark)│ ├── 评估模型的长上下文理解和记忆能力│ └── 涵盖:信息检索、推理、更新├── 📋 MemBench│ ├── 专门针对 LLM 记忆系统的评测│ └── 关注:记忆写入、检索、更新、删除├── 📋 LongBench│ ├── 长文本理解能力基准│ └── 包含摘要、检索、生成等任务├── 📋 MUSR(Multi-Step Retrieval)│ ├── 多步推理检索评测│ └── 测试复杂查询下的记忆召回└── 📋 自定义评估 ├── 记忆命中率(Recall@K) ├── 记忆准确率(Precision@K) └── 记忆新鲜度(时效性指标)📏 评估维度
Section titled “📏 评估维度”评估维度├── 🎯 检索质量│ ├── 准确率(Precision):返回的结果有多少是相关的│ ├── 召回率(Recall):相关信息有多少被找到│ └── MRR / nDCG:排序质量├── ⏱️ 延迟与吞吐│ ├── 检索延迟(p50/p95/p99)│ └── 写入吞吐(QPS)├── 💰 成本│ ├── 存储 cost(向量库、embedding API)│ └── 推理 cost(额外 context tokens)├── 🔄 一致性│ ├── 记忆冲突解决是否正确│ └── 重复记忆是否被合并└── 👤 用户体验 ├── 记忆是否"自然"(不过度也不遗漏) └── 隐私和安全(哪些该记、哪些不该记)六、🚀 未来方向
Section titled “六、🚀 未来方向”未来方向├── 🧠 自主记忆管理│ └── Agent 自主决定记什么、忘什么、什么时候回忆├── 🕸️ 深度推理 + 记忆│ └── 结合 Chain-of-Thought、思维树等推理能力增强记忆质量├── 📚 从记忆中学习│ └── 不只是存储-检索,而是从记忆中提炼策略和知识├── 🔄 多 Agent 共享记忆│ └── Agent 团队之间的记忆共享和协作├── 🎭 个性化记忆│ └── 不同用户的记忆风格、记忆深度自适应├── 🔒 隐私优先记忆│ └── 本地优先、端侧推理、差分隐私├── ⏰ 时间感知记忆│ └── 更自然的时间衰减、事件时序建模├── 🌐 多模态记忆│ └── 图片、音频、视频的记忆存储与检索└── 📐 记忆标准化 └── 行业统一的记忆格式、接口和评估标准📚 延伸阅读
Section titled “📚 延伸阅读”| 资源 | 说明 |
|---|---|
| Mem0 文档 | 开源记忆层 |
| Letta/MemGPT 论文 | 虚拟上下文管理的开创性工作 |
| MemPalace 论文 | 分层记忆管理 |
| Microsoft GraphRAG | 基于知识图谱的 RAG |
| LightRAG | 轻量级图增强 RAG |
| LangChain Memory | LLM 记忆模块 |
| LOCOMO Benchmark | 长上下文记忆评测 |
📝 本文档最后更新:2026-04-26 | 作者:金豆 🐱