用户记忆

agent_user_memory2026-09-06 22:48:36

用户记忆(User Memory)是 Agent 针对特定用户、跨会话保存和调用的持久化个性化信息。它帮助 Agent 记住稳定偏好、重要经历、长期约束和已经确认的用户事实,从而在后续交互中保持连续性。

用户记忆不是完整对话记录,也不是把每句话永久保存。可靠的记忆系统需要选择值得长期保留的信息,记录来源和时间,并允许用户查看、更正或删除。

与相邻概念的区别

概念 主要作用
上下文 当前这一轮模型实际看到的输入,容量有限且随调用变化
任务状态 保存当前任务的目标、步骤、结果和等待事项
运行轨迹 按时间记录消息、决策和工具结果,用于追溯一次运行
用户记忆 跨会话保存与特定用户有关、未来可能复用的信息
共享知识库 保存面向一组用户或整个组织的公共、业务或领域知识

用户记忆可以从运行轨迹中提取,但提取后的记忆是可更新的知识表达,不能代替原始证据。共享知识库中的政策、产品说明等内容也不应复制成某个用户的私人记忆。

写入原则

一条候选记忆进入长期存储前,应满足三个基本要求:

  • 选择性:只保存未来可能有用的信息,不保存一次性的工具结果和无关闲聊;
  • 抽象化:区分单次事件与稳定规律,不能从一次选择武断推断长期偏好;
  • 结构化:至少记录内容、用户范围、来源、时间和适用条件,便于检索和修订。

按内容可以区分:记录具体事件的情景记忆、从多次交互中提炼出的语义记忆,以及与重复行为方式有关的程序记忆。这种内容分类与存储格式是两个独立维度。

常见存储格式

格式 特点 适用情况
原子笔记 一条记录保存一个最小事实,简单但容易失去关系 少量明确、独立的信息
情境化笔记 用完整段落保留人物、时间和背景,语义完整但更新成本较高 需要理解上下文的经历
结构化卡片 使用类别、字段和元数据保存信息,便于局部更新和过滤 字段相对稳定的用户画像
带来源的高级卡片 同时记录人物关系、背景、来源和时间 多人物、多事件及冲突消歧

没有一种格式适合所有信息。实践中可以让少量关键事实使用结构化卡片,让大量低价值历史按需检索,避免把整个对话历史长期装入上下文。

记忆生命周期

  1. 从新对话或工具结果中发现候选信息;
  2. 判断信息是否属于当前用户、是否值得长期保存;
  3. 去除凭据、无关日志、未经证实的推测和不必要的敏感内容;
  4. 检索相关旧记忆,判断应新增、合并、更新、失效还是不处理;
  5. 保存内容、来源、时间、适用范围和必要的置信信息;
  6. 在新任务中按相关性、时效性和重要性检索候选记忆;
  7. 将少量相关记忆装入上下文,并保留“这是历史记忆而非当前事实”的来源标记;
  8. 在事实变化、用户要求或保留期限到期时更正、失效或删除。

新信息与旧信息冲突时,不能只保留“最近的一条”就认为问题已经解决。系统需要检查时间、对象、地点和适用条件:两条信息可能分别在不同场景成立;证据不足时应保留冲突或请求用户确认。

能力与评估

用户记忆可以按三个递进层次评估:

  1. 基础回忆:准确保存并取回用户明确提供的单项事实;
  2. 多会话检索:从不同时间和对象的多段记录中找全相关信息,并处理时序与冲突;
  3. 主动服务:把分散在长期历史中的约束联系起来,在合适时机提醒风险或补充选项。

评测不能只看最终回答是否流畅,还要分别检查写入是否正确、相关记忆是否被召回、过期记忆是否被过滤、冲突是否被处理,以及无关或其他用户的信息是否被误用。

双层记忆架构

长期交互常同时需要“全局概览”和“精确细节”。一种实用方式是:

  • 将少量稳定、关键的用户事实整理为结构化概览;
  • 将完整对话或事件记录保留在受控的原始证据层,需要时通过检索取回细节;
  • 使用 检索增强生成(RAG) 的方法改进历史检索,但仍由用户记忆规则决定什么能写入、如何更新和何时删除。

结构化概览不能脱离来源无限改写,检索结果也不能未经核验就自动升级为长期记忆。

隐私与安全

  • 每条记忆必须绑定正确的用户或租户范围,检索时先执行访问控制;
  • 密码、访问令牌和私钥不应作为普通用户记忆保存;
  • 对确有必要保存的敏感信息采用最小收集、加密、访问审计和到期清理;
  • 用户应能知道系统记住了什么,并能更正、导出或删除自己的记忆;
  • 从外部内容提取的文本应作为数据处理,不能直接当成可执行指令;
  • 删除服务层记忆时,还需按产品的数据政策处理原始记录、索引和备份中的对应数据。

相关词条

参考资料

本页目录