桃子桃子快讯
返回首页
工具

Noisegate:面向 AI Agent 的差分隐私网关

开源工具 Noisegate 把差分隐私置于 AI Agent 与敏感数据之间,数学保证单条记录不可泄露,且隐私保证不依…

2026.07.31 · 周五4 分钟阅读

当 AI Agent 被允许查询医疗、人口统计等敏感数据时,如何从机制上保证"单个个体的记录不会被还原"?Show HN 项目 Noisegate 给出的答案是:在 Agent 与数据之间架一道差分隐私(Differential Privacy, DP)网关,把每一次查询都限制在经过严格核算的隐私预算之内。

这套系统的核心立场是:隐私保证不依赖 LLM 是否可信。大模型只是把自然语言问题"翻译"成结构化查询,真正的隐私强制发生在下游的、可独立测试的组件中。换句话说,把 Agent 换成人手敲 SQL,隐私行为也完全一致。

设计要点:信任边界落在网关层

Noisegate 以 MCP(Model Context Protocol)Server 的形式运行在 Claude Desktop 中。当用户用自然语言提问时,LLM 把问题编译成受限的结构化查询,由网关执行并返回带噪声的结果,同时标注置信区间。

关键设计包括:

  • LLM 仅提议查询,不拥有权限:模型无法通过输出"扩大"自身的数据访问边界。
  • 验证层完全可测:决定接收、拒绝或拒绝提供回答的是一段确定性的、覆盖完整测试套件的校验代码。
  • 预算会计独立于模型:隐私预算按 zCDP 组合方式累加,模型无法绕过。

攻击画廊:用真实攻击验证承诺

项目内置三类经典差分隐私攻击,并在 CI 中回归测试,确保防御不会悄悄失效:

  • 差分攻击(Differencing):通过两个仅差一行记录的聚合查询相减,还原目标个体。在关闭 DP 时可精确恢复 Alice 的工资;开启 DP 后,预算会计把两次查询合并计费,噪声使相减结果失去意义。
  • 成员推断(Membership Inference):判断某人是否在数据集中。在 ε 从 8 扫到 0.5 的实验中,攻击者成功率从"几乎确定"坍缩到 0.5(抛硬币水平),而聚合查询的相对误差几乎未受影响。
  • 单例重识别(Singling-out):用查询组合重新锁定个体。DP 开启后无法完成。

部署时单次查询的预算为 ε = 0.05,远低于实验扫描下界,体现偏保守的隐私取向。

数学验证与效用优化

为了证明噪声机制的正确性,Noisegate 把自研实现与差分隐私参考实现 OpenDP 进行了逐项对照:

  • 35 项噪声尺度校验:与 OpenDP 全部吻合,误差不超过 1e-9。
  • 50 万样本分布测试:通过,并设置了"能让测试失败的阳性对照",证明测试本身有分辨力。
  • 混合 zCDP 组合:相比朴素预算记账,可在相同隐私保证下把可回答的查询数从 100 提升到 308,效用约提升 3 倍。

技术栈与可评估性

项目以 Python 实现,核心组件包括 DuckDB(查询执行)、FastAPI(服务接口)、Streamlit(演示界面)、MCP SDK(Agent 接入),并提供 Docker 与 GitHub Actions CI。仓库自带 250+ 测试用例,攻击画廊脚本可由 python scripts/render_demo_gif.py 复现,5 分钟即可走完主要评估流程。

对希望深入架构设计的读者,项目附有 DESIGN.md,完整阐述信任边界的划分与威胁模型。对于正在把 AI Agent 接入敏感数据的团队,Noisegate 提供了一种"把不可信输入挡在门外"的工程范式。

信源