记忆系统
记忆系统很容易被误解成“把用户说过的话存起来”。
真正的工程问题更复杂:什么值得记,记多久,谁能看到,什么时候更新,什么时候忘记,错误记忆如何纠正,记忆进入模型前如何做权限和相关性判断。
如果做得好,记忆能让 AI 应用减少重复询问、延续任务、形成个性化体验。如果做得差,记忆会变成隐形风险:过期信息持续影响输出,用户不知道系统记住了什么,敏感信息被误用,不同任务之间互相污染。
这篇文章把记忆拆成三类:用户记忆、任务记忆和长期记忆。每一类都要分别判断收益、风险和成本。
场景
以一个面向企业用户的 AI 工作助手为例。
用户每天用它写客户邮件、整理会议纪要、查询 CRM、生成跟进计划。系统如果记得用户偏好的邮件语气、常负责的客户、当前季度重点项目和上次未完成的跟进事项,就能明显减少重复输入。
输入来自聊天、文档、CRM、日历、任务系统和用户手动设置。输出可能是邮件草稿、待办、客户摘要、下一步建议,也可能触发日程或 CRM 更新。使用频率高,跨天、跨项目、跨客户连续使用。
没有记忆时,用户每次都要重新说明“我负责华东区企业客户”“邮件语气保持简洁”“这个客户更关心部署周期”。有记忆后,系统可以默认采用这些偏好。
最容易失败的样本是:用户临时为某个客户改变语气,系统却写入全局偏好;某次项目的旧目标被长期保留;一个客户的敏感信息被错误带到另一个客户;模型把自己的推测写成用户事实。
记忆类型
这三类不应该混在一个 profile 里。用户偏好、任务状态和长期知识的更新频率、权限范围、保留周期和错误成本都不同。
问题类型
记忆系统涉及的 AI 任务比普通聊天更多。
模型可以帮助发现和整理记忆,但记忆治理必须由系统负责。尤其是写入和使用记忆时,不能让模型凭感觉决定。
用户记忆:收益、风险、成本
用户记忆适合记录明确、稳定、低敏感度的信息。
例如:
- 用户偏好中文回复。
- 用户喜欢邮件先给结论再列要点。
- 用户负责华东区企业客户。
- 用户常用周报格式是“进展、风险、下周计划”。
它的收益是减少重复说明,并让输出更贴合个人工作习惯。对于高频使用的助手,用户记忆能显著提升体验。
但用户记忆也有明显风险:
- 模型把临时要求写成长期偏好。
- 模型把推测写成事实,例如“用户不喜欢详细解释”。
- 记住敏感信息,如健康、财务、身份、家庭情况。
- 用户不知道系统记住了什么,也不知道如何删除。
- 记忆影响结果但界面没有解释。
用户记忆的成本包括:记忆候选识别、用户确认 UI、记忆管理页、删除同步、敏感信息过滤、审计日志和评估样本。
什么时候简单策略足够
如果只是当前会话里的语气和格式偏好,可以不写入记忆。把用户偏好作为本轮 prompt 变量即可。
例如用户说“这次邮件写得更正式一点”,这很可能是临时约束,不应该自动变成长期偏好。
什么时候需要工程方案
当偏好会跨会话复用,并且用户期望系统持续记住时,才需要用户记忆系统。此时至少要有:
- 明确写入规则。
- 用户可见的记忆列表。
- 编辑和删除入口。
- 敏感信息拦截。
- 来源和更新时间。
- 使用记忆时的可解释提示。
任务记忆:收益、风险、成本
任务记忆记录的是某个任务、项目或业务对象的状态。
例如:
- 当前工单已经确认订单号,但缺收件邮箱。
- 某个代码修改任务决定不引入新依赖。
- 某个销售商机的关键风险是安全审计周期。
- 某份报告已经确定采用“区域维度”而不是“产品维度”。
任务记忆的价值在于跨会话继续工作。它比用户记忆更具体,也更容易过期。
主要风险是任务间污染和状态过期:
- 把客户 A 的约束带到客户 B。
- 把上周废弃的技术方案继续当成当前决策。
- 工具结果更新后,任务记忆仍保留旧状态。
- 模型根据自然语言记忆推断任务已完成,但系统状态并没有完成。
任务记忆的成本包括:任务 ID、对象权限、状态 schema、版本、过期、工具结果绑定、人工修正和回放。
什么时候简单策略足够
如果任务在一个会话内完成,最近消息和对话摘要通常足够。不要为了一次性任务建立任务记忆。
例如用户让模型“帮我把这段说明改短”,没有必要保存任务状态。
什么时候需要工程方案
当任务会跨天继续、涉及多个对象、需要工具执行或需要审计时,任务记忆应该结构化保存。
任务记忆通常更接近状态机,而不是聊天摘要。它应该记录:
- 当前阶段。
- 已确认字段。
- 缺失字段。
- 已执行工具及结果。
- 决策记录。
- 阻塞项。
- 下一步动作。
- 负责人或确认人。
长期记忆:收益、风险、成本
长期记忆是最有吸引力、也最容易过度设计的一层。
它可能包括用户长期工作方式、组织知识、项目历史模式、客户关系、持续目标和历史反馈。对于真正长期协作的产品,长期记忆能让 AI 从“每次重新开始”变成“逐渐了解工作环境”。
但长期记忆的风险和成本都高:
- 记忆量大,检索和排序更难。
- 信息保留时间长,隐私和合规要求更高。
- 错误记忆会反复影响很多任务。
- 组织内权限关系复杂,谁能用哪些记忆必须明确。
- 用户离职、项目结束、客户合同变化后,记忆必须处理。
- 评估困难,短期 A/B 很难看出长期收益。
长期记忆不适合做成“无限历史聊天检索”。更可靠的方式是分层:
- 明确确认的长期事实。
- 可过期的历史偏好。
- 与具体项目绑定的历史记录。
- 可检索但不默认注入的归档信息。
- 需要用户或管理员管理的组织级规则。
什么时候简单策略足够
如果用户使用频率低、任务变化大、记忆不会显著减少重复输入,就不要做长期记忆。可以使用显式设置、模板、项目配置或最近会话摘要。
什么时候需要工程方案
当产品核心体验依赖长期协作,且用户会因为系统“记得正确”而持续受益时,才值得建设长期记忆。
典型条件包括:
- 高频使用。
- 明确的长期对象,如客户、项目、课程、代码库。
- 记忆能显著减少重复输入或提升质量。
- 用户愿意管理和纠正记忆。
- 团队能承担隐私、权限、评估和运营成本。
收益和成本判断
一个实用判断是:记忆是否会影响事实、权益或操作。
如果只影响语气和格式,风险较低,可以更轻量。如果会影响报价、权限、专业建议、客户承诺或工具执行,就必须有确认、来源、过期和审计。
方案阶梯
第一层是不记忆。适合一次性任务、低频功能和高敏感场景。让用户每次明确输入,虽然不够聪明,但可控。
第二层是会话内偏好。用户本轮说“用更正式的语气”,只在当前会话生效。适合多数轻量个性化。
第三层是用户可编辑设置。把稳定偏好做成显式配置,如语言、格式、默认模板。它比自动记忆更透明。
第四层是任务状态。把项目、工单、代码修改等状态结构化保存。它解决跨会话继续工作。
第五层是用户记忆。系统可以从交互中发现候选记忆,并让用户确认或提供删除入口。
第六层是长期记忆。引入分层存储、检索、过期、权限和组织治理。
第七层是 Eval + Ops。持续评估记忆命中是否有帮助、误写是否增加、删除是否生效、成本是否可控。
方案选型表
反模式
第一种反模式:默认什么都记。
用户说过的话不等于用户希望系统长期保存。记忆应该有价值判断、敏感过滤和用户控制。
第二种反模式:把临时上下文写成用户偏好。
“这封邮件写得强硬一点”不等于“用户喜欢强硬语气”。临时约束和长期偏好必须区分。
第三种反模式:没有来源和时间。
没有来源的记忆无法纠错;没有时间的记忆无法判断是否过期。每条记忆至少应该有来源、写入时间和更新时间。
第四种反模式:记忆只增不减。
长期只追加会让记忆越来越脏。必须有过期、合并、覆盖、删除和归档机制。
第五种反模式:用模型承诺代替权限控制。
不要把越权记忆交给模型再要求它不要泄露。权限过滤必须发生在检索和注入上下文之前。
第六种反模式:没有用户可见性。
如果记忆影响输出,用户应该能看到、修改和删除。否则个性化会变成不可解释的偏见来源。
第七种反模式:没有评估却上线自动写入。
自动写入记忆需要评估误写率、敏感信息命中、用户删除率和记忆带来的质量提升。否则团队只会看到“更聪明”的样例,看不到长期污染。
工程清单
- 场景边界:记忆用于个性化、任务继续,还是长期知识沉淀。
- 记忆分层:用户记忆、任务记忆、长期记忆是否分开存储和使用。
- 写入规则:什么信息可写、不可写、需确认、需敏感拦截。
- 来源记录:每条记忆是否有来源消息、工具结果、人工编辑、时间和版本。
- 结构化 schema:偏好、任务状态、对象关系、置信度和过期时间是否定义。
- 权限控制:记忆是否按用户、团队、租户、业务对象隔离。
- 检索策略:本轮任务如何选择相关记忆,如何避免无关记忆污染。
- 冲突处理:新旧记忆、用户输入和工具事实冲突时如何覆盖或追问。
- 用户控制:用户是否能查看、编辑、删除、暂停记忆。
- 过期和删除:项目结束、用户离职、合同变化和主动删除是否会同步处理。
- 可观测性:是否记录记忆命中、注入、写入、更新、删除和使用效果。
- 评估体系:是否有误写率、有效命中率、敏感信息拦截率和质量提升评估。
- 安全合规:日志脱敏、数据保留、审计、导出和删除请求是否覆盖。
- 降级策略:记忆不可用、冲突或低置信度时是否回到显式询问。
小结
记忆系统的价值不在于保存更多历史,而在于让正确的信息在正确的任务里可控地复用。
用户记忆适合稳定偏好和个人工作方式,但必须可见、可改、可删。任务记忆适合跨会话继续工作,更接近状态机而不是聊天摘要。长期记忆只有在高频、长期、可治理的产品里才值得建设。
简单策略并不低级。一次性任务用显式输入,短期偏好只在会话内生效,稳定格式做成用户设置,很多时候已经足够。只有当记忆带来的质量和效率收益明确超过隐私、权限、评估和运营成本时,才应该进入完整记忆系统。