KEEL · 龙骨 · A CURRICULUM FOR THE AI ERA

08. 数据外泄不只发生在最终回答里 — keel 龙骨

给最终回答加敏感词过滤,只覆盖一条输出通道。Agent 还可以把数据放进工具参数、URL query、HTTP header、文件名、通知、浏览器表单、日志、trace 或另一个 Agent 的消息。

给最终回答加敏感词过滤,只覆盖一条输出通道。Agent 还可以把数据放进工具参数、URL query、HTTP header、文件名、通知、浏览器表单、日志、trace 或另一个 Agent 的消息。

先画数据生命周期

采集 -> 存储 -> 检索 -> 进入模型上下文 -> 工具参数 -> 外部系统 -> 日志/审计 -> 删除

每一步都问:数据分类是什么、谁能看到、为什么需要、保留多久、能否跨租户、能否离开当前信任域。

秘密应尽量不进入模型上下文

API token、cookie、私钥和数据库密码由 credential broker 在执行点直接注入 Adapter。模型只看到逻辑资源引用:

credential_ref = config-api/tenant-a/staging

而不是实际 token。这样即使上下文被注入,模型也没有可复制的秘密字符串。

数据分类驱动通道策略

分类 例子 默认处理
public 公开文档 可进入模型和公开输出
internal 内部服务名、非敏感指标 仅组织内模型/工具
confidential 租户配置、事件详情 最小片段、同租户、受控输出
secret token、私钥、cookie 不进入模型;只在执行点注入
regulated PII、财务或健康数据 依政策、地域、用途和留存严格控制

分类是上下文和工具策略的输入,不只是数据库标签。

输出控制要覆盖所有 sink

一个数据流只有在 source 与 sink 同时允许时才能通过:

source: tenant-a confidential config
sink: tenant-a internal ticket -> 可能允许并脱敏
sink: public webhook            -> 拒绝
sink: model trace               -> 只保存摘要/hash

模型提出的“业务理由”不能自行解除 DLP 规则。例外需要明确主体、审批、时限和审计。

日志是常见泄露面

不要默认记录:

日志需要字段级 allowlist、脱敏、访问控制、留存期限和删除能力。为了调试而无限期保存全部输入输出,会把观测系统变成第二份敏感数据库。

检查理解

下一章:一次真正有效的人工审批长什么样?

进入 keel 阅读