# ADR | Uber Open Source | Knowledge Base | Instagit

ADR secures enterprise AI agents through observability, security benchmarking, and threat detection. Deployed at Uber.

GitHub Stars: 1.1k

Repository: https://github.com/uber/ADR

---

## Articles

### [Best Practices for Analyzing AI Agent session_id and Timestamp Patterns in ADR](/uber/ADR/best-practices-analyzing-ai-agent-session-id-timestamp-patterns-adr)

Master AI agent session analysis in ADR. Normalize timestamps to UTC, prefix session IDs, and use deterministic filenames for reliable tracking and change detection. Learn best practices now.

- Tags: best-practices
- Published: 2026-08-07

### [Understanding the `has_meaningful_content()` Filtering Logic in Uber ADR](/uber/ADR/understanding-has_meaningful_content-filtering-logic-adr)

Learn how Uber ADR's has_meaningful_content() filters AI telemetry. Discover how it identifies conversations, tool use, and substantial text, rejecting empty or noisy events. Optimize your AI detection now.

- Tags: deep-dive
- Published: 2026-08-07

### [How to Run Pytest Tests with Coverage for ADR Sensor Development](/uber/ADR/run-pytest-tests-coverage-adr-sensor-development)

Learn to run pytest tests with coverage for ADR Sensor development. Execute your test suite effectively and get detailed coverage reports for robust sensor development.

- Tags: how-to-guide
- Published: 2026-08-07

### [ADR Security Use Cases: Detecting Prompt Injection and Data Exfiltration with Uber's Dual-Agent Framework](/uber/ADR/adr-security-use-cases-detecting-prompt-injection-data-exfiltration)

Secure your LLM apps with ADR. Detect prompt injection and data exfiltration using Uber's dual-agent framework for robust security.

- Tags: use-cases
- Published: 2026-08-07

### [Understanding the Two-Tier Detection Architecture in ADR: Triage + Agentic Reasoning Explained](/uber/ADR/understanding-two-tier-detection-architecture-adr-triage-agentic-reasoning)

Explore ADR's two-tier detection architecture. Learn how high-recall triage and high-precision agentic reasoning balance speed, cost, and accuracy for effective detection.

- Tags: architecture
- Published: 2026-08-07

### [Handling Platform‑Specific Differences (macOS, Linux, Windows) in ADR Sensor](/uber/ADR/handling-platform-specific-differences-adr-sensor)

Learn how the ADR Sensor handles platform-specific differences across macOS Linux and Windows using Python's platform system for OS detection and conditional code execution.

- Tags: how-to-guide
- Published: 2026-08-07

### [How to Integrate ADR Sensor Output with SIEM and Security Pipelines](/uber/ADR/integrate-adr-sensor-output-siem-security-pipelines)

Easily integrate ADR sensor output with SIEM and security pipelines. Stream structured JSON telemetry to Splunk, Elastic Stack, Sentinel, and more by configuring export APIs.

- Tags: how-to-guide
- Published: 2026-08-07

### [Processing Cline Logs from JSON Task Files in ADR: A Technical Deep Dive](/uber/ADR/processing-cline-logs-json-task-files-adr)

Learn how ADR processes Cline logs from JSON task files. Our ClineParser normalizes raw logs into AgentEvent objects for unified AI assistant security detection.

- Tags: deep-dive
- Published: 2026-08-07

### [How ADR-Bench Benchmarks AI Agent Security with 300+ Tasks: A Complete Technical Breakdown](/uber/ADR/adr-bench-benchmark-ai-agent-security-300-tasks)

ADR-Bench benchmarks AI agent security with 303 tasks. Discover its unique JSON catalogue, MCP server, and three-step workflow for comprehensive evaluation and visualization.

- Tags: deep-dive
- Published: 2026-08-07

### [Implementing Session Deduplication in ADR Using filter_entries_by_existing_files](/uber/ADR/implementing-session-deduplication-adr-filter_entries_by_existing_files)

Learn how to implement session deduplication in ADR using filter_entries_by_existing_files. Ensure only new or updated sessions are processed for efficient sensor runs.

- Tags: how-to-guide
- Published: 2026-08-07

### [Setting Up ADR Sensor with XDG_CACHE_HOME for Session Storage](/uber/ADR/setup-adr-sensor-xdg_cache_home-session-storage)

Learn how to set up ADR Sensor with XDG_CACHE_HOME to easily redirect AI-agent session storage to your preferred custom location. Configure ADR Sensor efficiently.

- Tags: how-to-guide
- Published: 2026-08-07

### [How to Extract Tool Usage Patterns from ADR chat_history Using AgentEvent](/uber/ADR/extract-tool-usage-patterns-chat_history-adr-agent-event)

Learn to extract tool usage patterns from ADR chat_history using AgentEvent. Discover how to access tool information efficiently with our guide.

- Tags: how-to-guide
- Published: 2026-08-07

### [Understanding the BaseParser Abstract Class for Developing Custom ADR Parsers](/uber/ADR/understanding-baseparser-abstract-class-custom-adr-parsers)

Learn how to develop custom ADR parsers using the BaseParser abstract class. Ingest and normalize logs from any AI agent seamlessly with this powerful tool.

- Tags: deep-dive
- Published: 2026-08-07

### [How to Parse Cursor IDE Telemetry from SQLite state.vscdb](/uber/ADR/parse-cursor-ide-telemetry-sqlite-state-vscdb)

Learn to parse Cursor IDE telemetry from state.vscdb using Uber's CursorParser. Extract conversation bubbles and composer metadata into standardized AgentEvent objects for analysis.

- Tags: how-to-guide
- Published: 2026-08-07

### [How AgentObserver Orchestrates Multiple AI Agent Parsers in ADR](/uber/ADR/agentobserver-orchestrate-multiple-ai-agent-parsers-adr)

Learn how AgentObserver orchestrates multiple AI agent parsers in ADR. This class centralizes parser execution and aggregates outputs into a unified AgentEvent stream.

- Tags: internals
- Published: 2026-08-07

### [How to Set Up ADR Sensor with Custom Output Directories: Configuration and CLI Guide](/uber/ADR/setup-adr-sensor-custom-output-directories)

Learn to set up ADR Sensor with custom output directories using the --output-dir flag or Python's AgentObserver. Configure ADR for your project's needs.

- Tags: how-to-guide
- Published: 2026-08-07

### [How to Filter ADR Agent Events by Source (Claude, Cursor, Codex)](/uber/ADR/filter-adr-agent-events-by-source-claude-cursor-codex)

Learn to filter ADR Agent Events by source like Claude, Cursor, or Codex. Use Python list comprehensions to easily manage AgentEvent objects based on their source attribute.

- Tags: how-to-guide
- Published: 2026-08-07

### [Implementing Incremental Session Processing in ADR Sensor to Avoid Reprocessing](/uber/ADR/implementing-incremental-session-processing-adr-sensor-avoid-reprocessing)

Implement incremental session processing in ADR Sensor to efficiently skip processed data and capture updates. Optimize your data pipeline by avoiding reprocessing.

- Tags: internals
- Published: 2026-08-07

### [How to Configure ADR Sensor Output Formats: JSON vs JSONL](/uber/ADR/configure-adr-sensor-output-formats-json-jsonl)

Learn to configure ADR Sensor output formats JSON vs JSONL using the --output-format flag. Choose single JSON documents or line-delimited JSON records for your events.

- Tags: how-to-guide
- Published: 2026-08-07

### [AgentEvent Schema and Unified Telemetry Format in ADR: Complete Guide](/uber/ADR/agent-event-schema-unified-telemetry-format-adr)

Understand the AgentEvent schema and unified telemetry format in ADR. This guide explains how ADR normalizes AI agent telemetry into a single, self-describing JSON format for comprehensive insights.

- Tags: deep-dive
- Published: 2026-08-07

### [How to Add a New AI Agent Parser to Uber's ADR Sensor: A Step-by-Step Guide](/uber/ADR/how-to-add-new-ai-agent-parser-uber-adr-sensor)

Learn how to add a new AI agent parser to Uber's ADR Sensor. Follow this guide to implement parse_all and register your parser for automatic discovery.

- Tags: how-to-guide
- Published: 2026-08-07

### [What Aspects of the ADR Detection System Are Not Included in the Open-Source Release?](/uber/ADR/adr-open-source-release-exclusions)

Discover what's missing from the open-source uber/ADR release. Learn which ADR detection system components like Prevention and Explorer are not included.

- Tags: internals
- Published: 2026-08-06

### [How to Debug MCP Server Failures During ADR Benchmark Execution: A Complete Guide](/uber/ADR/debug-mcp-server-failures-adr-benchmark)

Debug MCP server failures during ADR benchmark execution. Enable debug flags, check health endpoints, validate tools, and isolate tasks for quick resolution.

- Tags: how-to-guide
- Published: 2026-08-06

### [Security Boundaries for Synthetic Benchmark Data in Uber ADR: 5 Protective Layers Explained](/uber/ADR/adr-synthetic-data-security-boundaries)

Discover Uber ADRs 5 security layers protecting synthetic benchmark data: sandbox isolation, runtime checks, synthetic-only fixtures, policy enforcement, and guardrails. Learn how ADR prevents production data contamination.

- Tags: deep-dive
- Published: 2026-08-06

### [How the `plot_paper_figures.py` Script Generates Figures for the ADR Benchmark](/uber/ADR/plot-paper-figures-py-script-function)

Discover how the plot_paper_figures.py script in the uber/ADR repo generates publication-ready figures from benchmark results. Learn its data processing and plotting pipeline.

- Tags: how-to-guide
- Published: 2026-08-06

### [ADR Benchmark summary.json and result.json File Structure Guide](/uber/ADR/adr-benchmark-generated-data-structure)

Understand the ADR benchmark summary.json and result.json file structures. Learn about run-level aggregates and per-task performance metrics including success rate and speedup.

- Tags: how-to-guide
- Published: 2026-08-06

### [Can LlamaFirewall Be Used as an Alternative Detector Within the ADR Framework?](/uber/ADR/llama-firewall-alternative-detector-adr)

Yes, LlamaFirewall is a fully supported alternative detector in the ADR framework. Swap it in via configuration without code changes to enhance your ADR implementation.

- Tags: how-to-guide
- Published: 2026-08-06

### [What Is the Sensor Component in ADR and How Does It Collect Agent Telemetry?](/uber/ADR/adr-sensor-component-agent-telemetry)

Discover the Sensor component in Uber's ADR. Learn how it collects AI agent telemetry by gathering and normalizing raw interaction logs for analysis.

- Tags: deep-dive
- Published: 2026-08-06

### [Vulnerable vs Benign MCP Servers in ADR‑Bench: Key Differences Explained](/uber/ADR/vulnerable-vs-benign-mcp-servers-adr-bench)

Understand the crucial differences between vulnerable and benign MCP servers in ADR-Bench. Learn how ADR-Bench tests malicious behavior detection with insecure fixtures and production-like contexts.

- Tags: deep-dive
- Published: 2026-08-06

### [ADR-Bench vs AgentDojo: Threat Categories Evaluated in Cybersecurity Benchmarks](/uber/ADR/adr-bench-vs-agentdojo-threat-categories)

Compare ADR-Bench and AgentDojo threat categories. ADR-Bench covers initial compromise, privilege escalation & lateral movement, while AgentDojo focuses on injection & misalignment.

- Tags: comparison
- Published: 2026-08-06

### [How the ADR Benchmark Handles Concurrency and Performance Optimization](/uber/ADR/adr-benchmark-concurrency-performance-optimization)

Learn how the Uber ADR benchmark optimizes performance and concurrency with asyncio semaphores, runtime limits, and real-world speed-up metrics for efficient security research.

- Tags: performance
- Published: 2026-08-06

### [MCP Servers for Environment Emulation in ADR-Bench: Complete 10-Server Reference](/uber/ADR/mcp-servers-environment-emulation-adr-bench)

Discover 10 MCP servers for environment emulation in ADR-Bench. Simulate enterprise services like email, Slack, and LDAP securely without exposing real infrastructure.

- Tags: architecture
- Published: 2026-08-06

### [How to Reproduce Precision and Recall Results from the ADR Paper: A Step-by-Step Guide](/uber/ADR/reproduce-adr-paper-detection-results)

Reproduce ADR paper precision and recall results by inflating the ADR benchmark and running main_detector.py. Match Table 2 exactly with this step-by-step guide.

- Tags: how-to-guide
- Published: 2026-08-06

### [Supply Chain Impersonation Test in Uber ADR: How a Spoofed Community Identity Deceives MCP Detectors](/uber/ADR/supply-chain-impersonation-test-adr)

Discover Uber ADR's supply chain impersonation test. Learn how a spoofed community identity deceives MCP detectors and protects location data from disguised threats.

- Tags: tutorial
- Published: 2026-08-06

### [What Are Context Providers in ADR? How They Power Threat Intelligence](/uber/ADR/adr-context-providers-threat-intelligence)

Discover context providers in ADR: lightweight servers that fuel threat intelligence by separating data from logic, enabling dynamic ATT&CK framework queries for better detection.

- Tags: deep-dive
- Published: 2026-08-06

### [How to Execute Specific Benchmark Tasks or a Task Range in ADR-Bench](/uber/ADR/run-specific-benchmark-tasks-adr-bench)

Learn how to execute specific benchmark tasks or a range of tasks in ADR-Bench. Pass the --tasks argument with IDs, lists, or ranges and control parallelism for efficient testing.

- Tags: how-to-guide
- Published: 2026-08-06

### [Uber ADR tasks.json Structure and Ground Truth Labels Explained](/uber/ADR/tasks-json-structure-ground-truth-labels)

Understand the uber ADR tasks.json structure and ground truth labels. Learn how each task object defines user prompts expected tools and malicious or benign classifications.

- Tags: internals
- Published: 2026-08-06

### [How ADR-Bench Integrates with AgentDojo for Prompt Injection Testing](/uber/ADR/adr-bench-agentdojo-prompt-injection-integration)

Discover how ADR-Bench integrates with AgentDojo for robust prompt injection testing. Learn to load task suites, convert logs, extract labels, and use a unified detection pipeline.

- Tags: how-to-guide
- Published: 2026-08-06

### [How to Configure API Keys and Models for the ADR Detector](/uber/ADR/configure-api-keys-models-adr-detector)

Configure API keys and models for the ADR detector by setting environment variables and customizing the config_detector.yaml file for LLM control.

- Tags: how-to-guide
- Published: 2026-08-06

### [Official vs Local-Community MCP Server Types in ADR: Key Distinctions Explained](/uber/ADR/local-community-official-mcp-server-types)

Understand ADR MCP server types. Explore official Uber curated servers versus community contributed options. Learn key distinctions for secure and feature-rich development.

- Tags: deep-dive
- Published: 2026-08-06

### [Understanding the Two-Tier Detection Pipeline: High-Recall Triage and Agentic Reasoning in ADR](/uber/ADR/two-tier-detection-pipeline-triage-reasoning)

Explore ADR's two-tier detection pipeline. Learn how TriageLLM filters benign conversations and ReasoningAgent performs deep analysis via MCP servers for robust detection.

- Tags: deep-dive
- Published: 2026-08-06

### [How ADR Achieves Zero False Positives on Benign Enterprise Workflows](/uber/ADR/adr-zero-false-positives-benign-workflows)

Discover how ADR achieves zero false positives on benign enterprise workflows using a two-tier detection architecture that combines high-recall triage with agentic reasoning.

- Tags: deep-dive
- Published: 2026-08-06

### [How to Add Custom MCP Servers to ADR-Bench for Testing: A Complete Guide](/uber/ADR/add-custom-mcp-servers-adr-bench)

Learn how to add custom MCP servers to ADR-Bench for testing. Follow this guide to define servers in mcp_servers_registry.json and reference them in your tasks.

- Tags: how-to-guide
- Published: 2026-08-06

### [Uber ADR-Bench Agent Attack Techniques: Complete Guide to All 17 Threat Categories](/uber/ADR/adr-bench-agent-attack-techniques)

Explore Uber ADR-Bench's 17 agent attack techniques. Learn about prompt injection, multi-step threats, and how ADR-Bench secures AI agents against emerging vulnerabilities.

- Tags: how-to-guide
- Published: 2026-08-06

### [Understanding Uber ADR's Dual-Agent Detection Architecture: Triage vs. Reasoning](/uber/ADR/adr-dual-agent-detection-triage-vs-reasoning)

Explore Uber ADR's dual-agent detection architecture. Learn how triage and reasoning stages collaborate for efficient and precise threat identification, ensuring no suspicious activity is overlooked.

- Tags: deep-dive
- Published: 2026-08-06

