It took us a few months to build an AI agent that could diagnose an incident.
It took us two years to build one we'd actually trust during an incident.
That gap has changed how we think about building with AI.
Prototypes are incredibly convincing now. Give a model access to your code, telemetry and incident history, ask it what broke, and you can get something surprisingly good back in an afternoon.
The problems start when "surprisingly good" needs to become consistently right.
For us, one of the hardest parts was simply figuring out how to measure that.
We ended up building a backtesting system that freezes old incidents in time and reruns Investigations against exactly the information that was available when the incident happened.
The "freezes in time" bit is harder than it sounds.
A post-mortem written three days later might contain the root cause. The fix is now sitting in the codebase. Someone eventually posted the answer in Slack. Let any of that leak into your test and suddenly your agent looks much smarter than it actually is.
And accuracy was only the first problem.
We needed to understand why it was wrong when it was wrong. We needed findings tied back to actual evidence. We added an adversarial agent whose job is to argue against the current hypothesis. We built ways for old findings to be discounted when new evidence contradicts them.
Then we discovered another problem: an accurate agent can still be incredibly annoying.
So now messages have to clear a bunch of checks before they're posted. Is this actually new information? Are responders already discussing it? Has the situation already been handled? Are we confident enough to interrupt people with it?
And then there's memory. Something the agent learns about your infrastructure today might be wrong next month because a service was renamed or a log format changed. So those memories have to be continually checked, updated and sometimes deliberately forgotten.
None of these problems are particularly obvious when the first prototype works.
That's probably the biggest lesson we've taken from building Investigations: calling an LLM is increasingly the easy part. Building the systems around it that let you measure, challenge, maintain and trust what it produces is where most of the engineering lives.
Martha wrote up a much deeper look at what we've learned building this over the last two years: