智能体追踪记录的留存与法务保全:默认 TTL 是一项法律决定。
你追踪平台上那个默认 TTL 是一项法律决定,而它是某位工程师为了压住存储账单顺手选的。智能体的 trace 是业务记录,记录着代客户所采取的行动——争议一旦开始就受保全义务约束,没有争议时又受删除权约束;若系统在欧盟《人工智能法案》下属于高风险,还有六个月的法定下限。真正的陷阱不在主存储,那个你保全得住;而在副本:评测黄金集、微调抽取与厂商侧留存,既躲过了删除请求,也躲过了法务保全。
你其实已经设过一份留存策略了。去看看它写了什么。
trace 的留存期一般只配置一次,在接入某家可观测性厂商时,由当时搭管道的那个人设定。便宜档位的下拉框里写着大概三十天,选三十天是因为账单更低。没人记下"这里做过一个决定",因为从工程这一侧看,它根本不像一个决定。
- 智能体的 trace 不是应用日志。一行日志说的是"发生过一次请求"。一条智能体 trace 装着用户下达的指令、智能体检索到的证据、它记录下的推理、它发起的工具调用,以及它在真实系统里采取的动作。那是一份关于决策与行为的记录——恰是每一份留存清单本来就覆盖的两个类别。
- 暴露窗口比调试窗口长一个数量级。没有人会去调九个月前的 trace。但当客户对你的智能体九个月前做过的事提出争议时,人人都想要它。这两件事被同一个 TTL 一并了断,而这个 TTL 是照第一件事定的。
- 至少在一个法域里,现在有了法定下限。欧盟《人工智能法案》要求高风险系统的提供者与部署者,按与用途相称的期限保留自动生成的日志,且至少六个月(第 19 条与第 26 条第 6 款),除非其他法律规定更长——而其他法律经常规定更长,尤其在金融服务与雇佣领域。附件三独立系统的分阶段生效日期已经改过一次,所以把日期当作易变量、把下限当作稳定量。见欧盟《人工智能法案》——智能体视角。
- 三十天可以同时既不合规又留存过度。对受监管的决策路径太短;对那个吞下了整个客服邮箱、装满个人数据的临时内部工具又太长。一个全局 TTL 不可能同时对这两者正确,而全局设定正是团队同时在两个方向上都出错的方式。
三个消费者,三份日程。别再用一个存储同时伺候他们。
单一数字永远不管用的原因是:三个互不相干的相关方,想要同一份数据,条件却互不相容,而他们很少出现在同一个会议里。
- 调试要的是全量、即时、短暂。包含提示词与工具载荷的完整跨度,秒级可查,需要几天到几周。这是每字节最贵的一层,也是最该最快过期的一层。它就是追踪与可观测性里描述的那一层。
- 举证要的是一个站得住脚的子集,保存数年,不被改动。谁提出的请求、智能体做了什么、以谁的授权、用了哪个模型与哪版策略,以及如果有批准,批准是什么。它不需要令牌级细节。它需要完整性——仅追加存储,最好加上哈希链,那属于审计轨迹的规矩,而不是可观测性的规矩。
- 评测要的是一份经过筛选、永久保留、还在生长的副本。从真实流量搭起来的黄金集是一项会增值的资产,而且它被刻意做成不会过期——这恰恰使它成为整个议题里最难处理的对象。流量如何被提升进去,见生产反馈信号。
用三个层级、三份日程分别伺候他们,并且把举证层做成 trace 的一次刻意投影,而不是整条 trace。这个投影既让长期留存变得付得起,也让它变得挺得住——你保的不是五年的原始提示词,而是五年的一份结构化决策记录,只不过它恰好由那些提示词派生而来。
给举证层一个好用的检验:仅凭这份记录,你能不能重建出智能体做了什么、以及为什么一个通情达理的人会批准它——而不需要原始的模型输出?能,你就可以放心地让原始层快速过期。不能,那你其实是在拿调试层当审计轨迹用,而它的 TTL 就是你真正的留存策略。
把副本一一列出来。策略失守的地方在这里,不在主存储。
任何成熟的智能体技术栈,都会把同一条 trace 扇出到四到十个去处,每个都有自己的生命周期,而一份针对 trace 存储写的留存策略只管得住其中一个。把清单写下来;第一稿永远是不全的。
- 模型厂商自己的留存。你的提示词躺在厂商那一侧,按厂商的日程留存,通常还带一个单独的滥用监测窗口,有时零留存条款要你主动去要。那是一条合同条款,不是一个开关——该谈的地方要谈,见第三方模型与供应商风险。
- 评测黄金集。被提升上来、刻意永不过期的 trace,通常放在另一个团队拥有的对象存储里,而且里头的个人数据常常原封不动。
- 微调与蒸馏抽取。一旦流量被用来训练权重,删掉源记录并不会移除它的影响。如果个人数据进了训练集,你面对的问题不是留存策略能解的——答案是在抽取那一步加过滤器,而不是在末端做删除。
- 数仓与 BI 导出。每夜同步进分析数仓的那份,带着自己的留存期、自己的访问模型,而且通常完全不知道这些行是智能体的决策。
- 子处理方的遥测。网关、护栏服务、向量存储与沙箱厂商,各自看到同一段对话的碎片,也各自留着。要知道是哪些,靠的是数据治理为整个循环画出来的那张图。
- 备份与事故快照。你刚删过数据的那个库有三十五天的备份窗口,而三月份某人做事故排查时把一整天的 trace 拷进了一个共享盘。
让这件事变得可处理的操作规则是:每一个副本在创建时就打上它所继承的留存类别,并拒绝创建没有类别的副本。一次没有留存类别的 trace 导出,与一条没打标签的成本行属于同一类缺陷——事后靠翻找是找不回来的。
法务保全是一项功能,必须在用得着之前就造好。
当诉讼或调查变得可合理预见时,保全义务即告成立,并压过你的删除日程。可观测性系统建立在相反的假设之上——它们按设计以 TTL 删除,而一个已经触发的 TTL 是没法回溯撤销的。下面的一切都必须事先存在。
- 保全应当中止过期,而不是把数据拷出去。导出到共享盘是没有保全机制时团队会做的事,而它制造出一份没有保管链、不受控的副本。你要的机制是记录上的一个标记,回收进程会遵守它。
- 它的范围必须能用你真能查询的东西来界定。保全指令来的时候是"与这位客户在这两个日期之间相关的一切"。如果你的 trace 没有按一个稳定的主体标识(租户、账号、案件)建索引,你就无法界定范围,最后只能全部保全——既贵,本身又是一份责任。
- 被保全的记录必须变为不可变,且这次状态转换要记录在案。谁下的保全、何时、范围多大、依据哪桩事由。一份你举不出证的保全,是一份你靠不住的保全。
- 它必须够到那些副本。一次只中止了 trace 存储 TTL、却任由数仓导出悄悄过期的保全,保住的是最没用的那份副本。这正是 STEP 3 要排在前面的原因:保全机制的完整度,上限就是你那份清单的完整度。
- 解除必须和设立一样审慎。永远没人撤掉的保全,会变成一次意外的永久留存,把留存日程本来要框住的每一份暴露全都请了回来。把在途保全放进日历定期复核。
- 演练一次。第一次动用保全机制,不该是它真正要紧的那一次。拿一桩虚构的事由做一次桌面推演,一个下午就能找出缺失的主体索引。
删除权、保全与黄金集:三方冲突。
一位数据主体要求你抹除他的数据——在 GDPR 下你有一个月作出回应。而同一批记录正处于法务保全之下,或者已经被提升进了你回归门禁所依赖的评测集。三项都正当的义务,为同一个对象朝三个方向拉扯。这个案子决定你的策略是不是真的。
- 保全一般压过删除权,但你得说得出理由。保全义务与法律主张是对抗删除请求、继续保留数据的公认依据。你不能做的是非正式地援引它:你需要一份记录,说明哪桩事由覆盖哪位主体,并且具备在保全一解除就执行抹除的能力。一句没有结构的"我们说不定还要用"不构成依据。
- 评测集不是依据。"我们的回归套件会变弱"在删除权面前毫无分量。任何人只要用含个人数据的原始生产流量搭起了黄金集,他搭起来的就不只是一项资产,还是一份义务。
- 所以"提升"这一步必须把记录洗干净。把 trace 移入评测集的那一步,正是剥离或假名化标识符的正确位置——用一致的替代值,让任务保持连贯而主体不再可辨。要在提升时做,因为事后再做就得找出每一份副本,而那正是你原本要绕开的问题。
- 举证层能在写入时假名化的就在写入时做。一份用稳定内部 ID 指向账号、个人数据只能通过一张单独映射表解开的决策记录,既给你一份可以保存数年的记录,也给你一个地方去履行删除,而不必摧毁审计轨迹。这与 STEP 2 里让长期留存付得起的设计是同一套。
- 把每一次冲突的处理结果记下来。当你因为保全而拒绝一次抹除时,这个决定、它的依据与它的失效期,本身也是记录。监管方的问题从来不是"你删了没有"——而是"你依据什么作的决定,能给我看吗"。
值得内化的通则是:在写入时最小化,而不是在删除时。每一个你从来没写进 trace 的标识符,都是一个你永远不必去找、去保全、去导出、去抹除的标识符。在追踪边界上做脱敏很便宜;跨六个系统做回溯删除,是整个议题里最贵的工程活儿,而且永远无法完全验证。
把日程写出来,并让默认值成为一个刻意的选择。
交付物很短,而且归属一位具名负责人。一页纸,四列:层级、内容、期限,以及该期限的法律依据或业务理由。
- 原始调试层——数天到数周。完整提示词与载荷。压到你还能运维的最短,因为它是你手上风险最高、成本也最高的数据。在摄入时就脱敏。
- 举证层——数年,照你本来就有的日程走。结构化、假名化、仅追加的决策记录。别在这里自创数字:你公司对业务记录、以及对这个智能体所触及的受监管流程,早就有一份留存清单。继承它。
- 评测层——无限期,但只对洗干净的记录。在提升时假名化,配一位负责人和一次定期复核,把不再代表你在线形态的任务清出去。
- 保全覆盖层——与上述三层正交,带范围界定、不可变性、审计日志,以及一个解除复核的节奏。
- 受监管覆盖层——是地板,不是目标。凡是《人工智能法案》六个月下限或某个行业日程适用的地方,它为那个入口定下最低值;而你自己的暴露面通常主张:举证层要更长,原始层要更短。
- 架构变化时复核它,而不是每年复核一次。一个新的子处理方、一条新的导出、一个新的记忆存储——每一个都是一份新副本,而这份日程的时效性,只等于它背后那份清单的时效性。
今天就去看一眼你追踪平台上的留存设置,并弄清是谁、为什么这样选的。然后把那一个存储拆成三层、配三个说得出理由的期限,在追踪边界而非下游脱敏标识符,给每一次导出打上它继承的类别,并在事由到来之前把保全标记造好——因为一个已经触发的 TTL 是撤不回来的。trace 是你的智能体究竟做了什么的唯一记录;问题从来不是要不要留,而是留它的哪一份投影、留多久,以及谁能证明自己没有改过它。
相关:审计轨迹与溯源讲举证层必须装什么,智能体的数据治理讲如何画出数据流,数据驻留与数据主权讲那些副本物理上在哪,人工复核的成本讲为何批准记录也属于这件事。