When production goes down, Praetor takes the call.
Production outages cost enterprises $1–5M per hour. Mean-time-to-resolution averages 8.85 hours. Praetor is an autonomous incident commander — once the alert lands, it investigates, decides, remediates, verifies, and escalates to code if the runtime fix isn't enough. No humans in the loop between page and verdict.
—
Recorded Runs
—
Resolved
6
Scenario Families
10
Typed Actions
A three-phase product
One environment. Three ways to use it.
The same nine-service simulated cluster, the same six-component verifiable reward, three different audiences experiencing it. The LLM agent learning, the human practicing, the real deployed site being rescued.
01
For ML Researchers
Observatory
Replay any recorded trained-agent run. Inspect the six-component reward decomposition, watch the per-component sparklines rise across the episode, see the action timeline tier-by-tier.
Open observatory →
02
For SREs & Engineers
Apprentice Mode
Solve the same incidents the AI was trained on. PagerDuty alert lands, you investigate a real-feeling cluster with an AI coach nudging you. Three scenarios, easy to hard.
Start training →
03
For Hackathon Judges
Real-Time
Plug a real deployed site into the trained agent. Inject a fault, watch ops actions stream in, escalate to code investigation if the site stays degraded. Sim-to-real, live.
Connect a site →
“Six independent reward components, every one a pure verifiable function — no learned reward model, no LLM-as-judge, no exploits.”
— from our hackathon submission · RLVR design note
Why this matters
No public RL environment existed for SRE incident response.
The market
Every tech company runs an on-call rotation. Outages cost $1–5M per hour at enterprise scale, and MTTR is climbing as systems get more distributed, not shrinking. The observability and incident management market is $45B and the workflow has barely changed in fifteen years.
If the work is methodical reasoning under uncertainty — exactly what RL-trained LLM agents should be good at — why is there no benchmark?
What Praetor is
An autonomous incident commander. Once paged, Praetor investigates with a typed action vocabulary (10 SRE-shaped actions), decides what to fix using the trained policy, executes via the same Backend Protocol that the simulator uses, verifies recovery, and escalates to code investigation if runtime ops aren't enough.
Trained with the hackathon's recommended recipe: SFT warm-start from senior-SRE behavioral-clone trajectories, then GRPO fine-tuning over a six-axis verifiable reward. Same policy runs against the simulator, against a real deployed site, and against the codebase.
Phase 1 · Watch Praetor work
Every page becomes a recorded run.
Each row is Praetor — the autonomous incident commander — attempting one of three scenario families. Pick a run to see the action timeline, the 6-component reward decomposition, and the per-step service map evolve from red to green.
—
Recorded Runs
—
Resolved
—
Avg Score
—
Conditions
Run
All familiesOOMDB PoolBad DeployDisk FullSlow QueryCert Expiry✓ Resolved
Episode —
Run ID
—
Task
—
Seed
—
Model
—
Alert
—
Verdict
—
Score
—
Steps used
—
Reward decomposition RLVR · 6 components
Per-component reward over the episode
Service map final state
🗺️
Pick a run to see services
Action timeline click to expand
▶
Pick a run and hit Replay
Aggregate — success rate by scenario family
Loading aggregate...
Phase 3 · Praetor on a live site
Point Praetor at a deployed site. It takes it from there.
Praetor probes the site, classifies what's wrong on its own, runs the runtime fix, and if that's not enough, opens the codebase you point it at and tells you which lines to look at.
0
Connect your platform optional — the right path for real production
Praetor isn't a black box that reaches into someone else's infrastructure. It works through a contract. Connect your platform here and Praetor will (1) link your repo for tier-2 code analysis, (2) generate the adapter file you drop into your own deployment, and (3) take over Real-Time once your adapter goes live.
Sign in with your GitHub account to scope tier-2 code analysis to one of your repos. Real OAuth via device flow — no password entry, no callback URL needed.
Step 1. Click the URL below (opens a new GitHub tab). Step 2. On GitHub, paste this code and click Authorize. Step 3. Come back here — Praetor polls automatically.
⏳ Waiting for GitHub…
Pick a repo for tier-2 escalation
Demo mode — credentials never leave your browser. Cloud-provider integration is scaffolded for the hackathon submission. Forms below use localStorage only, not server transmission. To make this real, deploy the adapter (next tab) into your cloud — your credentials stay in your infrastructure, Praetor just talks HTTP to your adapter.
Generate a praetor_adapter.py file to drop into your own deployment. The adapter implements the /ops/* contract on top of your platform's deployment APIs, so Praetor's trained policy can drive your real services through the same interface that the simulator uses.
1
Connect to a deployed site
Paste the URL of a site that exposes the operator contract (/ops/health, /ops/restart, etc). The site can be hosted anywhere — Render, Vercel, Fly, HF Space.
Link your codebase — for tier-2 escalation when ops can't fully heal
For toy sites, runtime ops are usually enough. For real sites at Paytm / Amazon / Airbnb scale, the bug often lives in the code itself. Praetor reads the code only when ops actions don't fully heal the fault.
Drag a .zip of your codebase here, or click to select. Max 25MB.
⤓
Drop your .zip codebase here or click to choose a file
No codebase linked
4
Run Praetor
Praetor uses the classification it just made. No need to tell it what's wrong — it figured that out.
A flight simulator for on-call engineers. You're paged at 3 AM, a real-looking outage unfolds across 9 microservices, and an AI coach nudges you toward the right fix. No production is harmed.
3
Incident Scenarios
9
Microservices
10
SRE Actions
1:1
AI Coaching
The Problem
Production Incidents Are Costing Billions
The status quo is unsustainable — and there is no training ground
$1M-$5M
Cost per hour of downtime for enterprises
8.85 hrs
Average Mean Time To Resolution
65%
Of engineers report burnout from on-call
6 mo
Typical ramp-up time for new SREs
Every tech company operates on-call rotations where engineers are woken at 3 AM to diagnose production outages. There is no safe, realistic place to practice. Engineers learn by making mistakes in production.
How Training Works
Four Steps, Coached End-to-End
A realistic outage, real decisions, instant feedback from your AI coach.
01
🚨
Alert Fires
You're paged. Alert tells you which services are screaming, not why.
02
🔍
Investigate
Click the service map. Read logs. Check metrics. Your coach nudges you toward the right clue.
03
🔬
Diagnose
Trace the dependency chain to find the real root cause — not the surface symptom.
04
⚡
Remediate
Restart, rollback, or reconfigure. Every decision is scored and explained.
What Makes It Different
An AI Coach in Your Corner
Every mistake becomes a learning moment, not a bruise
💡
Contextual Hints
The coach reads your game state and suggests the next best action — with the reason why.
📘
Plain-English Why
Click "Why?" on any log or metric to get a jargon-free explanation.
🗺️
Visual Service Map
See the cascade spread through the dependency graph in real time.
🏆
Post-mortem Review
Finish an incident, see your grade, compare against a senior SRE's playbook.
Incident Scenarios
3 Scenarios — Easy to Hard
Each one teaches a different diagnostic skill. Unlock progressively.
YOUR FIRST PAGE5 min
OOM Crash
payment-service crashes with OutOfMemoryError. Learn how to read logs, spot memory limits, and restart correctly.
⏱ 15 steps🎯 4 learning goals
TRACE THE CASCADE12 min
DB Pool Exhaustion
Connection leak cascades through the stack. Learn to trace symptoms past the surface to the real root cause.
⏱ 25 steps🎯 7 learning goals
UNDER FIRE20 min
Bad Deployment Cascade
A bad deploy takes out the cluster. Three services failing at once. Learn when to rollback vs restart, and the importance of sequencing.
⏱ 35 steps🎯 10 learning goals
Infrastructure
9-Service Microservices Cluster
Realistic failure propagation through a dependency graph
Click Training in the nav bar. Your first-run tutorial will walk you through the UI.
2
Start with "Your first page" — a simple OOM crash, solvable in ~5 minutes.
3
Your AI coach appears on the right. Stuck? Click 🤖 Hint. Want an explanation of a log line? Click Why? on any action card.
4
Finish an incident and see your post-mortem: grade, rubric breakdown, and what a senior SRE would have done differently.
Live Testing
Run Real API Scenarios
Each test makes real API calls to the running environment. Watch the staged execution.
⚡ Health Check
Verify the environment is running and responsive
📋 List All Tasks
Enumerate available incident scenarios with difficulty levels
🔍 Quick Diagnosis
Start an OOM incident, list services, then read error logs from the crashed service
✅ Full Resolution
Run a complete fix: diagnose the OOM crash and restart with more memory
💥 Cascading Failure
Start a DB pool exhaustion incident and trace the cascade from frontend through to the database
An end-to-end SRE training system, not just an environment.
A full RL substrate, a behavioral-clone seed dataset, an SFT+GRPO training notebook, an interactive observability dashboard, a sim-to-real bridge, and a tier-2 code escalation module — packaged as one product.
Built for three audiences
Different needs. Same substrate.
For ML researchers
A clean RL benchmark
OpenEnv-compatible spec with full action_space / observation_space declarations
Six independent reward components — RLVR with no learned reward model to game
Parametric scenario families with seed-deterministic trajectories
Hand-written HTML/CSS/JS. Loads instantly, no build step, no bundle.
Telemetry
JSONL episode logs
Every run writes a structured trace under runs/<id>/episode.jsonl. Replayable forever.
Quality
268 tests, < 9 s
Covers every critical path. CI-friendly. Mock-HTTP suites isolate from network.
The incident curriculum
Six fault shapes. Every one is real.
Praetor's curriculum mirrors the most common production incident classes. Each scenario is parametric — every (seed, difficulty) pair produces a fresh instance — so the agent learns the shape of the fault, not three fixed cases.
OOM Crash
Easy
java.lang.OutOfMemoryError: Java heap space
Fix: restart with a higher memory limit. The agent must spot the OOMKilled pattern, infer the limit was too low, and avoid restarting unrelated services.
Heroku 2014 (Postgres OOM), Reddit 2017 (Cassandra), almost every Java microservice ever.
DB Pool Exhaustion
Medium
PSQLException: pool exhausted (20/20)
Fix: raise pool size + restart the leaking service. The agent must trace symptoms from the user-facing frontend two layers down to the DB before acting.
GitHub 2018, Discord 2020, Shopify 2016 — all cascade-from-DB outages.
Bad Deployment Cascade
Hard
Memory leak v2.4.0 — autoscaler exhausted quota
Fix: rollback the bad deploy before restarting the starved dependents. Action ordering matters. Wrong order is the rubric's whole point.
Knight Capital 2012 ($440M), CrowdStrike 2024 (global Windows outage), Facebook BGP 2021.
Disk Full
Easy
[Errno 28] No space left on device
Fix: restart cycles the volume. The trap is that metrics look mostly fine — only logs reveal the ENOSPC error pattern.
Fix: rollback the deploy that introduced the slow query. The trap is that restart is a quick fix that doesn't last — the binary still has the bad query.
GitHub 2020 (24h incident, slow query in DB upgrade), Instagram 2017 migration.
TLS Certificate Expired
Easy
ssl.SSLError: certificate has expired
Fix: restart triggers the cert renewal hook. The whole point is that metrics look almost normal. Only the logs (and error rate) tell the truth.
Microsoft Teams 2020, Spotify 2021, Azure DevOps 2018, LinkedIn 2017, Cloudflare 1.1.1.1 2021.
From page to verdict
The autonomous loop, end-to-end.
Once the alert lands, no humans in the loop. Praetor runs the same five-stage cycle a senior on-call engineer runs — except it never sleeps, never panics, and writes a clean trace of every decision.
1
Page
Alert lands via webhook. Praetor receives POST /reset with the incident task_id + seed.
2
Investigate
list_services, read_logs, check_metrics, describe_service — picks the right diagnostics for the symptom.
3
Decide
The trained policy outputs a typed action. Restart vs rollback vs reconfigure — the right one for this fault.
4
Act
Same Backend Protocol whether the substrate is the simulator or a real deployed site. One trained policy, two execution paths.
5
Verify
Polls /ops/health for a stable green window. Declares resolved with an accurate root_cause string for the postmortem.
If runtime ops aren't enough — escalate to code
When stage 5 doesn't go green, Praetor opens the linked codebase (GitHub, Azure Repos, or uploaded ZIP), greps for files matching the failing service + scenario keywords, ranks suspects, and writes a Code Escalation Report with a suggested fix. Diagnosis-only today; the next step is shipping the patch as a PR.