删了之后会不会保留,取决于你删的是哪一种。聊天记录和 AI 从这段对话里提炼出去的记忆条目,在系统里是两个对象:在 OneOneTalk 里,记忆条目可以逐条遗忘、服务端真的删掉那一行;对话历史是另一层,目前我们还没有「删掉这个会话」的入口。这一页把记忆的六个动作——查看、搜索、纠正、冻结(可恢复)、遗忘、导出——写到可以逐条核对的程度,也写清楚记忆到底能活多久,以及哪些我们确实没做。
这个问题之所以值得问,是因为「删除」在很多产品里是个界面词,不是工程词。条目从列表里消失了,但它可能仍然留在向量索引、对话摘要、缓存与训练数据集里,继续影响模型下一句怎么说你。
行业里常见的三种做法是:把删除做成隐藏(列表不再展示,底层记录照旧参与检索);把删除做成打标记(写一个 deleted 位,检索时过滤,副本一份不少);或者删得掉主记录、删不掉从它派生出去的摘要与索引。这三种都能通过「我点了删除,它消失了」的肉眼验收,但都没有兑现你以为你得到的那件事。我们不点名任何公司——这更多是工程惯性的结果,而不是谁的恶意。
国家标准对这个词其实给过定义。《信息安全技术 个人信息安全规范》(GB/T 35273,现行版本自 2020 年 10 月 1 日起实施)把「删除」定义为:在实现日常业务功能所涉及的系统中去除个人信息的行为,使其保持不可被检索、访问的状态。注意落点是「不可被检索、访问」——不是「不再展示」。
这是这个问题里最容易被跳过的一层。你在对话里说的那句话,和 AI 从那句话里提炼出去、之后一直拿来理解你的那条结论,是两份数据,存在两个地方,删除的语义也不一样。所以「我把聊天记录删了」和「它不再记得这件事」之间,隔着一个没人替你走的动作。
这不是某一家的实现细节,是这一代产品的通用结构:对话是流水,记忆是从流水里提炼出的结论,结论一旦写出来就独立于原文存在。一个只清空了聊天列表的操作,完全可能什么都没改变——AI 下一次仍然会说出你以为已经删掉的那件事。
在 OneOneTalk 里,这几层分别是这样:
这个问题问的其实是两件事。一件是「这次对话里它还记得多少」——那取决于这一轮请求带了多少上文,换一个会话、上文不带了,它就不在那里,这一层从来不是「存了多久」的问题。另一件才是真问题:写进记忆账本的那条结论,能活多久。
对第二层,OneOneTalk 的答案是:没有到期天数。一条记忆写进去之后一直有效,直到发生两件事之一——你把它删了,或者它被一条更新的说法取代。失效由取代触发,不由时钟触发。
这一页描述的不是我们的善意,而是把已经写在法条里的权利落成可以点击的入口。
这一页不是法律意见。产品在中国区公开上线前的合规确认由法务、安全与算法治理负责人签字,这是我们自己写进发布门槛的流程要求。
要让上面这些动作有意义,记忆首先不能是一段聊天记录,得是一条有结构的记录。数字分身的每条长期记忆是一条独立对象,当前线上的记录结构有 12 个字段。
六个动作就作用在这些字段上,每一个都有确定的系统含义。表里另附两行:一行是服务端已经有、Web 入口还没上的完整导出,一行是最常被问到、而我们确实没做的那个动作。
| 动作 | 系统里实际发生了什么 | 现状 |
|---|---|---|
| 查看 / 搜索 | 按真值分类筛选整本账本;每条都能看到来源、时间、置信度、作用域与最后使用日期 | Web 版可用 |
| 纠正 | 写入新内容,来源改标为「你纠正」,真值升为已确认事实,接口返回被替换掉的旧内容 | Web 版可用 |
| 冻结 / 解冻 | 停用但不删除:召回与星图跳过这条,随时可解冻 | Web 版可用 |
| 遗忘 | 把该行从你的记忆表里删掉;被删内容返回到你的浏览器,用来撑「撤销」,服务端不为撤销另存副本 | Web 版可用 |
| 回看历史 | 以任意一天的视角重放账本:当天成立的记忆是哪些、被取代的旧断言长什么样 | Web 版可用 |
| 导出 | 打包记忆、编年、对话与作品,结构化格式,附内容校验值 | Web 版可用 |
| 导出(完整形态) | 六类分项打包(另含关系与回执链)、可读版与结构化版同时要、下载窗口与完成回执 | 服务端已实现,Web 版入口建设中 |
| 设作用域 / 设到期时间 | 没有这个动作:作用域是记录上的一项只读元信息,看得见改不了;按时间自动到期没有入口也没有接口,失效只由「被新说法取代」触发 | 我们没做(不是建设中) |
还有一条隔离规则值得写明:记忆按登录用户隔离,用户身份只能从登录态解出,永远不能来自请求参数。所以一个人的记忆,另一个人既读不到也改不到。请求一条不属于你的记忆时,返回的是同一句「记忆不存在或不属于你」——不区分这两种情况,是为了不泄露某条记录是否存在。
删掉主记录只是第一步。一条记忆一旦被使用过,就会在别处留下派生物,删除必须追着这些派生物走。
顺带说清另一件容易被混淆的事:冻结、遗忘、注销是三个不同的动作。冻结停用不删;遗忘删掉这一条;注销是整个账号。产品里不会用一个模糊的「清除数据」把它们混在一起,因为它们的后果完全不同。
先把两个问题切开。「技术上这份数据还存不存在」和「法律程序上谁有权要求取得它」是两件事,这一页只回答前一个。后一个属于法律判断,我们不做,也不在这里给个人化的应对建议——遇到具体情形请找你自己的法律专业人士。
技术侧的上界是这样构成的:删除要覆盖上一节那五条副本链路,并且在所有索引与副本中可追踪完成。重点在「可追踪」——它意味着你能知道它做完了,而不是相信它做完了。在副本全部覆盖之前,剩下的时间窗由备份链路的滚动窗口决定:备份是滚动覆写的,滚出窗口之后就没有可供恢复的副本。我们不在这一页写一个天数,因为那是随基础设施变的数字,写死一个数等于给一个明天就不算数的承诺;能给出的确定承诺是另一条——删除请求必须在产品承诺时限内完成,它是发布门槛表上的硬指标,不达标不发版。
还有一层是这类讨论里几乎没人提、但对你最实用的:读取这件事本身要留痕。对话原文与个人敏感信息默认对任何角色都不开放(这道闸门的位置写在下面那一节),特批读取要写明理由与时限,每一次实际读取落一条回执,而回执对你本人可见。所以即使真的发生过一次读取,你在自己的记录里看得见有过这一次。这不是一句「我们不看」的承诺,是一条你能自己核对的记录——承诺可以反悔,记录不行。
删除权的另一半是带走的权利。如果只能删不能带走,用户面对的仍然是一个单向的门。
「能不能删」的前一个问题是「谁看得见」。对话原文与个人敏感信息在后台是一类特殊资源,工程上叫破窗玻璃(break-glass):平时封着,砸开必须留痕。
在运营与管理系统里,任何角色都不默认持有这类资源的读取权限——租户管理员不行,平台员工也不行。日常运营用的是脱敏层:只有元数据与标签,没有原文,绝大多数运营需求到这一层就结束。真正需要读原文的场景(例如处理你本人发起的申诉)必须走特批:写明理由与用途类别、授权有时限、每一次实际读取落一条回执,而且这些回执对你本人可见。
关键在这道闸门的位置——它在权限系统里排在角色判定之前。不是「管理员权限大所以要小心」,而是无论角色怎么配,都碰不到这类资源,除非走完留痕流程。同样的回执机制贯穿委托行动的每一步执行,完整承诺见诚实与隐私。
| 行业常见做法 | OneOneTalk | |
|---|---|---|
| 记忆的形态 | 一份你看不见、也改不了的个性化画像 | 一本可逐条打开的账本,每条带来源、时间、置信度、作用域与真值状态 |
| 「删除」的含义 | 界面上不再显示,或写一个删除标记后照旧留存 | 把该行从记忆表里删掉;产品规则要求删除追到索引、摘要、缓存、训练队列与可控备份并可追踪完成 |
| 撤销怎么实现 | 服务端软删除保留副本,等待撤销窗口过期 | 被删内容返回到你的浏览器撑住撤销,服务端不为此另存副本 |
| 改错一条信息 | 直接覆盖,旧值消失,无从核对 | 新说法取代旧断言,旧的关有效期并存留库,可切到任意日期回看 |
| 已分享出去的内容 | 删除只作用于账号内,站外链接继续可访问 | 引用被删记忆的只读快照级联撤销、即时生效,且不泄露它是否存在过 |
| 数据权利要不要钱 | 导出与高级隐私控制常见于付费档位 | 查看、纠正、删除、遗忘、导出永久免费,退订后仍然保留 |
不会,这是两个对象。对话是流水,记忆是从流水里提炼出的结论,结论一旦写出来就独立于原文存在——清空聊天列表不等于删掉那几条记忆。在 OneOneTalk 里,记忆条目要去记忆账本逐条遗忘,服务端真的删掉那一行;对话历史这一层目前没有「删掉这个会话」的入口,我们还没做,要整体停止现在只有注销账号那条路,进 30 天冷静期、期间随时可撤销。
写进记忆账本的条目没有到期天数:一直有效,直到你把它删了,或者被一条更新的说法取代。被取代时系统把旧那条的失效日置为当天,旧记忆从当天起不再参与召回,但留档、可以按任意日期回看。按时间自动到期这一层我们没做,没有这个入口也没有对应的接口——所以更该问的不是「它能记多久」,而是「它凭什么还在记这一条」。
能,而且不是隐藏。在记忆账本里对一条记忆点「遗忘」,服务端执行的是把那一行从你的记忆表里删掉,接口把被删内容原样返回给你的浏览器,用来撑住界面上的「撤销」按钮——也就是说,撤销所需要的那份副本留在你自己的设备上,服务端不为此另存一份。冻结是另一回事:冻结的记忆停用但不删,召回与星图会跳过它,随时可以解冻。
会跟着撤销。产品规则要求:源对象被删除、所引记忆被遗忘时,级联撤销对应的只读分享快照,撤销即时生效;撤销后的链接与本来就不存在的链接返回同一个结果,不泄露它是否存在过。这条规则的出发点是「所有索引与副本」不留豁免——如果删除只停在数据库里,分享链接就成了漏出去的那一份。
默认不能。对话原文与个人敏感信息是一类特殊资源,任何角色都不默认持有读取权限,租户管理员不行,平台员工也不行。确需读取要走特批:写明理由与用途类别、授权有时限、每次实际读取落一条回执,且回执对你本人可见。这道闸门在权限系统里排在角色判定之前,因此无法通过配置角色绕过去。日常运营用的是脱敏层,只有元数据与标签,没有原文。
能。记忆的查看、纠正、删除、遗忘、导出与回执链查看被列为退订后永久保留的能力,付费买到的是新增算力与容量,不是记忆的赎金。存储容量确实会随订阅状态变化,但超出容量的部分转为只读归档,不是删除,并且在压缩前会提前多次告知并给出一键导出入口。导出本身永不消耗 One。
已经能用的是:查看、按真值分类筛选、纠正、冻结与解冻、遗忘、按任意日期回看历史版本,以及分项打包的数据导出——登录用户的这些操作真的落到服务端属于他自己的那份记录上。我们没做的是三件:逐条设置作用域(字段在,界面上只读,没有服务端入口)、按时间自动到期(没有入口也没有接口,失效只由被取代触发)、单个会话的删除入口。还在建设中的是:删除覆盖向量索引、摘要、缓存与训练队列这条完整链路,要随这些子系统上线同时兑现,现阶段的记忆账本是一张按用户隔离的表,遗忘就是删掉那一行。我们把这三类分开写,是因为把设计目标说成已交付能力,本身就是一种不诚实。