mrkeyoor.com_
Fri 18 Sept 19:10 UTC
AI Toolsevaluationupdated 26 Aug 2026

ADR review

ADR means Agentic AI Detection and Response, an Uber project for inventorying AI tools, collecting agent activity, benchmarking defenses, and detecting suspicious sessions. It covers employee tools such as Claude Code, Cursor, and Codex as well as customer-facing agents, but the open release does not include prevention.

+19stars / 7d
Verdict

Our ADR Detection environment occupied 6,219 MB, pip-audit reported 100 known vulnerabilities, and test collection stopped with 61 tests passed and 1 marker error. Use the Sensor and benchmark as security engineering material when you can isolate the research environment and govern sensitive agent telemetry. It is not a finished prevention product, and its own documentation says the vulnerable benchmark dependencies do not belong in production.

We ran it

Lab card: what happened when we ran ADRScreenshot of ADR (arxiv.org/abs/2605.17380)
Install✓ · 130s300 packages · 6219 MB
Build✓ · 8s
Tests✗ · 30s61 passed · 0 failed · 1 errors of 62 (pytest)
Known vulns100(pip-audit)
Repo418 files~65,681 lines of source · 33.2 MB · 2 CI workflows · tests dir

Answers from our run

Does ADR build from source?

Dependencies installed in 130 seconds (300 packages), and the build succeeded in 8 seconds. We cloned commit ba1d4fc into a clean Debian container with 3 CPUs and no project-specific setup.

Do ADR's tests pass?

Yes: 61 of 62 passed when we ran the project's own test command (pytest), with 1 collection error. Some failures need services or credentials a bare container does not have.

Does ADR have known vulnerabilities in its dependencies?

pip-audit flagged 100 known advisories in the dependency tree at the time of our run.

Who should not use ADR?

Teams seeking an open-source tool that blocks unsafe actions: the README says ADR Prevention is absent from this release.

What are the alternatives to ADR?

PyRIT, garak, promptfoo. Our ADR Detection environment occupied 6,219 MB, pip-audit reported 100 known vulnerabilities, and test collection stopped with 61 tests passed and 1 marker error.

Setup2/56,219 MB install, 100 advisories, and one collection error
Docs5/5Component limits, isolation, data, and reproduction are explicit
Community3/51,501 stars and current activity, but a small issue queue
Maturity3/5Used at Uber; public sensor is v1.0.0 and prevention is absent

Discussed on

  1. hnUber open-sourced its security monitoring for Claude Code, Cursor and Codex3 points

Who it’s for

Enterprise security teams mapping which coding agents and MCP servers employees use.
Detection engineers who want normalized Claude Code, Cursor, Codex, Cline, Warp, or opencode session data.
AI security researchers comparing detectors against synthetic agent attacks.
Organizations able to isolate the benchmark and govern collection of prompts, tool arguments, results, paths, usernames, and hostnames.

Who it’s NOT for

Teams seeking an open-source tool that blocks unsafe actions: the README says ADR Prevention is absent from this release.
Anyone planning to run the Detection benchmark on a production network: its README requires isolation and says pinned dependencies contain known CVEs.
Organizations unable to retain agent conversations and tool traces under an approved privacy policy: the Sensor schema includes chat history, arguments, results, project paths, usernames, and hostnames.
Buyers who need to reproduce Uber's production deployment results: the reproducibility guide says enterprise telemetry is not included.
Teams expecting every detector baseline from the paper to run here: the Detection README says two baseline implementations were removed for licensing reasons.

Setup reality

Our sandbox installed 300 Python packages in 130 seconds and used 6,219 MB. The Detection build passed in 8 seconds. Pytest ended after 30 seconds with 61 passed, 0 failed, and 1 collection error out of 62 because the asyncio marker was absent from the marker configuration. Pip-audit reported 100 known vulnerabilities.

The measured project lives in Detection/. The default ADR detector needs Anthropic and OpenAI API keys plus Claude Code and an authenticated Claude session; Hugging Face access is optional. A keyless LlamaFirewall smoke-test path is documented.

The benchmark README requires an isolated container, VM, or dedicated host and forbids real credentials, live systems, or production MCP servers. The Sensor reads local agent records from platform-specific files and databases, so deployment also needs endpoint access, retention rules, and a secured export destination.

ADR observes agent activity, but it does not block actions

ADR covers four open components. Discovery inventories agent applications, command-line tools, IDE extensions, local model runtimes, and MCP servers. Sensor parses local records from coding agents into one event schema. ADR-Bench supplies synthetic attack scenarios and emulated servers. Detection uses a fast triage stage followed by deeper reasoning for suspicious sessions. The repository README says Uber runs ADR in production, while the public code is also tied to an MLSys 2026 paper.

The missing piece is decisive for buyers: ADR Prevention is not in the open release. The offline Explorer used to harden detection before deployment is excluded too. Open ADR can tell a security program what agents exist, convert activity into records, and evaluate or analyze threats. It does not provide an open enforcement point that stops a tool call before the side effect. Pairing detection with endpoint, identity, network, or tool authorization controls remains the operator's job.

The Sensor reads 7 agent formats into one detailed record

ADR Sensor documents support for Claude Code, Cursor, Cline, Claude Desktop, Codex CLI, Warp, and opencode. It reads JSONL, SQLite, JSON task files, and platform-specific audit records, then emits JSON or JSONL. The normalized event can include chat history, tools, arguments, results, model, username, hostname, and project path. Claude Desktop records can also expose skills, plugins, MCP servers, permission mode, and dispatch status.

That detail makes detection possible and privacy work unavoidable. A developer conversation may contain source code, customer data, secrets, local paths, or failed tool output. The CLI defaults to recent history and offers an all-history option, but retention duration is only one control. Teams need endpoint notice, collection scope, access policy, encryption, deletion, incident use, and rules for exporting events to a SIEM or detector. Installing a parser does not settle employee monitoring obligations.

What happened when we ran it

Our sandbox worked inside Detection/, where the measured Python project lives. Installing 300 packages took 130 seconds and used 6,219 MB. The build succeeded in 8 seconds. Pytest ran for 30 seconds, reporting 61 passed and 0 failed, then exited with code 1 because collection raised an error for an asyncio marker missing from the configured marker list.

The log also recorded 25 warnings, including Pydantic class-config deprecations and a syntax warning in a LangChain community module. Pip-audit reported 100 known vulnerabilities. The Detection README explains that several dependencies are pinned to reproduce the paper and knowingly contain CVEs acceptable only in its isolated threat model. Our audit number reinforces that boundary; it does not identify the severity or exploitability of each finding from the supplied measurement block.

Detection needs model access or a narrower keyless path

The default dual-agent detector uses GPT-4o for triage and Claude Sonnet through Claude Code for reasoning. Its setup asks for OpenAI and Anthropic API keys, an installed Claude Code CLI, and an authenticated Claude session. A Hugging Face token is optional. The documentation offers LlamaFirewall for keyless smoke tests, which is useful for checking the pipeline without sending sessions to the default hosted model pair.

Full benchmark execution is larger than a unit-test run. The repository lists 303 tasks and 133 MCP servers, with synthetic credentials, prompt injection, vulnerable tools, and emulated enterprise systems. Its README orders users to run in a container, VM, or dedicated host, away from production data and networks. The reproduction guide also warns that API rate limits can distort the detector's triage behavior by escalating more work to the reasoning stage.

Open code does not reproduce every paper claim

The repository includes synthetic fixtures and step-by-step instructions for rebuilding benchmark results and paper figures. It does not include Uber's enterprise telemetry or production deployment results. Detection also says the ALRPHFS and GuardAgent baseline implementations were removed because of licensing, leaving their paper numbers in the documentation rather than runnable code. Readers should separate reproducible repository paths from results that require unavailable data or implementations.

Open issue 42 identifies a concrete detector gap: triage lacks a deterministic check for invisible Unicode tag characters and bidirectional overrides, even though a bidi payload appears in the benchmark. The report proposes a prefilter; the issue was still open when fetched. That is the right level of caution for a detection system. A paper result measures a threat set and configuration, not permanent coverage of every obfuscation technique.

August activity is current, while the public release is young

GitHub recorded 1,501 stars, 22 combined issues and pull requests, and a push on August 25, 2026. The latest tagged release was Sensor v1.0.0 on July 31. The Apache-2.0 repository also vendors AgentDojo benchmark code under MIT. Recent activity and a clear data notice are positive signals, though one sensor release is too little history to treat every source parser as settled.

ADR is most useful as a candid kit for an enterprise agent-security program. The Sensor handles a messy collection problem, and the benchmark gives detection engineers hostile sessions to study without touching live agents. The 6,219 MB environment, 100 audit findings, excluded prevention layer, hosted-model requirements, and sensitive event schema all demand experienced operators. Start in an isolated lab, decide what telemetry you are allowed to retain, and keep prevention in a separate control until an enforcement component is available.

Alternatives

ProjectWhat it isPick it when
PyRITMicrosoft's Python framework for red-teaming generative AI systems.pick this instead when orchestrated red-team campaigns matter more than endpoint agent discovery and log normalization.
garak gh↗A scanner that probes language models for known failure modes.pick this instead when model probing is the job and you do not need ADR's coding-agent sensor.
promptfoo gh↗An evaluation and red-team toolkit for prompts, models, agents, and CI checks.pick this instead when developers need repeatable evals and security tests inside an application delivery workflow.

What people are saying

  1. [github-trending] uber/ADR

Sources

  1. Uber ADR README
  2. ADR Detection README
  3. ADR Sensor README
  4. ADR reproducibility guide
  5. ADR Sensor v1.0.0 release
  6. Unicode obfuscation issue 42

More ai tools reviews

router · PaddleOCR · GLiNER2 · bazi-skill · transformers.js · OpenBitFun · the whole board →