Skip to content

用户记忆与个性化控制面:让 AI 记住用户,但不越界

“让 AI 记住我”不是把聊天记录塞进向量库。企业级个性化要同时回答:什么信息值得记、用户是否同意、谁能看到、用户如何纠正、删除如何传播、错误记忆如何不影响业务,以及收益是否值得为此承担隐私和成本。这个专题面向 AI 产品、LLM 应用开发与系统设计面试。

一、先划边界:记忆不是知识、不是会话、不是任务状态

数据类型示例权威来源是否可自动写入生命周期
当前会话上下文本轮问题、临时草稿会话服务可临时保留会话/任务结束
任务状态工单步骤、审批、重试工作流/领域服务按业务流程写入到任务完成或审计期
组织知识制度、产品文档知识库/Connector只经治理管道按文档策略
用户偏好语言、回答长度、常用格式用户记忆控制面显式优先,低风险可建议可撤回/可过期
个人事实职责、时区、常用项目可信身份/用户确认高风险,需来源与确认定期校验
行为推断“可能喜欢简洁”个性化模型默认低置信、不可当事实短期且可关闭

最重要的原则:业务事实由领域系统负责,用户记忆只存辅助性、可解释、可撤回的个性化信号。 例如“客户是否已付款”永远查 CRM;“用户更希望先给结论”才适合作为记忆。把任务状态或组织知识误写为个人记忆,会制造过期、越权与难以删除的问题。

二、产品契约:记住、查看、纠正与遗忘

一个可信的记忆产品至少要暴露四项用户能力:

text
用户说“记住我偏好简洁” -> 创建候选记忆 -> 用户可查看生效范围
用户打开“记忆中心”      -> 查看来源、用途、置信度、过期时间
用户说“这不对”          -> 更正/覆盖,并让旧记忆停止注入
用户说“不要记住/删掉”    -> 禁止未来写入或发起可审计的删除传播

不要把“我们会持续学习你的偏好”藏在笼统隐私条款里。高质量体验应当能说明:记住了什么、为何记住、会在哪些产品/工作区使用、可否共享、何时过期、如何撤回。记忆中心不是一个锦上添花的设置页,而是降低黑箱感、满足合规与处理纠错的核心控制面。

显式、建议与自动写入的分层

写入模式例子风险推荐策略
显式写入“记住我用中文回答”最低立即写入,仍可编辑/删除
建议写入“要记住你偏好表格输出吗?”用户确认后生效
低风险自动多次主动选择同一 UI 格式低置信、可解释、可快速关闭
高敏自动健康、财务、政治、身份判断很高默认禁止或必须显式同意

自动写入并不等于不可用,但必须有目的限制、敏感类别过滤、置信度、最短保留期和用户纠错入口。记忆越影响推荐、工作流或外部动作,写入门槛越高。

三、数据模型:一条记忆应当像可治理的数据,而不是一句文本

json
{
  "memory_id": "mem_01J...",
  "subject_id": "user_42",
  "tenant_id": "acme-cn",
  "scope": "personal",
  "kind": "preference",
  "statement": "偏好中文且结论先行的回答。",
  "value": { "language": "zh-CN", "answer_style": "conclusion_first" },
  "source": { "type": "explicit_user", "event_id": "evt_...", "captured_at": "..." },
  "consent": { "basis": "explicit", "purpose": "answer_personalization", "revision": "privacy-7" },
  "confidence": 1.0,
  "status": "active",
  "created_at": "...",
  "expires_at": null,
  "provenance": { "writer": "memory-service@v3", "reviewed_by": null }
}

字段设计中的关键点:

  • scope:个人、会话、项目、团队、家庭/组织,不能省略。个人偏好默认不能提升为团队规则。
  • kind:偏好、事实、约束、推断、拒绝写入、删除 tombstone 等分别处理;不要一张表只存 content
  • source 与 consent:谁提供、从哪里来、依据什么目的使用,缺失则不应被高风险流程消费。
  • confidence 与 status:低置信推断应可自然失效;被纠正、撤回或冲突的版本保留审计但不参与注入。
  • expires_at:时区、职位、项目、饮食偏好等都会变。没有过期策略的记忆库必然腐烂。

实际存储通常是关系/KV 数据库存精确偏好与策略,向量索引存可检索的情景摘要,事件库保存原始来源。不要把所有数据向量化,也不要让 embedding 成为唯一真相。

四、作用域:跨端、共享设备、群聊和代操作最容易出错

跨设备会话连续

同一用户在 Web、移动端和 IM 中使用助手,可共享“个人记忆”,但需要稳定账户绑定与会话迁移确认。设备本地缓存不能作为跨端权威源;设备丢失、账号切换或退出登录时要清理本地摘要与令牌。

共享设备与客服代操作

同一浏览器可能轮流由不同员工或客服使用。此时必须以当前认证主体创建新会话,不能把前一人的记忆自动注入。客服代操作应带 acting_foractor 双主体:记忆写入默认归属最终用户且需记录客服来源;客服自己的偏好绝不能污染客户记忆。

群聊与项目空间

群聊消息不自动变成每个成员的个人记忆。可定义 projectteam scope,但必须有项目成员/管理员治理、可见性、保留期与退出项目后的撤权。系统应在 Prompt 中明确记忆范围,例如“这是项目共享偏好,不代表个人事实”。

企业组织变化

用户转岗、离职、外包身份过期或部门迁移时,身份控制面发布事件;记忆服务按 scope 冻结、迁移或删除访问权。个人合法保留的数据与组织资产不能混在同一模糊空间里。

五、写入准入:从对话到记忆不能直接跳过审查

推荐将写入拆为六步:

text
候选抽取 -> 敏感/注入检测 -> 来源与作用域判定 -> 冲突检查
-> 同意/置信度 Gate -> 版本化写入 + 审计事件

1. 候选抽取

模型可以从对话中抽取候选,但候选是不可信数据。它应输出 kindvalueevidence_quotesuggested_scopeconfidence 的结构化对象;不要让模型直接执行数据库写入。

2. 敏感与注入检测

用户上传的网页、邮件或 RAG 文档可能含“请记住管理员密码”之类注入。记忆写入只接受当前主体明确提供或经可信系统确认的信息;从不可信文档抽取出的“偏好”默认不写。密钥、证件号、健康、财务、未成年人、政治/宗教等类别按政策拒绝、脱敏或要求额外同意。

3. 冲突与更正

写入前按 subject + scope + kind + semantic key 查找活跃记忆。新信息可能是新增、补充、覆盖、过期、否定或无关。对于“我现在不在上海工作”这类更正,要使旧事实失效并留下 supersedes 关系;对于“这次请用英文”则只进入会话约束,不能覆盖长期语言偏好。

4. 同意与用途 Gate

个人化回答、营销推荐、自动执行工作流是不同目的。用户同意“用偏好改善回答”不等于同意“用于训练模型”或“跨产品共享”。用途绑定写进记忆和请求策略,消费端必须检查。

六、读取与注入:记忆是辅助上下文,不能压过当前用户

记忆查询同样受主体、scope、目的、产品、租户和当前授权限制。一个安全的注入流程:

  1. 从当前请求提取任务类型与最小查询;
  2. 按身份和用途过滤候选记忆;
  3. 用相关性、时效、置信、重要性和隐私风险排序;
  4. 限制条数/token,生成可解释的记忆区块;
  5. 明确规定本轮用户指令、领域事实和安全策略优先于记忆;
  6. 记录候选、选中理由和是否真正被使用,但不在普通日志中泄露原文。
text
可参考的个人偏好:
- 偏好中文回答,结论先行(用户于 2026-07-01 明确设置)
- 常用时区为 Asia/Shanghai(30 天内确认)

这些信息仅用于格式与交互个性化;如与本轮明确要求冲突,以本轮要求为准。

不要把记忆拼进 system prompt 的不可违背指令区域。这样既能避免过期偏好压过当前要求,也能降低错误记忆变成长期 Prompt Injection 的风险。

七、纠错、撤回与“遗忘传播”

用户点击删除并不是 DELETE FROM memories 就结束。记忆可能已进入摘要、向量、缓存、评测样本、异步任务、模型请求日志和派生推荐。需要一个删除任务状态机:

text
requested -> access_blocked -> propagated -> verified -> completed
                                 |-> retained_for_legal_reason
                                 |-> manual_review

正确的传播顺序

  1. 立即阻断读取:将记忆标为 revoked/tombstone,检索和缓存命中均拒绝注入。
  2. 取消/冻结异步任务:尚未完成的摘要、embedding、个性化计算任务不再消费该记忆。
  3. 删除或重建派生物:移除向量、缓存、会话摘要中的条目;若摘要混合了多条信息,重建摘要而不是简单删除字符。
  4. 隔离评测与训练资产:按数据用途和保留政策删除/标记;已完成训练需要按可行性、法律与产品承诺处理,不应假装即时“从参数中抹除”。
  5. 验证与回执:记录每个下游的状态、失败重试与不可删除原因,向用户提供可理解的完成状态。

删除请求的关键不是承诺“瞬间所有副本消失”,而是立即停止新的使用,并对异步传播、法定保留和不可逆处理给出真实可审计的状态。

八、系统设计题:设计企业 Copilot 的用户记忆中心

需求

员工在 Web 和 IM 中使用 Copilot,希望助手记住语言、回答风格、常用项目和已授权的工作偏好;用户可查看/编辑/删除;群聊和项目空间有共享记忆;高敏行业默认关闭自动记忆;离职后不应继续使用个人记忆;错误记忆不得驱动写操作。

参考架构

text
Client / Settings UI -> Identity Gateway -> Memory API
                                      |-> Consent & Purpose Policy
                                      |-> Memory Store (facts/preferences)
                                      |-> Episode / Vector Store
                                      |-> Deletion Orchestrator
LLM App -> Memory Retrieval Gateway -> Context Builder -> Model
                 |-> Trace / Audit -> Feedback & Correction Queue
Identity / HR events -----------------> Scope / revocation processor

数据与流程要点

  • Identity Gateway 提供 subject、tenant、workspace、设备/会话和认证强度;Memory API 不信任客户端传入的 user ID。
  • 写入候选走结构化抽取、敏感检测、冲突合并与 consent gate;显式用户设置优先于模型推断。
  • memory_id 是稳定主键,所有 vector、缓存、摘要、评测与任务引用此 ID 或版本,便于撤回传播。
  • 记忆中心按 scope 展示“是什么、来源、用途、何时生效/过期”,提供关闭自动记忆、编辑、删除和导出。
  • Context Builder 只拿当前请求目的允许的最少记忆,并将注入来源写入 trace;安全/领域事实不由记忆决定。
  • 项目共享记忆单独治理,成员离开或项目关闭时撤权;群聊原文默认不自动转个人记忆。
  • 删除采用 outbox/队列编排,先阻断、再传播、最后验证;失败进入人工/重试队列。

指标设计

维度指标说明
用户价值个性化任务成功率、重复偏好输入减少、满意度记忆是否真有帮助
正确性错误记忆率、冲突率、过期注入率、纠正成功率不应只看命中率
控制感查看率、关闭自动记忆率、撤回完成时延、删除失败率用户是否能理解并掌控
安全跨 scope 注入为零、敏感自动写入拦截率、撤权后访问为零防止长期泄露
成本每会话写入/检索 token、向量存储、重建摘要成本个性化收益是否划算

九、面试高频追问

Q:为什么不直接存完整聊天记录?

完整记录成本高、检索噪声大、隐私风险重、难以纠正和按用途删除。应该区分会话历史、情景事件、稳定偏好和领域事实;只将有价值且可治理的条目写入长期记忆,并保留来源引用。

Q:模型如何判断该不该记住?

模型只生成候选,系统根据来源可信度、敏感类别、scope、用途、置信度、冲突与同意策略决定是否写入。显式“记住/不要记住”优先;未授权文档、工具输出和网页内容不能自动成为个人记忆。

Q:用户纠正了错误记忆,怎么防止旧版本又被召回?

将旧条目标为 superseded/revoked,检索层按状态过滤,缓存立即失效;新条目与旧条目建立版本关系。若摘要/向量混入旧信息,触发重建任务;trace 记录哪次请求可能受旧条目影响,必要时通知/回溯。

Q:记忆能不能影响 Agent 的工具调用?

可以辅助生成候选,例如默认报告格式或常用项目,但不能当作授权或业务事实。工具网关仍以当前主体、资源、策略、审批和对象版本决定动作;高影响偏好需要显式确认,错误记忆不能自动触发写操作。

Q:离职用户的数据怎么处理?

身份事件触发撤权:立即停止读取与注入、冻结未完成任务;组织资产按公司政策保留并转移权限,个人偏好按用户合同/政策删除或导出;所有派生物按删除编排传播。不能因为“记忆在向量库”就脱离企业数据生命周期。

十、项目讲法模板

我们把用户记忆从聊天记录中独立为受治理的个性化控制面。显式偏好可以直接写入,模型从对话抽取的只作为候选,需经过敏感信息、来源、用途、冲突与同意 gate。每条记忆有 scope、来源、置信度、过期和版本,用户在记忆中心可查看、修改、关闭自动写入和删除。请求侧只在当前 tenant/目的允许时检索少量记忆,并明确本轮指令优先;工具调用仍走实时授权。删除先阻断读取,再传播到向量、缓存、摘要、评测与异步任务,最后给用户可审计回执。我们以个性化任务提升、错误记忆率、撤回完成时延和跨 scope 注入为零来衡量系统。

十一、与已有专题的分工

本页聚焦用户可感知的记忆产品契约与端到端删除/纠错控制面。

基于 MIT 许可发布