Skip to content
Get in touch

Know-How

Using agents to troubleshoot production issues

By Yurii Drozd · June 15, 2026 · 4 min read

TL;DR

Wiring agents into your observability stack can make the path from alert to root cause clearer, but only if a human stays accountable for the fix. Here is a practical way to let agents triage and explain incidents without letting them act unsupervised.

Illustration: a flock of birds spirals in on a spike in a latency chart, next to a log panel with the cause highlighted.

The hardest part of an incident is the first ten minutes

When a production alert fires at 2 a.m., the bottleneck is rarely fixing the problem. It is understanding it. An on-call engineer has to pull together logs, metrics, recent deploys, and traces from a dozen tools, build a mental model of what changed, and form a hypothesis before they can do anything useful. That synthesis work is slow, it is high-stress, and it scales badly: the person who knows the system best is asleep, and the person who is awake is paging through dashboards.

This is exactly the kind of work agents are good at. An agent can read across your whole observability stack, correlate signals a person might miss, and put a plausible first hypothesis in front of the on-call engineer. Used well, that gives the engineer a clear starting point: "here is what probably broke and why." Used badly, it becomes an automated system making changes to production that no one fully understands. The difference is entirely in how you wire it up.

What "agentic troubleshooting" should and should not mean

There is a clear line worth drawing up front. An agent triaging an incident is reading and reasoning: it queries logs, inspects metrics, reads recent diffs, and explains what it found. An agent remediating an incident is acting: restarting services, rolling back deploys, scaling infrastructure, editing config. The first is where almost all the value lives and where the risk is low. The second is where the risk is real and where a human must stay on the trigger.

Our default is simple: agents investigate and recommend; humans decide and execute. The agent can draft the rollback command, but a person runs it. This keeps the benefit of automated investigation while preserving the accountability that makes the approach safe to put near production.

The core method: a read-only triage loop

The pattern we use connects an agent to observability through read-only access and a tight, repeatable loop.

  1. Give the agent scoped, read-only context. Connect it to logs, metrics, traces, and your deploy history through interfaces that cannot mutate state. The agent should be able to ask "what changed in the last hour?" but never able to change anything itself.
  2. Trigger triage on the alert, not on a schedule. When an alert fires, hand the agent the alert payload and the affected service. Its job is narrow: gather relevant signals and correlate them with recent changes.
  3. Demand a hypothesis with evidence. The output should not be "the service is unhealthy." It should be a ranked set of hypotheses, each tied to specific evidence: this error rate climbed at this timestamp, which coincides with this deploy, which touched this code path. Evidence is what makes the output reviewable.
  4. Put the human in the loop for any action. The agent proposes the next step and, if useful, drafts the exact command. A person reviews the reasoning, accepts or rejects it, and executes. Nothing reaches production without that review.
  5. Capture the resolution as a record. Once resolved, the agent's investigation, the human's decision, and the outcome become a structured incident record that improves the next triage and feeds your postmortems.

The shape that matters is that the agent shortens investigation while a senior engineer owns the decision. Automation on the read path, judgement on the write path.

Pitfalls and tradeoffs

The most dangerous failure is the confident wrong hypothesis. An agent will happily tell you the database is the problem when the real cause is a downstream timeout, and under incident pressure a tired engineer may accept it. This is why evidence is non-negotiable. A hypothesis you cannot trace back to a specific signal is a guess wearing a lab coat, and it should be treated as one.

The second pitfall is access creep. It is tempting, once triage works, to let the agent "just restart the pod" to save a step. Every increment of write access widens the blast radius of a bad decision. If you grant action capability at all, gate it behind explicit human approval per action and log everything; never let the loop close itself.

Finally, agents are only as good as the data they can see. If your logs are unstructured, your traces are sparse, or your deploy history is not connected, the agent will reason over gaps and produce thinner hypotheses. Agentic troubleshooting rewards teams that have already invested in clean observability; it does not substitute for it.

What good looks like

In a healthy setup, an alert fires and within seconds the on-call engineer has a short, evidence-backed summary: what is degraded, when it started, what changed around then, and the two or three most likely causes ranked by confidence. The engineer reads the reasoning, forms their own view, and acts. Mean time to understanding drops sharply, the 2 a.m. cognitive load drops with it, and no machine has touched production without a person saying so.

The takeaway

Agents are a force multiplier for the investigation half of incident response, where breadth of reading matters most and risk is lowest. Give them read-only context, demand hypotheses backed by evidence, and keep a senior engineer accountable for every action that touches production. That balance is how we wire agents into operations: a clearer path to root cause, without ever handing the system over to something that cannot be held accountable.

02 Workshops

Want your team working this way?

We run hands-on workshops and webinars on agentic engineering, or we can build alongside your team on a real project.