InsightResolve · Agentic L1 support & incident resolution

The page fires. The runbook runs. The incident closes — with the root cause written down

Alerts from twelve sources — paging, monitoring, four clouds and ITSM — become one incident. An AI agent follows your runbook, gathers the evidence, checks its own conclusion against it, and resolves or escalates with the reasoning attached. Your on-call arrives to an incident that has already been triaged.

  • Runs in your cloud
  • Approval gates before any change
  • RCA on every incident
insightairesolve.com/console · Incident · HighErrorRate
The InsightResolve console: a critical api-gateway 5xx incident that arrived from PagerDuty, matched to the API Gateway High Error Rate Triage runbook, with the nine-step execution queued and the alert's labels and context alongside
Runs in your cloud · AWS · Azure · GCP · OCI · on-prem
AWS Google Cloud Azure

Built for the tools your on-call already lives in

PagerDuty Prometheus & Alertmanager Grafana Kubernetes Airflow & dbt PostgreSQL Jira & Slack
The problem

Every incident is ten tabs and one person’s memory

During an incident the on-call engineer context-switches across PagerDuty, Grafana, Prometheus, Alertmanager, Airflow, dbt, the database, Jira, Slack and a runbook wiki. The runbook is stale, the tribal knowledge is in someone’s head, and MTTR is whatever it takes to find them.

Tool sprawl

Ten tools, one incident

Alert details in one place, the metric in another, the deploy history in a third. The first fifteen minutes of every page are spent gathering, not deciding.

Stale runbooks

The wiki says one thing, production does another

Runbooks written after the last incident describe last year’s system. Nobody knows which steps still apply, so nobody follows them.

Tribal knowledge

The one person who knows is asleep

New on-call engineers drown; the senior ones get woken up anyway. The fix and the reason for it never get written down where the next person will look.

How it works

Receive → Match → Execute → Resolve → Learn

One loop, every alert. The agent does the L1 work; your engineers arrive with the evidence gathered and the first diagnosis done.

1

Receive

Alerts from PagerDuty, Opsgenie, Alertmanager, Grafana, Datadog, AWS, Azure, Google Cloud, OCI, ServiceNow or a generic JSON shape are normalized into one incident model, deduplicated on the source’s own id where it gives one.

2

Match

Match rules on alert name, service, severity, labels and source pick the runbook. No rule? The agent enters AI triage and proposes one.

3

Execute

The agent runs the steps: PromQL, dashboards, SQL, DAG status, cloud metrics and logs — each output saved as evidence, redacted, and visible in the console as it completes.

4

Resolve

The agent classifies the root cause with a confidence, writes the RCA, and resolves the page or escalates with everything it found attached.

5

Learn

Every execution scores the runbook’s effectiveness, surfaces recurring patterns, and suggests silences, threshold tuning or a new runbook.

One incident from the demo stack, as recorded

The agent gathers, concludes — then checks itself

  • 1PagerDuty fires HighErrorRate on api-gateway, production, critical. Normalized, fingerprinted, matched to API Gateway High Error Rate Triage.
  • 2pagerduty.acknowledge — the page stops escalating while the agent works.
  • 3prometheus.instant — the 5xx rate, confirmed still above threshold.
  • 4k8s.pods — skipped. Kubernetes is not configured in this deployment, so the step says so rather than guessing.
  • 5prometheus.instant ×2 — recent deployments, and upstream dependency health.
  • 6http.request — the service’s own recent error lines, a step the runbook only runs while the rate is still elevated. It was, so it ran.
  • 7ai.classify — bad_deploy at 0.82: a deployment inside the window, and errors naming a dependency the new version talks to.
  • 8ai.verify — checks that conclusion against the evidence alone. “A deployment happened inside the window” is established. “The errors are attributable to it” is assumed — the evidence shows timing, not causation. Confidence lowered to 0.75.
  • 9Below the floor for autonomous resolution, so it escalates — with the evidence, the claims, and the gap: “a rollback that clears the errors would settle it.”
The runbook behind it

Steps, variables and conditions — not prose

Every step is an action with typed parameters. Outputs become variables the next step can use. Conditions decide what runs.

# variables
service_name = {{incident.labels.service}}
threshold    = {{incident.labels.threshold}}   # default 5.0

# steps
2. prometheus.instant  query: rate(http_requests_total{service='{{service_name}}',code=~'5..'}[5m])
                       save_as: error_rate
4. postgres.query      sql: SELECT version, deployed_at FROM deployments WHERE service='{{service_name}}' ...
                       save_as: recent_deploys
6. k8s.logs            run_if: {{error_rate}} > {{threshold}}
                       save_as: error_logs
7. ai.classify         categories: [bad_deploy, upstream_dependency_failure, capacity, false_positive]
                       context_vars: [error_rate, pod_status, recent_deploys, error_logs]
9. gate                {{classification.confidence}} > 0.85 AND category == 'false_positive'
                       true:  pagerduty.resolve   false: pagerduty.add_note + escalate
Runbooks

Runbooks you edit, version and dry-run — in the UI

Not a JSON blob and not a wiki page. Steps, conditions, variables and match rules are first-class rows, so two people can edit different steps at once, every save is a version, and every past execution shows exactly what it followed.

Steps

69 step types

Prometheus instant and range queries, Grafana panels, Alertmanager silences, Kubernetes pods, logs and events, Airflow DAGs, dbt tests, SQL, Jira, Slack, HTTP, shell.

  • AI steps: classify, summarize, decide
  • Logic: gate, assign, wait, branch, run_if / skip_if
  • Human approval gates for anything that changes state
  • Timeouts, retries, continue-on-fail per step
Rules & variables

Matching that explains itself

Glob on alert name and service, severity sets, label containment, source, expressions. Higher score wins; ties go to priority, then effectiveness. Test any rule against a past incident before you activate it.

  • {{incident.labels.namespace}} resolved at run time
  • Step outputs become variables for the next step
  • run_if / skip_if / branch on any variable
Versions & templates

Every save is a version

Snapshots with an auto-generated diff (“added step 5, changed threshold in step 3”), side-by-side comparison, one-click restore. Start from a library template, clone, import from your markdown, or describe the alert and let the agent draft it.

  • High error rate, high latency, service down, Kafka consumer lag and Airflow DAG failure templates
  • Effectiveness and average resolution time per runbook
The console

One pane of glass for the incident, the evidence and the RCA

Every incident with its source, severity, labels, the runbook that matched, each step as it runs, and the root-cause artifact when it’s done. Ask the agent a follow-up question from the same page.

Live execution

Current step highlighted, outputs appearing as each step completes, skip / pause / escalate-now overrides.

Incident timeline

Alert fired, webhook received, runbook matched, each step, classification, resolution.

Agent chat

“What’s the CPU on the api-gateway pods right now?” — answered with the same tools.

RCA artifact

Classification, confidence, evidence, recommendations, markdown — written to Jira, with a place to link the PR that fixed it.

Integrations

Connectors for the incident stack you already run

Twelve alert sources normalised to one incident shape, and sixty-nine typed step types that read those same systems back. Credentials come from the deployment — environment, task role, instance role — never from a runbook step, so editing a runbook can never widen what the agent can reach.

Alerts in
PagerDuty Opsgenie Alertmanager Grafana Datadog CloudWatch EventBridge Azure Monitor Cloud Monitoring OCI Notifications ServiceNow Generic JSON

PagerDuty & Opsgenie

Webhooks in, v3 and Opsgenie actionsAcknowledge, resolve, closeNotes carrying the evidence

Prometheus & Alertmanager

Instant & range PromQLFiring alerts, silencesThe monitor watch step

Grafana & Datadog

Alert webhooks inMetric queries, logs, monitorsDashboards, annotations, mutes

AWS

CloudWatch alarms via SNSEventBridge: ECS, GuardDuty, HealthMetrics, log groups, ECS, target health

Azure

Common Alert Schema inMonitor metricsLog Analytics (KQL)

Google Cloud & OCI

Cloud Monitoring & ONS alarms inTime series, Cloud LoggingError Reporting, OCI MQL

Kubernetes, Airflow & dbt

Pods, logs, events, restart countsDAG status, task logs, triggersTests & source freshness

ServiceNow, Jira & Slack

The change calendar and the CMDBIncidents written back with the RCATickets, channel & thread updates

Not configured is not the same as broken. A step whose system this deployment was never given reports unavailable, names the variable that would switch it on, and is skipped — it never guesses to fill the gap. Integrations probes every system and shows you which answer right now.

Judgement

The four things that decide whether on-call trusts it

Gathering evidence is the easy half. What separates an agent people read from one they learn to ignore is what it does at the edge of what it knows.

It knows when to do nothing

Consumer lag, queue depth, replication delay — a fifth to a third of most queues resolve with no change made. The monitor step samples the value, judges the direction from the series’ peak, and parks the execution between looks rather than holding a worker. If it clears, the incident closes saying no action was needed. If it stops recovering, that is when a person is paged.

How the watch works

It checks its own conclusions

Before acting on a classification the agent verifies it against the evidence alone, claim by claim. A link that is assumed rather than shown caps confidence at 0.75; one nothing supports caps it at 0.4. The incident shows this as what this rests on — each claim with the step that established it, and the gaps a person would still check.

Why a bare confidence score is worthless

You set the blast radius

Steps that change something outside the platform are marked and surfaced before activation. Anything consequential sits behind an approval that suspends the run until a named person answers — and if nobody does, it times out and the run continues without it rather than waiting for ever. The confidence floor for autonomous resolution is a setting you own, not a vendor default.

What it may do on its own

You can test it before you trust it

Test run walks a runbook against a sample alert built from its own match rule and reports what each step would do — an unknown action, a {{reference}} nothing fills, a system this deployment was never given. Nothing is executed, so a rehearsal can never page anyone. The summary names every step that would change something.

Runbooks as data, not prose
An incident parked mid-watch: an amber banner reading waiting and watching, and a monitor step recording one reading against its threshold.

A live incident, parked. Nothing is wrong and nobody has been asked to act.

The analytics page showing MTTR, runbook coverage, benign alert rate and per-runbook effectiveness.

Analytics and Patterns — every figure a query over the incidents themselves.

Impact

What is actually in the box

Counts you can check against the running demo, not projected outcomes. What it saves you depends on how much of your alert volume has a runbook — we measure that with you on the discovery call rather than quoting a number here.

12

Alert sources normalized to one shape — PagerDuty, Alertmanager, Grafana, Datadog, CloudWatch, Opsgenie, ServiceNow and more

69

Step types a runbook can call, from prometheus.instant to alertmanager.silence

4

Clouds with native metric and log steps — AWS, Azure, GCP and OCI; the last three authenticate over plain HTTP with no SDK on the box

0.75

The ceiling on any conclusion the evidence only implies — enough to report, not enough to act alone

Platform

The Insight platform underneath, your perimeter around it

InsightResolve runs its own operations agent — 69 step types, resumable executions, a verifier that checks every conclusion — on the same platform as InsightWorker, InsightTestBench and InsightStudio: one identity, one connection registry, one audit trail across the suite.

Engine

Every step on the record

Each runbook step runs with the deployment’s credentials for that system — never with a secret written into the runbook. Output is stored as evidence, redacted, and shown on the incident; nothing happens that isn’t in the log.

Governance

Identity, roles, API keys, audit

Okta, Entra or any OIDC provider; roles for who edits runbooks and who acts on incidents; API keys for automation; every change and decision in the audit trail.

Deployment

Your cloud, your VPC

AWS, Azure, GCP, OCI or on-prem with Docker Compose or Kubernetes. Postgres for state, a console that refreshes as the agent works, your model provider — Bedrock, Azure OpenAI, Vertex or an OpenAI-compatible endpoint.

Reading

Written down, at whatever depth you want it

How incident response actually works today, where AI genuinely helps and where it does not, and worked runbooks for the alerts on-call teams see most.

The executive whitepaper

Twelve pages for whoever owns the run-versus-change ratio. What is mechanical in incident response and what is not, the operating model that follows, and the sequence for adopting it.

AI-Native Support Operations

Worked use cases

One alert, one runbook, start to finish — consumer lag, error rate after a deploy, latency, service down, a pipeline that failed at 2am, and capacity. With the real runbooks and the numbers the agent recorded.

Six use cases

On your cloud

What the wiring looks like on AWS, Azure, Google Cloud and OCI — including the parts the vendor documentation does not prepare you for, and where ServiceNow fits underneath all four.

Stacks and clouds
FAQ

What SRE and platform teams ask first

More on the discovery call.

Does it change production on its own?

Not by default. Phase one is classification, not remediation: the agent gathers, decides and writes. Remediation steps (restart a pod, scale a deployment) exist behind explicit human approval gates you add to a runbook.

What happens when no runbook matches?

The agent enters AI triage: it inspects the alert context, runs general diagnostics, classifies what it can, and suggests a runbook from what it learned — which you review and activate.

Where do the credentials live?

In the connection registry, encrypted, or in your cloud’s secret store by reference. They are passed to the worker at dispatch time and never persisted by it; logs and events show secret names, not values.

Will the same alert open ten incidents?

No. Alerts are fingerprinted on source, name, service and key labels; repeats inside the window fold into the open incident, and a resolved event from the source closes it and records MTTR.

We have a wiki full of runbooks. Do we start over?

Paste or upload them. The agent parses markdown into structured steps with action types for you to correct and activate. Templates cover the common alerts on day one.

Does incident data leave our network?

Self-hosted in your environment, with your model provider. Incidents, evidence, RCAs and runbooks stay inside your perimeter.

See InsightResolve on your alert stream

Point a PagerDuty, Alertmanager or Grafana webhook at a demo instance, bring two of your runbooks, and watch the agent work them in a 30-minute walkthrough.

Request a demo