AgentLeak 是一个面向 AI 智能体的开源隐私测试工具,定位为开发者工具与 AgentLeak 研究基准(arXiv:2602.11510)对应的实用实现。它关注一个传统审计容易忽略的问题:智能体的最终回答可能看起来完全干净,但敏感数据却可能通过工具调用、共享记忆、智能体间消息和日志等通道泄露。AgentLeak 在本地、发布之前对这些通道进行测试。
用途与定位 输入一条执行轨迹(trace),输出一份隐私报告。泄露情况由 AgentRisk 评分,这是一个基于 GDPR 第 9 条和魁北克 Law 25 的、按严重程度加权并按密度归一化的风险指数。检测与评分完全本地进行:使用正则/字典检测器和闭式评分公式,不依赖大模型,无遥测,轨迹在进程内分析。报告默认对数值进行掩码显示(如 TR********78);除非显式开启(privacy.store_raw_traces),否则不存储原始轨迹。实时智能体运行器为可选项:只有显式运行某个项目的 LLM 智能体时,才会把该场景发送到用户配置的端点;默认的脚本化智能体和所有分析保持完全离线。
主要能力
- 检查八个规范化通道:user_input、final_output、inter_agent_message、shared_memory、tool_call、tool_response、log、generated_file。
- 提供九个检测器,其中六个为始终开启的正则/字典检测器,三个为可选检测器。
- 可识别编码与混淆副本:智能体之间传递的 base64 上下文、十六进制标识符、URL 编码参数,以及被拆分到多条消息中的值。对于自声明的编码(base64、hex、URL 编码、字母间距),会在检测前解码,因此 redact 和 MCP 网关也能移除它们;反转、ROT13 和拆分副本会与轨迹中已经暴露的值进行匹配。
- 评分(AgentRisk):每个泄露的密钥按四级严重程度分类,并按被审计 vault 的密度归一化;RI 会全局报告,也会按通道报告,因此即使最终回答干净,也能暴露其背后的 tool_call/shared_memory/log 泄露。该评分满足五项形式化属性(有界性、单调性、严重程度敏感性、尺度不变性、排序稳健性),并在 CI 中校验。
- 合规框架映射:每份报告都会把发现映射到 14 个隐私审计关注的框架控制项,包括 GDPR、魁北克 Law 25、NIST AI RMF、OWASP LLM Top 10、欧盟 AI Act、HIPAA、PCI-DSS、FERPA、COPPA、GLBA、TCPA,以及保险、电信和房地产行业画像。该映射会标注需要审查的控制项,但不构成法律认证。
- 红队测试:62 个可执行插件 ID(24 个原生,另 38 个为兼容 Promptfoo 而转写),映射到 6 个家族、46 个可观测攻击类,并结合 10 种投递策略(直接、越狱框架、标记、编码、Unicode、多轮 Crescendo)。可运行零成本的脚本化基线,或攻击真实配置的智能体;每次探测都会持久化 ASR/ELR/CLR 证据。
- 平台(Web UI):基于 React、Tailwind 和 shadcn/ui(黑色主题)的完全本地平台,自包含(无 CDN,字体自托管),左侧边栏导航,包含项目、红队、运行记录、仪表盘、泄露流与拓扑、Playground、场景等模块。每次分析存储在本地 SQLite 中,可查看、比较(风险稳健支配关系)、导出(JSON/MD/HTML)、删除。每次运行会渲染智能体拓扑图,标出携带泄露的边及其严重程度,并追踪每个密钥从进入系统到被披露的完整路径,便于调试多智能体泄露源头。
- 场景库:内置场景可搜索/过滤,支持上传自己的场景(自动识别并转换 AgentLeak traces、AgentLeak specs 或 ai4privacy 记录),并可导入场景包(36 个场景的 AgentLeak Bench 和 PII Probes)。
- 静态代码扫描:支持本地、ZIP 和 GitHub 源码扫描。
- CI 策略门禁:可在隐私回归时使构建失败;支持声明式隐私策略(按风险、级别、通道和数据类型断言);提供带版本的 JSON Schema 目录用于校验所有公开格式。
- 运行时网关:agentleak proxy 可在工具调用发送前允许、脱敏或阻止,并在返回时判断其结果;可将值替换为假名、固定工具定义、对证据日志签名。
- 模型网关与评测框架:agentleak llm-proxy(兼容 OpenAI)、LiteLLM 护栏和 promptfoo 断言。
使用方式 CLI 快速开始会输出控制台摘要以及 reports/<run_id>.{json,html,md}。Python SDK 提供装饰器用于捕获实时调用,也提供 agentleak.watch() 一行接入任意框架(LangChain、LangGraph、CrewAI、OpenAI Swarm / Agents SDK、Google ADK、OpenHands 与 Cline 等计算机使用/编码智能体,或纯 Python):一个上下文管理器即可记录、退出时分析,并在提供项目名时上传到平台。
框架集成为可插拔注册表:新增一个框架只需在 agentleak/integrations/registry.py 中调用一次 register(),随后会自动出现在平台的项目选择器和 Connect 代码片段中。内置集成包括 generic、LangChain、LangGraph、CrewAI、AutoGen、OpenAI Swarm / Agents SDK、LlamaIndex、Semantic Kernel、Pydantic AI、smolagents、Google ADK、计算机使用/编码智能体(OpenHands、Open Interpreter、Cline)、OpenTelemetry / OpenInference(可复用 Phoenix / OpenLLMetry 追踪)以及 MCP。
适用场景
- 在发布前对 AI 智能体做本地隐私泄露测试。
- 对多智能体系统的工具调用、共享记忆、智能体间消息和日志进行审计。
- 在 CI 中设置隐私回归门禁。
- 对智能体进行红队攻击测试并收集 ASR/ELR/CLR 证据。
- 通过运行时网关在工具调用发出前做允许/脱敏/阻止控制。
- 在本地平台中管理项目、运行记录、场景库并导出报告。
限制与注意事项
- 合规映射仅为技术证据映射,标注需要审查的控制项,不构成法律认证或法律声明。
- 平台、检测与评分均为本地运行,不依赖云端或大模型;实时智能体运行器为可选,只有显式运行时才会连接用户配置的端点。
- 部分编码泄露无法被捕获,详见 docs/encoded-leaks.md 中说明的局限。
- 场景包中两个来自公开研究数据集,带有各自条款:PrivacyLens 派生夹具为 CC-BY-4.0,AgentDojo 派生夹具为 MIT;每个打包场景都声明其来源、来源 URL、许可与归属。
- AgentLeak 自身编写的软件与场景以 MIT 发布。
- 部分具体配置、命令参数、价格与托管服务细节在资料中未完整提供,暂未提供。