跳到主要内容

64 篇博文 含有标签「compliance」

查看所有标签

擦除模型仍在读取的上下文:数据保留策略带来的隐患

· 阅读需 13 分钟
Tian Pan
Software Engineer

一个每晚运行的数据留存 worker(retention worker)会删除任何超过 30 天的用户消息。一个从 3 月初开始的长周期企业支持会话,到 5 月底仍然处于活跃状态。在第 41 轮对话请求进来时,你的 Prompt 组装器(prompt assembler)从同一个消息表中读取数据,而那个留存 worker 一直在悄悄地清理这个表。第 1 到 28 轮已经消失了。模型接收到的对话是从第 29 轮开始的,没有任何信号表明之前的对话曾经存在过。用户问道:“我们之前商定的 SLA 是什么?”模型自信地编造了一个数字,因为真正的答案在第 4 轮——而留存 worker 在前一天晚上把它删除了。

这不是模型故障。模型完全按照其应有的方式运行:从交给它的上下文中生成一个看似合理的答案。故障发生在更上游,处于两个团队之间的鸿沟中——每个团队都认为自己拥有消息表。

你的 Agent 没有留下的那本证据档案

· 阅读需 10 分钟
Tian Pan
Software Engineer

你的调用链路会记录每一个 token。它记录每一次工具调用、每一次重试、每一次检索延迟、每一个模型 id。看起来无所不包。然后,某个监管机构、某个客户、或者你自己内部的 incident 频道,抛出一个本该轻松回答的问题:模型在决策那一刻究竟看到了什么? 你这才发现,调用链路记下了"问题",却没记下模型当时正在看着回答的"答案"。

那次检索命中的 chunks 早就因为上周二的重建索引轮换出了向量存储。那次工具响应是一段流式 payload,你只保留了最终态摘要,因为完整流会让账单翻三倍。那段 system prompt 是运行时按一个 feature flag 拼装出来的,而那个 flag 此后又翻转了两次,你的 flag 服务并不按时间戳保留历史值。你对发生了什么有完整的可观测性——调用图、token 数、延迟。但你对模型当时在针对什么作答,一无所知。这道缺口,就是调用链路与决策记录之间的差别。大多数团队没意识到自己只造了两者中的一个。

你的 AI 披露在第三轮就消失了,没人察觉,直到监管者发现

· 阅读需 12 分钟
Tian Pan
Software Engineer

你的法务团队花了四次会议来打磨那一句披露的措辞。工程团队把它放到了系统提示词的最顶端。QA 确认每个会话的第一轮都会出现。三个月后,一位监管者转发了一份对话记录:这是一段处理投诉的对话的第十四轮,整整一小时围绕一笔退款纠纷给出实质性建议,而在那十四轮里,用户从未看到「我是一个 AI」这几个字。你那份通过单轮合规评审批准的披露,在结构上根本无法在真正需要它的对话里存活下来。

这就是「披露衰减」(disclosure decay),它是 2025–2026 那波聊天机器人监管浪潮没有设计去捕捉、你的 QA 流程也没有配置去测试的多轮 Agent 失败模式。欧盟 AI 法案第 50 条的义务将在 2026 年 8 月 2 日正式可强制执行,罚款最高可达 3500 万欧元或全球营业额的 7%。加州的 SB 243 已于 2026 年 1 月 1 日生效,附带私人诉讼权,消费者可以直接起诉,每次违规最低赔偿 1000 美元。华盛顿州要求重复披露,对未成年人采取每小时一次的频率。这些监管体系没有一个是在假设「披露会在第三次工具调用后悄无声息地从会话里掉出去」的前提下写出来的——但这就是你的运行时此刻正在做的事,在每一个长时间运行的对话里,正在生产环境中发生。

你的智能体审计日志记录了一切,唯独没有记录原因

· 阅读需 12 分钟
Tian Pan
Software Engineer

合规部门给你转发了一张工单。三周前,一名客户的退款请求被你的支持代理拒绝了,他们发起了申诉,现在需要有人解释这一决定。你对此感到很淡定,因为你记录了一切。每一次提示词、每一次工具调用、每一段检索到的内容、每一个 Token 计数、每一项延迟数据——所有这些都在追踪记录(trace)中,你可以在几秒钟内调出它们。

你调出了记录。你可以看到代理收到了退款请求。你可以看到它调用了 get_order_history,接着是 check_return_window,然后是 lookup_policy。你可以看到它检索到的确切政策文本。你可以看到它发送的最后一条消息:拒绝退款。追踪记录是完整的。每一个 span 都是绿色的。但你仍然无法回答那个问题,因为追踪记录显示代理拒绝了退款,并向你展示了它查看过的所有内容,但它没有向你展示为什么这些输入叠加在一起的结果是“不”。原因存在于模型如何权衡上下文,而这种权衡从未成为一种产物(artifact)。它从未在任何地方被记录下来。

这就是追踪记录与解释(explanation)之间的差距,几乎所有声称“我们拥有完全可观测性”的团队都还没有意识到,他们只构建了前半部分。

影子 AI:你的团队已经上线的 AI 智能体

· 阅读需 10 分钟
Tian Pan
Software Engineer

影子 IT 曾经意味着营销团队报销 SaaS 订阅,或者工程师私自创建 S3 存储桶。这很烦人,是采购方面的头疼问题,但大部分情况下是可以承受的。影子 AI 也是出于同样的本能——绕过缓慢的官方路径——只不过爆炸半径更大,且进入门槛几乎降至为零。

一名工程师可以在一个下午将 LLM API 调用接入生产工作流。一名支持主管可以在午饭前搭建一个无代码的分流智能体。一名数据分析师可以将一个季度的客户记录粘贴到聊天窗口中,以“快速总结一下”。这些都没有经过审查,没有出现在架构图中,而且你的治理计划无法保护一个它根本不知道存在的系统。

令人不安的是规模。2025 年 UpGuard 的一项调查发现,超过 80% 的员工——以及近 90% 的安全专业人员——在工作中使用未经批准的 AI 工具。你的安全团队在用,你的高管也在用。问题不在于你是否有影子 AI,而在于你是否能看到它。

没人做的 AI 无障碍审计

· 阅读需 12 分钟
Tian Pan
Software Engineer

打开你的智能体产品,开启 VoiceOver,然后发送任意提示词。如果你使用的是典型的带有内联推理过程的流式 UI,那么你在接下来的 30 秒内听到的内容并非你的产品。那是一股汹涌的局部 token 流、单词中间的重排、无人播报的状态变化,以及一段视力正常的用户选择查看、但盲人用户却无法逃避的推理独白。在舞台上演示效果极佳的界面,对于屏幕阅读器来说,是一场以语音形式发起的拒绝服务攻击。

这是 AI 团队中没有人会运行的审计。设计评审批准了流式动画。评估套件测量了回答质量。延迟仪表盘追踪了首个 token 响应时间。但这些工具都没有注意到,让某一群体感到产品快速且贴心的功能特性,却让另一群体完全无法使用。这种疏忽正开始出现在亲自诉讼申请中——过去十年一直在处理针对电商网站无障碍投诉的联邦法院,现在看到的 AI 界面相关投诉正急剧增加,据一家追踪机构报告,仅在 2025 年,同比增幅就达到了 40%。

内部评估集:一个无人审查的隐私边界

· 阅读需 12 分钟
Tian Pan
Software Engineer

你的 AI 团队所谓的“评估集”(eval set),在大多数发布 LLM 功能的公司中,其实是从生产日志中提取的真实客户对话集合。团队中没有人认为这是一个隐私事件。数据从未离开过集群。没有配置新系统。没有增加供应商。一名工程师写了一个查询,将几千条追踪记录(traces)导出到标注工具中,然后团队就开始根据这些记录对模型输出进行评分。法律团队从未听说过这件事,因为从内部来看,什么都没有改变——原本就存在于同一个数据库中的对话,现在只是被几名工程师和一个裁判模型(judge model)读取了而已。

这就是那个无人审查的隐私边界。客户向你发送消息是为了让你回答他们。他们并不是为了让你拿这些消息去衡量模型才把消息给你的。这两种用途在存储层看起来完全一样,在推理层感觉也一样,但在每一种现代隐私监管制度下,它们属于不同的处理目的——而两者之间的鸿沟,正是下一轮合规阵痛将要降临的地方。

移动应用商店审核与 AI 功能:发布频率的碰撞

· 阅读需 10 分钟
Tian Pan
Software Engineer

一个 Prompt 回归在上午 9 点上线。在 Web 应用上,工程师在午饭前就回滚了系统 Prompt,追踪日志随之恢复平静。在 iOS 上,同样的回归存在于 App Store 三周前审核通过的二进制文件中——团队现在必须在两种方案中做出选择:要么在服务端替换 Prompt(这会使商店对用户实际行为的审核失效),要么申请加急审核(这需要花费 24-48 小时,还要消耗一点与平台团队积攒的人情值)。哪种方案都不在操作手册(runbook)里。

这就是部署节奏冲突(deploy cadence collision):Web AI 功能按照团队的时钟迭代,而移动端 AI 功能则按照平台的时钟迭代。大多数发布流程(release trains)在有人想到“Prompt 是否应该与二进制文件绑在同一辆列车上”之前就已经确定了。结果是税收在悄然累积——审核延迟、不对称的回滚延迟、在重新提交时无法通过隐私审核的未披露 AI 界面,以及一整类移动端工程师修复速度仅为 Web 同行十分之一的 AI Bug。

检索引用税:为什么合规性会增加 30% 的 RAG Token 账单

· 阅读需 12 分钟
Tian Pan
Software Engineer

我最近交流过的一个团队向一家财富 500 强公司的内部法务办公室出售了他们的法律 AI 产品,并在系统提示词中增加了一行:“每一个事实性陈述必须包含对检索源的内联引用。”产品路线图为这种新行为分配了 5% 的 Token 预算缓冲。在该受监管租户上线 60 天后,财务部门标记了每月推理支出激增了 34%。没有人搞坏产品。没有人发布新功能。这项促成交易的合规要求,也悄然改写了其背后的单位经济效益。

这就是检索引用税,几乎每个服务于受监管行业——法律、医疗、金融、有审计约束的企业——的 RAG 系统最终都要支付这笔费用。这笔税收是结构性的,而不是 Bug。它源于引用纪律迫使模型进入了一种不同的生成模式,而且它在客户签署的采购规范中无处可寻。

智能体记忆是合规层面:你从未打算构建的记录管理系统

· 阅读需 13 分钟
Tian Pan
Software Engineer

针对你的智能体记忆层的第一次合规升级,几乎从不以监管机构信函的形式出现。它往往是以你企业级销售工程师发来的一张 Jira 工单的形式出现的,上面写着:“客户的隐私团队正在阻碍合同签署——他们想知道在你的系统中‘忘记我的用户’到底是什么意思,并且他们要求在周五前给出书面答复。”这张工单通常在记忆层发布 6 到 12 个月后送达,而构建该功能的工程团队在读完问题的那一刻就会发现,他们不小心构建了一个没有任何记录管理系统(records-management system)应有原语的记录管理系统。

这是智能体产品中长期记忆的结构性问题。构建它的团队通常会针对记忆功能的卖点进行优化——检索质量、延迟、存储成本,以及让助手感觉很懂用户的个性化体验。在设计评审中,没有人会去估算同时被构建出来的那个并行系统的代价:一个按用户、按租户、跨区域的数据存储,它带有保留义务、删除语义、审计导出要求,而且从第一个用户数据进入其中的那一刻起,监管机构的倒计时就开始了。记忆并不是一个功能。它是每个隐私制度、每份企业采购调查问卷以及每个被遗忘权(right-to-erasure)请求最终都会找上的运营界面(operational surface)。

智能体临时目录:无人盘点的无主文件系统 PII 暴露面

· 阅读需 11 分钟
Tian Pan
Software Engineer

一位监管人员走进你的办公室,提出了安全团队反复演练过的那个问题:“请展示客户数据存放的每一个地方。” 你的数据团队拿出了清单。主数据库在上面。分析型数据仓库在上面。对象存储、队列、搜索索引、备份目的地——统统都在上面,附带着分类标签、保留政策、加密详情和负责人姓名。接着,房间里有人提到了 Agent 工作线程池,而清单上却对此只字未提。这个线程池已经运行了九个月。每个工作线程都有一个本地磁盘。这些线程上的 Agent 一直在解析 PDF、转录音频、下载邮件附件,并在工具调用之间缓存中间 JSON,而这一切从未停止过。却没有人将这些内容放入资产登记表。

这就是“临时目录问题”(scratch directory problem)。每一个长期运行的 Agent 工作线程都会积累一个临时文件系统,随着新工具的加入而有机增长——PDF 解析器提取的文本、Whisper 步骤转录的音频、Gmail 工具下载的附件、浏览器使用步骤的截图、为下一轮对话缓存的向量搜索片段、Agent 在两次工具调用之间生成的中间 JSON(以便第二次调用不必重新推导)。与数据库、队列和存储桶不同,这个表面没有保留政策,没有静态加密标准,没有 DLP 扫描器过滤,也没有出现在数据分类电子表格中。平台团队认为 “Agent 状态”指的是推理提供商的上下文窗口。SRE 团队认为 “Agent 状态”指的是持久化数据库。而工作线程的 /tmp/agent-workspace-${session_id}/ 目录则是客户数据的第三份副本,且处于无人管理的状态。

当被遗忘权遇上微调:当删除止于快照

· 阅读需 12 分钟
Tian Pan
Software Engineer

一位客户提交了一份主体访问请求(Subject-Access Request),要求删除他们的数据。数据工程师清理了生产数据库、分析仓库、支持工单存档以及冷备。法务团队在数据清单中列出的每个系统都反馈清理完毕。随后,房间里有人提出了一个没人想第一个回答的问题:那模型呢?

三个月前,该客户的支持记录被用于一次微调运行。从那时起,由此生成的适配器(Adapter)就一直在为其他客户提供预测服务,其中嵌入了该客户的措辞、账户名称,偶尔甚至还有权重中的原句。你可以证明数据仓库中的数据已删除。但你无法证明模型中的数据已删除 —— 团队中最诚实的那位成员会大声说出这一点。