第3章 用户记忆和知识库

第二章解决单次会话内部上下文管理;本章解决跨会话持久化知识

  • 用户记忆(个体尺度):单用户个性化记忆,保存偏好、习惯、个人事实,打造懂用户的助手。
  • 知识库(群体尺度):多用户共享集体知识,行业规范、公司文档、领域资料,打造领域专家。

二者底层技术复用:向量检索、知识压缩;共同痛点:信息冲突、知识过期、检索不准。
最终收敛到双层记忆架构Advanced JSON Cards常驻概览 + 上下文感知检索按需读取细节。

3.1 用户记忆系统

用户记忆不是简单复制对话流水账;是主动持续学习,构建用户预测模型。通过额外LLM调用,从对话里提取、压缩关键信息。

  • 上下文学习:会话内临时生效,会话结束全部消失。
  • 用户记忆:持久化存储,可审查,跨会话复用。

3.1.1 记忆能力三层次评估框架

配套基准:LoCoMo长对话记忆基准;八项能力:个人信息保留、偏好追踪、上下文切换、记忆更新、多会话连续性、复杂思考、时间感知、冲突解决。

层级 能力描述 典型场景
第一层:基础回忆 准确存取用户给出的无歧义结构化事实 记住会员账号,后续直接读取
第二层:多会话检索 跨会话、跨时间检索多条关联信息,做推理判断 用户有多辆车,预约保养识别全部车辆并询问选择;区分有效/过期合同
第三层:主动服务(助理最高标准) 无明确指令,综合历史记忆主动预判、整合信息、预警风险 订国际航班主动检查护照有效期;报税自动汇总全年税务材料

实验3‑1:每层20条测试用例,采用LLM‑as‑a‑judge打分,配套仓库user‑memory

3.1.2 记忆的层次结构(存在哪里)

  1. 轨迹 Trajectory
    单次会话完整原始记录,append‑only只增不改;保存用户消息、模型回复、工具返回。相当于当前会话的流水账,服务本次推理。
  2. 用户长期记忆
    跨会话持久存储,绑定用户ID;可以改写、合并、淘汰;存储偏好、摘要、抽取事实,实现跨会话个性化。
  3. 业务状态(可选)
    开发者定义任务逻辑阶段,事件驱动Agent重点使用。

轨迹=流水账;长期记忆=用户档案。

3.1.3 用户记忆四种存储格式(怎么存)

权衡核心:简单性 ↔ 表达能力,生产环境一般混合使用。

格式 核心特点 优点 缺点 适用场景
Simple Notes 原子独立事实 开销极低,O(1)读写 丢失实体关联,多事实需要手动拼凑 大量次要简单事实
Enhanced Notes 完整叙事段落 语义完整,保留上下文逻辑 冗余、更新麻烦、长文本向量效果差 需要细腻理解的长文本描述
JSON Cards 类别→子类别→键值,三层结构化 支持局部更新,可扩展 分类刚性,多维信息难以归类 大部分结构化用户画像
Advanced JSON Cards JSON卡片 + backstory来源、person主体、relationship关系、时间戳 实体消歧,记录信息上下文,解决多同名实体混淆 生成维护成本高,LLM调用开销大 关键偏好、人物关系、需要消歧的核心信息

实验3‑2:user‑memory项目可切换四种格式做对比评测。Simple Notes第一层表现好,二三层失分严重;Advanced JSON Cards多跳、实体消歧表现最优,成本更高。

3.1.4 进阶记忆表示方案

  1. User as Code(可执行代码记忆)
    把用户信息保存为带类型Python对象,约束写成可执行函数。
  • 两阶段流水线:①只增不删原始事实日志;②周期性checkpoint,LLM生成类型化Python代码。
  • 优势:聚合统计、冲突检测、约束校验由解释器确定性执行,不完全依赖LLM心算,适合计数、有效期校验、过敏冲突检查。
  • 缺点:需要代码生成与执行环境;非结构化杂项事实依然需要notes文本字段。
  1. User as Engram(参数局部写入)
    不训练LoRA,把用户事实写入模型空闲哈希N‑gram槽;模型预训练习得读取逻辑,解决“存了但是不会调用”。不同用户槽隔离,互不干扰。

  2. Parametric Multimodal User Memory(多模态感知记忆)
    保存图像、声音等无法文字转述的感知信息;外部编码器产出感知向量,映射到模型标记嵌入,全程不转文字。

记忆表示连续谱:外部文本 → 可执行代码 → 模型局部参数 → 多模态感知。外侧易审查易更新;内侧推理强、但黑盒程度上升。

3.1.5 认知科学视角:记忆存什么(三类记忆)

对应人类长期记忆分类,与上面层次、存储格式正交,可以自由组合

  1. 情景记忆 Episodic:具体事件经历。例:下周五预定东京航班。
  2. 语义记忆 Semantic:从事件抽象出稳定通用知识。例:用户素食、偏好靠窗座位。
  3. 程序记忆 Procedural:行为流程、做事模式。例:订机票固定操作流程。

三套正交分类:
1)存在哪里:轨迹 / 长期记忆 / 业务状态
2)怎么存:四种存储格式
3)存什么:情景 / 语义 / 程序记忆

3.1.6 开源记忆框架案例

Mem0

流水线:提取 — 向量检索对比 — 决策更新

  1. 提取阶段:新对话结束,LLM结合历史提取候选记忆。
  2. 更新阶段:向量检索相似旧记忆,LLM决策:ADD新增 / UPDATE更新 / DELETE删除 / NOOP无操作。自动处理新旧信息冲突。
  • 变体Mem0‑g:实体关系图记忆,提升多跳推理。
  • 架构模块化,嵌入层、存储层解耦,插件化支持各类后端。
Memobase

分为两大部分:

  1. 用户画像Profile:开发者可配置槽位,存储稳定属性。
  2. 事件记忆Event Memory:时间线保存历史事件,支持时间维度查询。
  • 缓冲批处理:对话先缓冲区攒量,再批量提取记忆,降低LLM调用开销,查询低延迟。

参考协同架构:工作记忆 ↔(选择性写入 / 按需激活)↔ 长期记忆(情景、语义、程序)

  • 轨迹:不可变完整事件序列;工作记忆:筛选激活后的动态子集。

3.1.7 记忆压缩与整理机制

防止记忆爆炸、检索退化,多层策略:

  1. 重要性打分过滤:访问频率、时间衰减、情感强度、信息独特性综合打分,低分标记压缩/删除。
  2. 聚类摘要:相似记忆分组,生成组摘要,原始数据归档二级存储。
  3. 抽象泛化:情景记忆提炼为语义、程序记忆。
  4. 冲突版本管理:可变信息保留最新版本;历史经历类保留完整版本。

区分:本章是记忆存储层的离线整理;第二章是单次会话上下文窗口压缩;第八章介绍离线记忆整合的工程触发机制。

3.1.8 隐私保护:日志脱敏

实验3‑3 log‑sanitization项目:本地小模型做PII敏感信息检测脱敏。

  • 本地部署,敏感数据不上传云端;识别结构化、半结构化、自然语言里的隐私内容。
  • 输出JSON Schema:类型、位置、置信度。
  • 高吞吐混合方案:正则过滤明显模式,剩余交给LLM深度识别。

用户记忆量增大后,如何快速召回目标信息,交由RAG技术解决,RAG同时服务共享知识库与增强用户记忆检索。


下一节:3.2 RAG基础:构建Agent的知识获取管道。

如果你需要,我可以继续把3.2‑3.4 RAG部分也整理成同风格md笔记。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐