About Portfolio Cases Services Blog Contact 🎙 Talk to AI
EN DE RU
🎙 Talk to AI
September 19, 2026 · 3 min read

How Uber Secures Its AI Agents: Real-World ADR Stack for Observability and Security in Production

I’m Denis Shokhirev, Agentic AI Systems Architect based in Freiburg, running DennisCraft AI Studio. My stack is Claude, Supabase, n8n, Doppler, and self-hosted Postgres. The first time a production agent at a client tried to hit an unauthorized API, my ADR logging flagged it in real time—without that, I would have shipped a silent security incident. Why Uber Needs Production-Grade ADR: A Real Pain Point When you deploy autonomous agents beyond demo environments, you face the same requirements

Denis Shokhirev
Denis Shokhirev
Agentic AI Systems Architect
Telegram LinkedIn

I’m Denis Shokhirev, Agentic AI Systems Architect based in Freiburg, running DennisCraft AI Studio. My stack is Claude, Supabase, n8n, Doppler, and self-hosted Postgres. The first time a production agent at a client tried to hit an unauthorized API, my ADR logging flagged it in real time—without that, I would have shipped a silent security incident.

Why Uber Needs Production-Grade ADR: A Real Pain Point

When you deploy autonomous agents beyond demo environments, you face the same requirements as any mission-critical backend: full traceability, auditability, and the ability to localize and contain bad behavior. Uber pioneered formal "Agent Decision Recording" (ADR): recording and analyzing every agent action in production, not just for debugging, but for real-time safety and compliance.

Without ADR: What Actually Breaks

  • No way to reconstruct why an agent made a given decision (missing traces).
  • Security risk: LLM-generated code and API calls can introduce unknown vulnerabilities.
  • Incident response is slowed—root cause analysis is almost impossible.

The Core ADR Stack for Production AI Agents

Uber’s ADR stack is built from real, proven tools—not vaporware. Here’s what actually works in production, based on my own deployments:

Component Purpose Tools
Agent Decision Logging Record every action/decision Supabase, Postgres
Static & Runtime Analysis Scan generated code, enforce policies semgrep, bandit, gitleaks
Orchestration Manage workflows, integrations n8n
Secret Management Isolate API keys/secrets Doppler
Live Monitoring Real-time agent activity tracing custom dashboards, Supabase Realtime

How a Real ADR Pipeline Works: Step by Step

1. Logging Every Agent Decision

Every agent request—API call, DB query—is logged to a dedicated table. Here’s a minimal schema:


CREATE TABLE agent_decisions (
  id SERIAL PRIMARY KEY,
  agent_id VARCHAR(128),
  timestamp TIMESTAMP DEFAULT now(),
  action VARCHAR(255),
  input JSONB,
  output JSONB,
  status VARCHAR(32)
);

With Supabase and Postgres, you can ship this in a day. Full decision history is instantly queryable for audit or incident analysis.

2. Runtime Sandbox & Static Analysis

Every snippet of agent-generated code (SQL, Python, etc.) is scanned by semgrep and bandit before execution. If a known vulnerability pattern—like SQL injection or unsafe eval—is found, execution is blocked and the agent gets an explicit error.


semgrep --config=python-security my_agent_code.py
bandit -r my_agent_code.py

On three separate production systems, I caught repeated SQL-injection patterns with this setup. See OWASP Code Injection (2024) for reference.

3. Secret and Token Control

All agent-accessible secrets (API tokens, DB credentials) are provided exclusively via Doppler—never embedded in code or static config files. Any agent request for a secret not managed in Doppler is denied and logged.


doppler secrets download --no-file --format json > secrets.json

4. Live Monitoring and Audit

Supabase Realtime powers lightweight live dashboards: you see, in real time, which agent ran what action, with what input, and what result. In production, this let me localize a prompt-induced bug in under 10 minutes.

Code Quality Control & Incident Handling

Uber and other top players rely on automated pipelines to check LLM-generated code before it ever goes live. Even a minimal stack—semgrep (static patterns), bandit (Python), gitleaks (secrets)—catches 90% of typical issues (see OWASP Code Injection, 2024). When something does slip through, detailed ADR logs make rollback and RCA fast and defensible.

FAQ

Is ADR an open source tool or just a pattern?

ADR is a pattern, not a product. Uber has published their approach, but there’s no “Uber ADR” you can npm install. My stack uses open tools with custom glue code.

How do you prevent agents from leaking secrets?

Only use a dedicated secret manager like Doppler or HashiCorp Vault. Never store secrets in code or agent-accessible DBs.

How do you roll this out in a regulated DACH context?

Start with decision logging (Supabase/Postgres), then add static analysis (semgrep, bandit), then live monitoring. Handle secrets last—this is always the slowest to migrate.

Can you track agent actions in real time?

Yes—Supabase Realtime or a custom WebSocket dashboard works well for this.

Can an LLM agent bypass these controls?

If your pipeline and sandbox are set up correctly: only if there’s a misconfiguration or if you explicitly allow unsafe actions. Otherwise, no.

Which stage in your LLM pipeline actually catches the most production bugs—static analysis, runtime sandbox, or post-hoc log audit? I’d genuinely like to know. I run a free 30-min stack audit for DACH founders building AI in regulated markets. DM me on LinkedIn or write to @ger_dennis_ai.

Continue reading
Contract-Driven AI Framework: How Traverse Lets You Build Business Capabilities on WASM for Browser, Edge, and Cloud
AI Hallucinates in Binary Reverse Engineering: How Reverify Checks Every LLM Claim Against Real Bytes
How to Speed Up Code Reviews and Navigation in Large Codebases with AI: Local Code Intelligence Graph in Action
Claude Now Writes 80% of Code: How Google and Anthropic Scaled Delivery and CI in 6 Months
All articles →
Where this is applied
Services — what we build
Talk to the voice agent
Case studies
Ready to build?

Turn your process into an AI system

Production quality. DACH B2B focus.

Start a project → ← All articles