Inspiration

On-call engineers lose the first 20–30 minutes of every incident just building context — checking Grafana, searching Jira, grepping Splunk, asking in Slack "has anyone seen this before" — before they can even start diagnosing. That gap between "alert fired" and "root cause understood" is where most MTTR lives, and it's almost entirely manual, tribal-knowledge work. We wanted an agent that does that first 20 minutes automatically, shows its reasoning instead of hiding it, and knows when to say "I'm not sure" instead of guessing confidently and being wrong.

What it does

Stratos turns a firing alert into a diagnosed, actioned incident with almost no human typing. It correlates signals across 34 real tool integrations (Grafana, Jira, Splunk, PagerDuty, GitHub, Slack, and more), then asks Gemini via Vertex AI to independently verify — or challenge — the root cause using the same live evidence a human on-call engineer would use: firing alerts, related tickets, log excerpts, and the customer's own knowledge base. It fuses a deterministic correlation score with Gemini's independent judgment and a knowledge-base retrieval score into one confidence number, gated so it only claims "VERIFIED" when the evidence actually agrees — otherwise it reports "PROBABLE, needs human review" rather than a confident-sounding guess. From there it matches a runbook, highlights the cross-layer blast radius (data → application → infrastructure), takes action (ticket, page, Slack, status page), and generates an executive-ready postmortem — 5 Whys, a real fishbone diagram, corrective/preventive actions — exportable to Word or PDF.

How we built it

The frontend is a single-file client-side app with real Firebase Auth for both end users and platform admins, and Firestore for multi-device real-time sync. A deterministic correlation engine walks a configurable service-dependency graph — keyword/label match × dependency depth × critical-alert corroboration — with zero AI cost, and runs first. In parallel and fully autonomously, a Cloud Functions (Gen2) service calls Gemini 3.7 Flash via Vertex AI (through the Google GenAI SDK, @google/genai) with the same evidence bundle, plus Vertex AI text-embedding-005 similarity search against the customer's knowledge base. The three signals fuse with explicit weights, and the gate abstains rather than forcing a confident wrong answer. AI/proxy credentials are centrally managed in a separate admin panel and read live from Firestore, so every Stratos install on a tenant shares one configuration instead of typing keys into each browser.

Challenges we ran into

Getting the "second opinion" pattern right was harder than it sounds — an LLM that always agrees with the deterministic engine is just an expensive rubber stamp, so we had to prompt Gemini to independently reason from raw evidence and explicitly permit it to disagree, then build a fusion/gate that only shows high confidence when the signals genuinely converge. We also caught a real deployment bug late in the build: our first model string, gemini-3.5-flash, turned out not to be a real deployed Vertex AI model and 404'd on every call, and the fallback we reached for, gemini-3.1-pro-preview, was a real model but a lower version number than the hackathon's own "Gemini 3.5+" requirement — an oversight we caught in a final pre-submission review and fixed by redeploying on gemini-3.7-flash, verified live against the production Cloud Function before recording the demo.

Accomplishments that we're proud of

34 live, working tool integrations (not mocked), a confidence-fusion model that abstains instead of guessing, cross-layer blast-radius highlighting, and a postmortem generator that produces something an executive would actually read — 5 Whys and a real SVG fishbone diagram, not a wall of text.

What we learned

That the hardest part of "agentic" isn't calling an LLM — it's designing the system so the LLM's opinion is genuinely independent evidence, not a foregone conclusion, and building an honest confidence signal that a responder can actually trust when it says "probable" versus "verified."

What's next for Stratos

Merging the Firestore security rules into the live production ruleset, validating the 99% RCA-accuracy target against a real evidence/test-incident set beyond the hackathon scenarios, moving the optional ChatGPT/Claude comparison calls behind a Cloud Function to match Gemini's server-side credential pattern, and formal pilots with 3–5 design partners.

Built With

Share this project:

Updates