agentic k8s root-cause eval

Which model diagnoses a failing pod, how often, and how sure are we?

The agent is handed a real captured Kubernetes failure and a set of read-only diagnostic tools. It reasons — observe, hypothesize, fetch the evidence that confirms or refutes — then emits a structured diagnosis. Each diagnosis is scored on two independent axes: the observable symptom and the underlying root cause. The matrix below is every model against every scenario.

models
haiku 4.5, sonnet 4.6, opus 4.8
runs / cell
10
judge
haiku 4.5
captured
2026-07-10 18:17 UTC

Each rate carries a Wilson 95% confidence interval over the cell's N runs. At low N a point estimate is not a fact: a handful of clean runs are still consistent with a true rate well below 1.0, and the interval says so. The bars below draw that interval directly — a wide bracket means low confidence, not a wide result.

headline finding

Model scale moves the needle on exactly one case

On the one genuinely hard scenario — crashloopbackoff-bad-command, where an application log names a missing --config flag while the true cause is a bad container command — cause-identification accuracy scales with model size. The other four scenarios sit at or near 100% for every model, so this is the one place where model scale matters.

haiku 4.540%95% CI [17, 69]
sonnet 4.660%95% CI [31, 83]
opus 4.890%95% CI [60, 98]

The harness localizes exactly where model scale matters and where it does not: four scenarios are saturated for all three models, and only the hard case separates them.

One opus 4.8 run on this case failed to produce a valid diagnosis (completion rate 90%): the model leaked tool-call syntax into a diagnosis field value, and the validation-and-correction loop rejected the submit. It is counted as a failed run, never silently dropped — the completionRate metric and the correction loop are doing exactly their job.

Scenarios were initially grouped by assumed difficulty (obvious vs misleading), but measurement showed difficulty is model-dependent, so the grouping is descriptive only.

point estimate 95% CI [lower, upper] ≥80 50–79<50click a cell for the full breakdown
scenario ↓model →
haiku 4.5claude-haiku-4-5-20251001
sonnet 4.6claude-sonnet-4-6
opus 4.8claude-opus-4-8
symptom / cause alignedinitial grouping: the symptom and cause class were assumed to align
crashloopbackoff-bad-commandA Deployment whose container command exits non-zero on start, driving the pod into CrashLoopBackOff.
pod-unschedulableA Deployment whose pod requests more memory than any node can satisfy, so it never schedules and stays Pending with no container running.
service-no-endpointsHealthy Running pods plus a Service whose selector does not match the pod labels, so the Service has no endpoints.
rbac-deniedA Running workload whose ServiceAccount is bound to no Role, so its calls to list secrets are denied by RBAC.
symptom / cause divergentinitial grouping: the symptom can diverge from the cause class
configmap-volume-missingA Deployment whose pod mounts a ConfigMap as a volume where the referenced ConfigMap does not exist, so the pod cannot start and sits in ContainerCreating (phase Pending).

per-model rollup

haiku 4.5
symptom / cause aligned85%symptom / cause divergent100%
tier is a descriptive grouping, not a difficulty ranking
sonnet 4.6
symptom / cause aligned90%symptom / cause divergent100%
tier is a descriptive grouping, not a difficulty ranking
opus 4.8
symptom / cause aligned98%symptom / cause divergent100%
tier is a descriptive grouping, not a difficulty ranking
reference transcripts · illustrative

One run, end to end

The matrix above is the real-model measurement — every model against every scenario, aggregated over N runs with confidence intervals. These transcripts are illustrative single runs, not measurement: one representative run per scenario from the committed deterministic reference report (fake-model, 15 traces total), shown so the tool-call sequence and the structured diagnosis are legible rather than summarized. Per-model matrix traces are not embedded in the matrix artifact.