Aurora: LangGraph Agents That Investigate Incidents Before You Open Your Laptop
Aurora — Open source AI-powered agentic incident management & root cause analysis for SREs. LangGraph agents investigate across AWS, Azure, GCP, Kubernetes. Integrates with PagerDuty, Datadog, Grafana, Slack and More. Apache 2.0.
At a glance
- What is it?
- Aurora is an Apache-2.0 Python and Next.js platform that turns PagerDuty, Datadog and Grafana alerts into autonomous multi-cloud investigations. The design is opinionated: agents run kubectl, aws, az and gcloud inside sandboxed Kubernetes pods, and the README claims a structured RCA by the time you open your laptop. That claim is the thing to test before you trust it on call.
- Who is it for?
- Adopt Aurora if you already run Kubernetes, page through PagerDuty or Grafana, and want a second investigator that never sleeps; skip it if your stack is a single VM with no cloud provider accounts, or if your incident data cannot leave your network and you have no appetite for running the LLM path yourself.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
The 3 AM checklist Aurora Is Trying To Automate
The README frames the problem in a way most on-call engineers will recognize without argument. When an alert fires, the responder repeats a fixed sequence: check dashboards, run kubectl commands, read logs, correlate deployments, search Slack history. The README puts that loop at 30 to 60 minutes per incident. Aurora's pitch is that the alert arrives, agents start investigating in the background, and a structured RCA is waiting when the engineer sits down. The comparison table in the README is the clearest statement of intent: manual context-switching versus background triage, siloed knowledge versus captured reasoning, postmortems written days later versus auto-generated. The target user is an SRE or platform team running multi-cloud infrastructure with a paging rotation. A solo developer with one service and no pager is not the audience, and the README does not pretend otherwise.
LangGraph Agents With 30+ Tools In Sandboxed Pods
The mechanism the README describes is specific enough to reason about. Agents are built on LangGraph and dynamically select from more than 30 tools. Those tools include running kubectl, aws, az and gcloud, and the README states these execute inside sandboxed Kubernetes pods rather than on the host running Aurora. That sandbox choice matters: it means the agent's blast radius is bounded by what the pods can reach, and it means Aurora itself needs a Kubernetes cluster to run its investigation layer. Around the agents sit several supporting pieces. An incident dashboard ingests alerts from PagerDuty, Datadog, Grafana, New Relic, OpsGenie and incident.io, and the README says every alert auto-triggers a background investigation. An infrastructure knowledge graph models services and providers as a dependency graph so the agent can trace blast radius. A knowledge base with RAG accumulates prior investigations. Artifacts are agent-maintained documents that update as an investigation progresses, and Actions fire post-RCA workflows such as generating a postmortem, opening a fix PR or notifying Slack. The data flow is therefore: alert in, investigation graph traversed, tools executed in pods, reasoning captured as artifacts, Actions dispatched on completion.
make init, make prod-prebuilt, And The Vault Step Nobody Reads
The quick start is four commands. Clone the repository, run make init to generate secure secrets, edit .env to add an LLM API key, then run make prod-prebuilt to pull prebuilt images and start. The UI is at http://localhost:3000 and the first user to register becomes admin. The README states plainly that Aurora works without any cloud provider accounts and that the LLM API key is the only external requirement, with connectors optional. There is a required second act that is easy to miss because it sits inside a collapsed details block. After the first start you must read the auto-generated root token with docker logs vault-init 2>&1 | grep "Root Token:", append it to .env as VAULT_TOKEN, and restart with make down && make prod-prebuilt. Vault is not optional infrastructure here; it is part of the secrets path. Two smaller options exist: make prod-prebuilt VERSION=v1.2.3 pins a release, and make prod-local builds from source. The README also points to a Helm chart for deployment beyond a single node, though the deployment table is truncated in the material available.
Model Choice, Provider Breadth, And What The README Does Not Say
Aurora accepts OpenAI, Anthropic, Gemini, Vertex AI, OpenRouter and Ollama, and the changelog adds AWS Bedrock support with IAM auth for Claude, Titan and other models. Ollama on the list is the interesting one, because it is the only path the README offers toward keeping inference inside your own network. What the material does not give you is any evaluation of how well the agents perform. There is no published accuracy figure, no false-positive rate, no statement about how often an investigation ends without a root cause. The README's claim that an RCA is ready by the time you open your laptop is a product claim, not a measured result, and nothing in the supplied material substantiates it. Treat the quality of the investigation as the unknown you are buying into, not as a documented property.
The Kubernetes Dependency And The Cases Aurora Is Wrong For
The sandboxed-pod execution model is the strongest design decision in the README and also the sharpest constraint. To investigate anything, Aurora needs a Kubernetes environment in which to run its tool pods. A team whose infrastructure is a handful of VMs, a managed database and a CDN has no natural place to put that. The README does offer an escape hatch for on-prem clusters through kubeconfig upload, which connects clusters without a cloud provider, but that still assumes Kubernetes exists. A second limitation is operational rather than architectural. Aurora is a stateful platform with its own database, its own Vault instance and a set of connectors holding credentials to PagerDuty, Datadog, Grafana and cloud accounts. The README does not describe a backup or restore procedure for that state, and the material contains nothing about how investigations behave when a connector's API is degraded, which is exactly the moment you would be leaning on Aurora hardest. A third point is that the README's own framing sets an expectation Aurora cannot always meet: not every incident has a clean root cause, and an agent that produces a confident-looking postmortem for a flaky dependency is worse than no postmortem at all.
Aurora Versus Wiring Alerts Into Your Existing Observability Stack
The obvious alternative is not another AI incident product; it is the runbook and dashboard setup most teams already have. Datadog, Grafana and New Relic all support alert routing, saved queries and, in some cases, automated diagnostic steps attached to a monitor. The difference in approach is real. A Grafana alert rule with a linked dashboard shows a human a fixed set of panels that someone chose in advance. Aurora's agents select tools at investigation time based on what they find, which is the whole reason LangGraph is in the stack: the path is not precomputed. That flexibility is also the cost. A dashboard is deterministic, cheap to run and easy to audit. An agent loop makes an unbounded number of LLM calls whose cost and latency you cannot predict from the alert payload alone. The README mentions extensibility hooks that can gate LLM calls and enforce seat limits, which suggests the project is aware of the cost-control problem, but the material does not describe default limits. If your incidents are well understood and your runbooks are current, the dashboard is the better tool. Aurora earns its place when the failure is novel and the responder would otherwise be grepping Slack.
Licence, Release Cadence, And The Upgrade Bill
Aurora is Apache-2.0, which permits commercial use, modification and redistribution provided the licence and notices are preserved. That is a permissive licence and it does not carry the source-availability obligations of a copyleft licence. This is a description of the licence text, not legal advice; if you are embedding Aurora in a product, have counsel read the NOTICE and patent grant clauses. The release history shows aurora-oss-1.2.20 on 2026-09-08, 1.2.19 on 2026-08-27 and 1.2.18 on 2026-08-19, so roughly weekly patch releases across that window. That cadence is good for fixes and bad for anyone who wants to upgrade quarterly and forget about it. Each upgrade means pulling new images, restarting the stack and reconnecting services to Vault. The changelog entries in the README also show the surface area growing fast: Artifacts, Actions, Bedrock, Fly.io, CloudBees, kubeconfig upload, CloudWatch alarm webhooks and extensibility hooks all appear as recent additions. Budget for a platform that changes shape between releases, and pin with make prod-prebuilt VERSION=... rather than tracking the default.
What To Check Before You Point Real Alerts At It
The honest sequence is to install locally with make init and make prod-prebuilt, complete the Vault token step, and run one real alert through with no connectors attached, exactly as the README says is possible. Read the generated investigation end to end and judge whether the reasoning is something you would have accepted from a junior engineer. Then decide whether the LLM provider you selected is one you are comfortable sending log excerpts and kubectl output to, because that is what the agents will do with them. The README lists Ollama, and that is the option for teams whose data cannot leave the network, though it shifts the cost to hardware you have to run. If the single-alert test produces a postmortem you would have to rewrite, the tool is not ready for your rotation regardless of how many connectors it supports.
Editorial conclusion
Adopt Aurora if you already run Kubernetes, page through PagerDuty or Grafana, and want a second investigator that never sleeps; skip it if your stack is a single VM with no cloud provider accounts, or if your incident data cannot leave your network and you have no appetite for running the LLM path yourself. Before trusting it on call, verify three things: that make init produces secrets you are willing to rotate, that the Vault root token from docker logs vault-init is stored somewhere other than a shell history, and that your chosen model provider is reachable from the sandboxed pods that run kubectl and aws. The README is explicit that connectors are optional and the LLM API key is the only external requirement, so the smallest honest test is one real alert routed into a local install with no connectors attached.
Community notes