Autonomous incident remediation,
in single-digit minutes.
For production crashes, Remediate Labs diagnoses the root cause, generates a fix, and opens a PR — automatically, in minutes. For everything else, it surfaces errors with root-cause context so your team decides what gets fixed next. Built with the Anthropic SDK on FastAPI + SQLite + a pgvector-backed RAG index.
Agent pipeline
~6 min
from detected event to fix-PR
Avg MTTR
32 min
detection to merged fix
CI pass rate
100%
sandbox passes on first run
Numbers refresh from scripts/measure_mttr.py against the live demo DB.
See the methodology for how each is computed.
How it works
Architecture deep-dive →01
Detect
CloudWatch alarms POST to a webhook, and a background poller separately scans CloudWatch Logs on an interval — detection isn't push-only.
02
Triage
Haiku-class classifier filters real incidents from noise and duplicates. Ground truth from a golden dataset that grows automatically from real incident outcomes.
03
Diagnose
Diagnosis agent grounds every claim against the actual repo via GitHub Code Search. No fabricated function names.
04
Clarify
When DiagnosisAgent confidence falls below 70%, ErrorClarityAgent takes over — no hypothesis, no guessing. It checks exact code lines and adds targeted logging so the next diagnosis has real data to work with.
05
Fix
Fix-generation agent writes a patch, runs it in a Docker sandbox against the real test suite, retries up to 3× on failure.
06
Review
A GPT-4.1 reviewer — enforced to be a different model family than the one that wrote the fix — checks the PR. If it requests changes, a merge-decision agent decides whether to ship anyway or regenerate.
07
Approve
HIGH/CRITICAL actions queue for human approval before merging. Approvals also feed an RLHF preference dataset.
Recent writing
All posts →Why My AI Agent Cited a File That Never Existed
How an agent that failed safely still managed to do damage — and what its quieter sibling was doing right the whole time.
We Built a Call Graph Because Our Agent Kept Breaking Callers It Never Knew About
The agent found one caller via GitHub search, patched it, and shipped. Two other callers broke in production. The fix was correct. The picture was incomplete.
Five Data Structures for a Call Graph — Why We Chose Hash Map of Sets
The adjacency matrix sounds clever. It's wrong for sparse graphs. The edge list is right for serialization and wrong for queries. Here's what each actually costs.