
先把术语翻成人话
向量条目:记忆存成的数字指纹,靠它做相似检索
TTL:记忆的保质期,到期自动过期
日志明文:日志里原样可读的用户内容
01面试现场
上一课讲一句随口的话该不该存进长期记忆,那是记忆的入口;这节收尾课讲出口:用户不想被记住时,系统接不接得住。记忆写入时落下 4 份副本,删除往往只追到 1 份。
面试官提问
“用户点了‘删除记忆’,AI 助手要追到第几处才算删干净?”
蚂蚁面试官给的场景很日常:你做了个写作助手,会记用户的语气偏好。用户在对话里发来一句:“把你记住的那条语气偏好删掉。”你调删除接口,界面上那条记忆当场消失。他问的就是消失之后的事。
这题看着是考合规条款背得熟不熟,实际在考你能不能区分“界面上消失”和“系统里删干净”:前者删一处就够,后者要把副本一处处数出来。
直接回答:四处:向量、快照、缓存、日志——删除接口通常只覆盖第一处。
合规到底审哪四个动作,先给全貌,下面逐个拆。

02大多数人怎么答的
典型翻车回答
“调一下删除接口就行:库里记录删了,界面上也看不到了。”
它的有效区间:演示环境里挑不出毛病,主存储真删了,用户眼里偏好也没了,多数产品到这层就停了。
但同一道题问三个候选人,答案会裂成三层:
① UI 删:前端不再展示,数据一字未动
② 库删:主存储那条记录真删了,副本没人管
③ 全链路删:就是从存储到日志,记忆落过的每一处都删掉、过期或从没存过明文
天花板在这里:能答到第三层的人少,因为前两层看起来“已经删了”。可偏好写入时被复制过几份,删除时就欠几份账,用户较真时账全冒出来。
面试官顺手补一刀:“删掉的内容,你们后台还查得到吗?”前两层的回答到这一句就接不住了。
03深度解析
我认为,个人开发者的合规,最后落在四个动作上。
可改和有 TTL,管的是记错与遗忘。记错的偏好,用户能当场改掉,不用找客服;临时偏好带上保质期,没人来删也不会永远躺着。
可删是四个动作里最容易被高估的。判断标准别落在“有没有删除按钮”上,要看删除路径穿透几处。一条偏好写入时,按常见的自建实现数,通常落在四个地方:
① 向量条目:相似检索用的数字指纹
② 原文快照:写入时原样留的一份底稿
③ 缓存副本:为省一次查询临时留的
④ 日志明文:调用日志里原样打出来的那份

删除接口一般只删第一处。更常见的是连第一处都没真删——很多实现的“删”只是给记录打个 is_deleted 标记(软删除),数据原样躺在库里,后台照样查得到。面试官那句“后台还查得到吗”,问的就是这个标记。
不进日志明文是多数人想不到的那一步。前三个动作都能事后补,这一个是设计期决定:日志只记 memory_id 和操作类型,不记偏好原文。原因很硬:明文一旦打进日志,就跟着日志一起只追加、不修改,删除请求追不进去。
官方口径
ChatGPT 官方帮助页写着(截至 2026-07-26):已删除的保存记忆,日志可能再保留最多 30 天;想彻底删掉一件事,得把它出现过的每个地方(历史对话、归档、文件、记忆摘要)逐一删掉。
官方数的是另一套地方,和上面那四处基本不重叠;方向却一样:删干净都得逐处点名。
别把这四个动作和 PII(身份证号这类个人敏感信息)拦截混为一谈:那条线管“敏感信息别进来”,四个动作管“进来的记忆出得去”。
04面试官追问链
追问会追着“删不掉的地方”打:日志改不了怎么办,TTL 定多长,备份里那份呢。
追问 1
日志改不了,删除请求怎么办
这题考你敢不敢承认改不了。答法是两头堵:新日志从今天起不记明文;旧日志靠保留期兜底,到期由日志系统按策略自动清掉,不用人去翻。
追问 2
TTL 定多长合适
别抢着报天数。先分层:比如临时偏好短、长期偏好放长;再讲到期行为:静默删除,还是提醒续期。数字没有标准答案,讲得清“到期之后发生什么”才算答穿。
追问 3
备份里还有一份,怎么办
承认删不到,但要管得到:备份多是整库快照,没法单删一条;工程答案是备份滚动过期、删除请求单独记一张表(谁、哪条、什么时候删的),恢复备份时由恢复脚本照着这张表把删除补一遍——写进恢复流程,不能靠人记得。
05实战场景
一个两人小团队的复盘(匿名示意):他们的写作助手记了用户语气偏好。一位用户要求全删,他们点了删除,回复“已删除”。两周后用户追问:“后台和日志里也没有了吗?”翻下去才发现,偏好原文还躺在调用日志里,写入时留的那份快照也没删。

STEP 1 · 列副本清单
顺着写入代码,把这条偏好落过的地方全列出来,一处都别跳过。
↳ 四处副本,删除接口只覆盖一处
STEP 2 · 逐处补删
向量条目本来就删了;补删原文快照;缓存不逐条追,直接挂 TTL 到期自清。
↳ 存储侧三处清干净
STEP 3 · 日志改口径
新日志只记 memory_id 和操作类型;旧日志改不了,标好保留期到期清除,并把这个时间点如实回给用户。
↳ 日志侧两头堵
这次怎么验
验收分两档:删一条测试偏好,向量和快照当场就得搜不到,搜得到说明删除路径漏了;缓存和日志按设计要等,把 TTL 到期和日志保留期到期这两个时间点记下来,到点各复查一次,也如实告诉用户。
06本课总结
一句话总结
合规不是声明写长,是删除真的删干净:可改、可删、有 TTL、不进日志明文。
面试锦囊
先说:“点了删除”只保证界面消失,合规要的是全链路删干净。
再说:四个动作逐个落地,重点讲可删的穿透清单和日志只记 memory_id。
最后:给 Agent 运行与 Memory 这条线收个尾:AI 工程不是让模型多知道一点,而是让它在正确边界里少犯贵的错。记忆的边界,就是用户能改、能删、会过期、翻不出明文。
用户点下“删除记忆”那一刻,你的系统欠他几份副本的账?
夜雨聆风