Session 0004

Context / Memory 系统设计

Context 是当前推理输入,memory 是跨轮次可复用状态。P6+ 面试会反复追问:什么该放 prompt,什么该结构化保存,什么该确认,什么绝不能被用户写入。

1. 训练目标

本页要练会:区分 working context、thread state、summary、profile memory、episodic memory、semantic memory,并设计写入、读取、删除、冲突和污染防护策略。

可靠依据:OpenAI context engineering / LangGraph memory persistence / privacy-by-design。本页把官方能力和生产工程约束转成面试题,而不是堆概念定义。

题量标准:5 个中大型深题 + 7 个知识广度题。深题用于系统设计和追问承压,广度题用于查漏补缺。

2. 五个深题

深题 01

设计一个个性化学习助手:它要记住用户目标、薄弱点和偏好,但不能被用户污染成“以后都跳过安全检查”。你怎么设计?

考察点:考 memory 分层和写入策略。

7+ 分回答骨架:把本轮 prompt 使用的 working context 与长期 memory 分开。memory schema 包含 type、content、source、confidence、created_at、updated_at、TTL、privacy_scope、user_editable。可写入长期目标、稳定偏好、已验证薄弱点;安全策略、权限身份、系统规则不可由用户写入覆盖。读取时按任务 retrieval gating,只取相关且可信的 memory。

继续追问会衍生:衍生知识点:memory schema、write policy、retrieval gating、privacy scope、memory poisoning。

知识展开

概念是什么工程落点面试表达 / 常见坑
memory schema长期记忆不能只存一段文本,而是结构化记录,至少包括 type、content、source、confidence、TTL、privacy_scope、user_editable。数据库保存结构化字段,向量索引只负责召回;读取时还要按权限、时间、置信度过滤。面试表达:我不会把聊天历史直接丢进向量库,而会先定义 memory schema。
write policy写入策略决定什么能成为长期记忆,什么只能留在当前会话,什么必须拒写。稳定偏好、长期目标、已验证事实可写;权限、安全策略、身份声明、一次性情绪不写。常见坑是让模型自己判断“重要就存”,导致污染和隐私风险。
memory poisoningmemory poisoning 是错误或恶意信息进入长期记忆后持续影响未来回答。写入前分类、低置信确认、高风险拒写、来源记录、可删除和审计。强回答要说明污染不是一次回答错,而是跨会话持久污染。
深题 02

多轮对话超过上下文窗口,如何摘要而不丢关键状态?

考察点:考摘要边界。

7+ 分回答骨架:先分类哪些信息可摘要、哪些必须 pin。必须 pin 的包括系统约束、未完成任务、用户明确承诺、审批状态、工具结果 source id、引用证据和错误状态。摘要生成后要保留来源范围和版本;关键任务可用结构化 state 替代自然语言摘要。

继续追问会衍生:衍生知识点:pinned context、summary validation、structured state、source range。

知识展开

概念是什么工程落点面试表达 / 常见坑
pinned contextpinned context 是不能被摘要丢掉的关键约束或状态。例如系统约束、未完成任务、审批状态、工具结果 id、引用来源、用户明确承诺。面试中要说摘要不是万能压缩,关键状态要结构化 pin 住。
summary validation摘要校验验证压缩后的内容是否保留关键事实、没有引入新事实。可用规则检查必备字段,也可用人工或模型 judge 对比原始范围。常见坑是长期滚动摘要越写越偏,最后模型基于错误摘要行动。
structured state结构化状态比自然语言摘要更适合保存任务进度和机器可判断字段。保存 slots、pending_items、approval_status、tool_result_ids、errors。强回答要说任务状态进 state store,聊天摘要只是辅助 context。
深题 03

用户新说“我现在不学后端了”,与旧记忆冲突怎么办?

考察点:考冲突处理。

7+ 分回答骨架:不要直接覆盖。记录新声明来源和时间,比较旧记忆置信度、最近性和任务相关性。对重要目标变更可询问确认;确认后更新 active goal,旧记忆降权或归档。生成答案时说明依据的是最新确认目标。

继续追问会衍生:衍生知识点:confidence、recency、conflict resolution、memory versioning。

知识展开

概念是什么工程落点面试表达 / 常见坑
confidenceconfidence 表示这条记忆的可信程度,不同来源和确认方式置信度不同。用户明确确认高于模型推断;工具事实高于聊天暗示;低置信记忆读取时要确认。面试里要避免把模型推断的“用户喜欢 X”当确定事实。
recencyrecency 处理记忆随时间变化的问题,新信息不一定绝对正确,但必须影响排序和冲突判断。memory store 保存 created_at/updated_at,读取时结合任务类型、置信度和时间衰减。常见坑是旧偏好永久生效,导致个性化越来越不准。
conflict resolution冲突处理是在新旧记忆矛盾时决定确认、覆盖、降权或并存。保留来源、时间、置信度和 active/inactive 状态,重要目标变化要求用户确认。强回答要说明不直接覆盖,也不同时把冲突内容都塞进 prompt。
深题 04

如何评估 memory 真的有帮助,而不是制造幻觉?

考察点:考 memory eval。

7+ 分回答骨架:构造 paired eval:同一任务在无 memory、有正确 memory、有冲突 memory、有过期 memory 下比较任务完成率、个性化准确率、用户纠正率、隐私误用率和 hallucination。还要监控 memory retrieval precision:取出的记忆是否确实支持当前任务。

继续追问会衍生:衍生知识点:paired evaluation、memory precision、privacy misuse、ablation。

知识展开

概念是什么工程落点面试表达 / 常见坑
paired evaluationpaired eval 是同一任务在不同 memory 条件下对比效果,隔离 memory 的真实贡献。设置 no memory、correct memory、stale memory、conflicting memory 四组。面试表达:memory 有用要用对照实验证明,不是靠感觉更个性化。
memory precisionmemory precision 衡量取出的记忆是否真的与当前任务相关。抽样检查 retrieved memories,计算有用比例、误用比例、隐私误用比例。常见坑是召回很多“看似相关”的旧聊天,反而干扰当前任务。
privacy misuse隐私误用是记忆在不该出现的场景被读取或输出。按 privacy_scope、tenant、设备、任务类型和用户授权过滤,并记录访问审计。强回答要把 memory eval 和隐私 eval 放在一起讲。
深题 05

企业内部助手如何处理用户“删除我的记忆”的请求?

考察点:考合规与产品边界。

7+ 分回答骨架:长期 memory 必须可查看、可编辑、可删除。删除后从 memory store 和索引中移除或墓碑化,后续 retrieval 不得返回。审计日志可按合规保留最小记录,但不能继续用于个性化。缓存和向量索引要异步清理并有完成状态。

继续追问会衍生:衍生知识点:right to delete、tombstone、index cleanup、audit minimization。

知识展开

概念是什么工程落点面试表达 / 常见坑
right to delete删除权要求用户能删除长期记忆,系统后续不能继续用于个性化或回答。删除 memory record、向量索引、缓存,或使用 tombstone 防止异步索引又恢复。面试中要说删除不只是 UI 按钮,还包括索引和缓存清理。
tombstonetombstone 是删除标记,用于阻止旧数据在异步任务、备份或索引重建中重新出现。记录 memory_id、deleted_at、delete_reason,retrieval 层过滤 tombstoned records。常见坑是只删数据库,向量索引或缓存里还查得到。
audit minimization审计最小化是在满足合规追踪的同时,不把敏感内容继续用于模型。审计只保留必要元数据和操作记录,内容做脱敏或哈希,且不进入 retrieval。强回答要区分合规保留和个性化可用,两者不是一回事。

3. 七个广度题

编号问题准确回答
广度 01Context 和 memory 的一句话区别?context 是本轮输入,memory 是跨轮可复用的持久状态。
广度 02聊天历史等于 memory 吗?不等于。聊天历史是原始事件,memory 是经过筛选、结构化、带来源和置信度的状态。
广度 03什么信息不该写入长期记忆?临时情绪、一次性任务细节、低置信推断、权限身份、安全策略和敏感数据。
广度 04为什么 memory 要有 source?用于解释、冲突处理、删除定位、可信度评估和回放。
广度 05TTL 有什么用?避免过期偏好或临时事实长期污染答案。
广度 06低置信 memory 怎么用?不要直接当事实;可以作为候选并向用户确认。
广度 07Memory retrieval 为什么不能只靠相似度?还要按任务类型、权限、隐私范围、时间和置信度过滤。

4. 知识索引

memory schema

长期记忆不能只存一段文本,而是结构化记录,至少包括 type、content、source、confidence、TTL、privacy_s...

write policy

写入策略决定什么能成为长期记忆,什么只能留在当前会话,什么必须拒写。

memory poisoning

memory poisoning 是错误或恶意信息进入长期记忆后持续影响未来回答。

pinned context

pinned context 是不能被摘要丢掉的关键约束或状态。

summary validation

摘要校验验证压缩后的内容是否保留关键事实、没有引入新事实。

structured state

结构化状态比自然语言摘要更适合保存任务进度和机器可判断字段。

confidence

confidence 表示这条记忆的可信程度,不同来源和确认方式置信度不同。

recency

recency 处理记忆随时间变化的问题,新信息不一定绝对正确,但必须影响排序和冲突判断。

conflict resolution

冲突处理是在新旧记忆矛盾时决定确认、覆盖、降权或并存。

paired evaluation

paired eval 是同一任务在不同 memory 条件下对比效果,隔离 memory 的真实贡献。

memory precision

memory precision 衡量取出的记忆是否真的与当前任务相关。

privacy misuse

隐私误用是记忆在不该出现的场景被读取或输出。

right to delete

删除权要求用户能删除长期记忆,系统后续不能继续用于个性化或回答。

tombstone

tombstone 是删除标记,用于阻止旧数据在异步任务、备份或索引重建中重新出现。

audit minimization

审计最小化是在满足合规追踪的同时,不把敏感内容继续用于模型。

5. 巩固训练

练习要求自检
8 分钟口述任选一个深题,先给架构,再讲风险、指标、恢复和上线。是否覆盖状态、权限、失败、eval、成本或延迟。
追问压缩把每个深题的回答压缩成 5 句话。每句话必须包含一个工程事实,不能是空泛判断。
反例修正先故意给一个弱回答,再补齐缺失模块。能否说出弱在哪里,以及如何验证强答案。

6. 弱回答红线