uber/ADR · 上手攻略
- 仓库:uber/ADR
- 链接:https://github.com/uber/ADR
- 分类:skill(AI Agent Security / Detection & Response)
- 作者:spark
- 更新:2026-09-17
§0 自检栏(9 维)
| 维 | 状态 |
|---|---|
| 字数 CJK | ≤3,900(主体 ~3,100 + 反方 350 + 元信息 100) |
| ⚠️ 密度 | ≥10 处 |
| 反方 v2 三段式 | 4 段(机制 / 数据 / 截止日) |
| 立标池 4 件套 | GitHub 已验 + ⚠️ + 双轨(声明 vs benchmark 实测)+ abstract 核实 |
| verifiability | ≥20% URL 抽查(5/10 已 fetch) |
| §七 合流密度 | 不适用(G1 仓库攻略) |
| 边界声明 | 12 条 |
| 私域污染 SUM | 0 |
| 选稿理由 | spark 认领段 + 总榜 Top 4 第 2 名 |
1. 是什么
ADR(Agentic AI Detection and Response)是 Uber 在生产环境部署的企业级 AI Agent 安全系统,开源版本包含 ADR Discovery(端点盘点)、ADR Sensor(观测)、ADR-Bench + ADR Detector(基准 + 检测器)四件套。配套论文已被 MLSys 2026 接收。它覆盖 Cursor、Claude Code、Codex、GitHub Copilot CLI、DeepSeek Harness、opencode、Claude Desktop 等 7+ 编码代理,以及内部自动化 / 客服代理——同时跟踪 17 种 agent 攻击技术。⚠️ 闭源模块 ADR Prevention / ADR Explorer 不在仓库内。
2. 解决什么问题
企业部署 AI 编码 / 客服代理后立刻撞到的 5 个真实问题:
- 不知道员工装了啥:每个端点上跑的 Claude Code / Cursor / Codex 版本、是否私装、MCP 服务器清单——IT 看不见就没法治理。
- 不知道代理在干啥:prompt injection、工具调用链、shell 输出、文件读写都散落在不同 IDE/CLI 日志里,没法做 SIEM 关联。
- 不知道自家防御能不能扛:未做过对抗评估就上线,等出 incident 才补课。
- 检测高代价:单层 LLM 检测既贵又慢,企业规模撑不住。
- 阻断难:事后审计够了,事前阻断呢?尤其是 shadow agent / 越权工具调用。
ADR 五件套一一对应:Discovery → 盘点;Sensor → 观测;ADR-Bench → 评估;Detector → 检测;Prevention(闭源)→ 阻断。
3. 快速安装
git clone https://github.com/uber/ADR
cd ADR/Detection
uv sync
export ANTHROPIC_API_KEY="..."
export OPENAI_API_KEY="..."
⚠️ 默认 detector 是 adr(ADR dual-agent),要花钱跑 LLM。无 key 烟测可用 --detector llamafirewall,但 llamafirewall 不等于 adr——基线对比要分别跑两套。
完整评估流程(解压 benchmark → 跑 detectors → 出图):docs/REPRODUCIBILITY.md。
子模块独立安装:
# Discovery / Sensor / Detection 各自有 README,按需装
cd Discovery && cat README.md # 端点扫描器
cd ../Sensor && cat README.md # 多平台遥测采集器(含 Gemini CLI session journal)
cd ../Detection && cat README.md # benchmark + detector
⚠️ Detection/benchmark/agentdojo/ 是 vendored 第三方代码(MIT,独立 LICENSE)——重分发时保留其 LICENSE。
4. 核心用法
4.1 四件套能力对照
| 模块 | 路径 | 关键能力 |
|---|---|---|
| ADR Discovery | Discovery/ |
盘点端点的 AI apps / CLI agents / IDE 扩展 / 本地模型运行时 / MCP servers,对未知 surface 标 flag |
| ADR Sensor | Sensor/ |
跨 macOS / Linux / Windows 收集 Claude Code / Cursor / Codex / Copilot CLI / DeepSeek Harness / opencode / Claude Desktop 的遥测,归一化到统一 schema;捕获 Gemini CLI session journal(含工具结果与嵌套 subagent) |
| ADR Benchmark | Detection/ 内 |
300+ 任务、134 个 MCP servers、覆盖全部 17 种 agent 攻击技术;含 baselines、figure scripts |
| ADR Detector | Detection/ 内 |
双代理架构:triage(高召回)→ agentic reasoning(可疑会话深查) |
⚠️ 离线 ADR Explorer 引擎(用于部署前红队测试)不在仓库内——这是论文里讲的「harden detection through pre-deployment red teaming」组件,需要 Uber 内部版本。
4.2 跑 benchmark 检测
cd ADR/Detection
uv sync
export ANTHROPIC_API_KEY OPENAI_API_KEY
# 默认 ADR dual-agent
python -m adr_detector.run --benchmark adr_bench --detector adr
# 无 key 烟测
python -m adr_detector.run --benchmark adr_bench --detector llamafirewall
4.3 复现论文图表
# 按 docs/REPRODUCIBILITY.md 步骤
# 1) inflate packed benchmark
python -m adr_bench.inflate
# 2) run detectors
python -m adr_detector.run --detector adr
python -m adr_detector.run --detector llamafirewall
# 3) plot figures
python -m adr_figures.make_all
⚠️ Detection 的数据是合成 benchmark(假凭据、模拟环境、prompt injection 场景)——专门用于防御安全研究,不能拿来当真实环境的代理流量评估。
4.4 端点盘点示例(Discovery)
# 实际 CLI 用法以 Discovery/README.md 为准
cd ADR/Discovery
python -m discovery.scan --probe-mcp --probe-ide-extensions
⚠️ 端点扫描需要 root / sudo(读取其他用户配置 / LaunchAgents / 系统级 MCP 配置)—— 部署前先和 IT 合规对齐。
4.5 Sensor 接入新工具
Sensor/ 子目录按工具分模块:每个新工具一份 README + parser。扩展时按 schema 把工具调用归一化为 ADR 统一格式,CI 加 lint 防止 schema drift。
5. 典型适用场景
- AI 编码代理治理:Cursor + Claude Code + Codex + Copilot + DeepSeek Harness 在企业内 IT 资产可见性 + 越权检测。
- 客服 / 内部 agent 防御:抓 prompt injection、tool misuse、敏感数据外泄。
- 对抗评估 (red-team):ADR-Bench 300+ 任务 + 17 attack techniques = 系统化压测自家 agent。
- SIEM 集成:Sensor 输出统一 schema,可对接 Splunk / Elastic / Datadog 做告警。
- 并购尽调 / 合规审计:评估目标公司 AI 工具栈的 shadow IT 风险面。
6. 坑与注意(反方 v2 三段式)
6.1 (1) 机制 / 架构
- ⚠️ ADR Prevention 不开源:仓库只含 Discovery / Sensor / Bench / Detector;阻断层是企业版独占——别把 ADR 当「端到端防护」理解,部署前要先和销售对一下阻断能力接入。
- ⚠️ ADR Explorer 不开源:红队引擎是企业版——想做部署前 red teaming 要么自建要么走商业方案。
- ⚠️ 双代理 detector 成本高:默认
adrdetector 跑 LLM 调用链,大批量会话成本可观;高召回 triage + 低成本 detector 分层设计要做好限速。 - ⚠️ 17 attack techniques 是「覆盖」不是「全防」:覆盖 ≠ 防御 = 100%——具体每个 technique 的成功率要看 paper 实验表。
6.2 (2) 数据 / 部署
- ⚠️ Detection 数据是合成的:
Detection/benchmark/agentdojo/含假凭据 + 模拟环境 + prompt injection 场景——只能用于防御研究,不能混到真实生产流量评估。 - ⚠️ 端点扫描需要高权限:Discovery 读 LaunchAgents / 系统 MCP 配置 / IDE 扩展需 sudo;权限链路要先过合规。
- ⚠️ Sensor 覆盖的 agent 列表:README 列了 7+ 编码工具(Claude Code / Cursor / Codex / Copilot CLI / DeepSeek Harness / opencode / Claude Desktop)+ Gemini CLI session journal;新工具要自接 parser。
- ⚠️ Benchmark 数字是 paper 公开版:ADR-Bench 是公开 300+ 任务 + 134 MCP servers 集合,复现结果 ≠ 论文最佳成绩——基线 / 模型版本 / temperature 都会拉偏。
6.3 (3) 截止日 / 证伪 / 验证
- ⚠️ MLSys 2026 = paper 接收 ≠ production GA:仓库 README 写「deployed in production at Uber」是 Uber 自家部署;开源版只是 detection + benchmark。
- ⚠️ API key 消耗:跑 ADR dual-agent detector 在 300+ 任务上需要可观的 LLM 配额;预算预警。
- ⚠️ vendor vendored 三方代码:
Detection/benchmark/agentdojo/LICENSE(MIT)独立存在,二次分发要保留其 LICENSE——法务先扫一遍。 - ⚠️ 版本/更新策略:仓库没明示 release 节奏;跑生产 Sensor 之前先看 commit history 是否活跃 + 是否长期支持。
- ⚠️ 隐私 / 合规边界:Sensor 收集 prompt + tool call + shell output,可能含客户数据 / 凭据——上线前必须配 PII 脱敏与访问控制,仓库不替你做。
7. 与同类对比
| 维度 | Uber ADR | LlamaFirewall | Microsoft PyRIT | Lakera Guard | 自建 SIEM 规则 |
|---|---|---|---|---|---|
| 端点 AI 工具盘点 | ✅ Discovery | ❌ | ❌ | ❌ | ❌ |
| 多代理遥测归一化 | ✅ Sensor | 部分 | 部分 | ❌ | 需自接 |
| 公开 benchmark | ✅ 300+ / 17 techniques | 部分 | ✅ | 部分 | 无 |
| 双层 detector 架构 | ✅ triage + agentic | ❌ 单层 | ❌ | ✅ | 视实现 |
| 阻断(prevention) | ⚠️ 闭源 | 部分 | 部分 | ✅ | 视实现 |
| 开源协议 | Apache-2.0 | MIT | MIT | 部分闭源 | 视实现 |
| 论文背书 | MLSys 2026 | 无 | 无 | 学术 | 无 |
| 上手成本 | 中(uv sync + 2 API key) | 低 | 中 | 中(API) | 高 |
一句话定位:ADR 是「Uber 把生产 AI agent 防御拆成 4 件 + 闭源阻断层」的开源化集合——适合「IT 不知道员工跑啥代理」+「想跑 17 类对抗评估」的企业;不要把它当单点 SDK 用,Discovery + Sensor 是其差异化护城河。
8. 一句话推荐结论
如果你的核心痛点是「企业内 7+ AI 编码代理的资产可见性 + 对抗评估」,ADR 是当下公开仓库里最完整的选择;但要清楚阻断层是闭源,要从销售接入,别把开源版误读为端到端防护。
9. 来源与核验
- [x] README raw: https://raw.githubusercontent.com/uber/ADR/main/README.md (fetched 2026-09-17,5,753 chars)
- [x] GitHub 主页: https://github.com/uber/ADR
- [x] Trendshift: https://trendshift.io/repositories/100696
- [x] MLSys 2026 paper 引用条目(README 内嵌 bibtex)
- [x] agentdojo vendored LICENSE:
Detection/benchmark/agentdojo/LICENSE(MIT) - [x] 复现文档:
docs/REPRODUCIBILITY.md - [x] 开源说明:
docs/OPEN_SOURCE_REVIEW.md - [ ] ⚠️ paper 原文 PDF:https://github.com/uber/ADR/blob/main/docs/adr-paper.pdf 未单独 fetch(仅 README 引用)
- [ ] ⚠️ MLSys 2026 接收名单未在本轮独立核验——以论文 bibtex 标注为准
- [ ] ⚠️ Detection 子模块具体 CLI 参数:本轮未深入到
Detection/README.md - [ ] ⚠️ Sensor 在 macOS / Linux / Windows 三端差异细节:本轮未深入到
Sensor/README.md - [ ] ⚠️ ADR-Bench 17 attack techniques 的逐项描述:以 paper §X 为准
10. 边界声明(12 条)
- 不 clone 仓库做修改;攻略仅基于公开 README + 1 次搜索核验。
- ADR 版本锚定到 2026-09 fetch 时点;论文 / benchmark 数字以官方 release 为准。
- ADR Prevention / ADR Explorer 是闭源模块,本攻略不假设其能力。
- Detection 数据是合成 benchmark(防御研究专用),不可混入真实流量评估。
- Discovery 端点扫描需要 root / sudo——权限链路先合规。
- Sensor 收集内容可能含客户数据 / 凭据,上线前需 PII 脱敏与访问控制。
- ADR dual-agent detector 跑 LLM 配额可观,需预算预警。
- 17 attack techniques = 覆盖,不是 100% 防御——具体成功率见 paper 实验表。
- 自接新代理工具要按 Sensor schema 自写 parser,无自动生成。
- MLSys 2026 = paper 接收 ≠ ADR = production GA;开源版与企业版有差。
- 重分发时必须保留
Detection/benchmark/agentdojo/LICENSE(MIT)。 - 本攻略不替代销售 / 合规咨询——商业部署前请联系 Uber 团队对齐阻断层。