Root cause analysis (RCA) of microservice failures has attracted many LLM agents whose investigation is hand-crafted, through standard operating procedures, fixed stages and role agents. Each is evaluated on its own data against few baselines, so it is unknown whether this design beats letting a capable model investigate on its own. We compare three simple harnesses that prescribe none of the model's calls (one call over an evidence package, a SQL agent and the Codex coding agent) with five published LLM RCA agents and with statistical and causal methods on RCAtlas, 90 validated cases from eight public datasets, across six models and three reasoning efforts. The simple harnesses are the most accurate (PR@1 65-77% on three mid-tier models), ahead of the published agents (16-53%) and the non-LLM methods (6-39%), on every model on which both families were run. The published agents fix from a tenth to all of their model calls in the program, and a case study shows how these prescriptions skip the decisive evidence. A stronger model mainly improves reliability, a multi-turn harness mainly improves aptitude, and more reasoning effort changes accuracy by a few points at most while multiplying the time by up to seven. Among runs more accurate than the best non-LLM method, every Pareto-optimal run in cost or time uses a simple harness.
Figures & tables
Figure 1. Accuracy versus time and cost per case for every run (first pass of each run). Colour = model, shape = method, fill depth = reasoning effort (Luna and Sol). Dashed: PR@1 of the best non-LLM method (NSigma, 38.9%), a usability threshold fixed in advance; dotted: Pareto line over all runs above it. ChatGPT-login runs priced at OpenRouter list price; time excludes network waits.
Table 1. The RCAtlas core set by source. Case pool: all cases the source has released; selected: cases in the core set. : number of selected cases that contain metrics, traces, logs and Kubernetes events. Levels: root causes at service / pod / node level (databases counted as services, hosts as nodes). Rows: metric, trace and log rows in a case’s window (median). Candidates: effective number of candidates under our scoring rule, the inverse of the exact random-guess hit rate (median). ∗ Fault records of the public release we obtained.
Method
Source
Model calls decided by
Simple harnesses
One-shot
ours
one call
SQL agent ( Fang et al., 2026a )
ours
the model
Codex ( OpenAI, 2026 )
Codex CLI
the model
Published LLM agents
FoA ( Pei et al., 2025 )
reimplemented
SOP flow + model
Table 2. Methods under test. Source: original code, original code with interface fixes, or our reimplementation from the paper; the SQL agent follows the reference agent of ( Fang et al., 2026a ) ; Model calls decided by: who issues the method’s model calls (Section 6.3 ).
Table 3. Main results on the 90 core cases (%). LLM methods: mean over Luna, Flash and Haiku. Data kinds: metrics, traces, logs, events. Red tint: drop below the column best (white = best, 50 points below , 100 points below ). Rel. to best: PR@1 as a share of the column best. Random: expected score of a random ordering of the inventory.
Table 5
Figure 2. Case rca100-main-0104. Orange: calls on the failing path; dashed red: the refused call.
Figure 3. One-shot (Luna, pass 1): the evidence item the answer cites, and the answer.
Figure 4. Four runs on case rca100-main-0104 (Luna). Grey: what the model wrote; black: what came back; red dot: the turning point. Times as recorded, including network waits.
Method
Calls / case
Actions / case
Prescribed- call ratio
Per-case range
Fixed stages
Codex
8.5
7.5
0.00
0.00–0.00
0
SQL agent
26.8
41.7
0.00
0.00–0.08
1
One-shot
1.0
0.0
0.00
–
0
FoA
36.4
22.3
0.51
0.46–0.55
8
RCAgent
35.1
21.5
0.35
0.05–0.81
4
RCA-Agent
50.3
32.3
0.29
0.06–0.33
4
Table 6. Prescribed-call ratio (Equation 3 ) on all 90 cases and the three mid-tier models. Calls, actions: per case; per-case range: lowest and highest value over all cases and models; fixed stages: rules or stages read from the code. mABC: lower bound.
Figure 5. Stronger model versus more reasoning effort (90 cases, first pass). Contrasts: A = Luna → Sol (medium); B = Luna medium → max; C = Sol medium → xhigh. Left: cases placed by the geometric mean of tool actions and the step at which the root cause is first queried (log scale; left = fewer, earlier); curve height = the run’s PR@1; dotted line = median; arrow = shift from blue to orange. Right: per-case means; Entities coverage = share of inventory entities queried; RC visited = share of cases whose queries ever name the root cause.
Figure 6. Aptitude (A) and unreliability (U) over three passes (PR@1, medium effort). Whiskers: A − U to A; box: range of the three passes; line: their mean.
Appendix figures & tables4 assets
Supplementary material from the paper’s appendix.
Appendix
Figure 7. The cases behind Figure 5 (first pass). x = tool actions per case, y = step of the first query that names the root cause (both log); filled = root cause ranked first, hollow = missed; contour = densest 65% of a run’s hits; X = median; arrow = first run (blue) to second (orange). Cases that never query the root cause are not drawn.
Figure 8. RR versus wall time per case (without network waits) as reasoning effort rises from medium to xhigh and max. Colour = model, shape = method, fill depth = effort. Medium points of Luna and of Sol’s SQL agent and Codex: mean of three passes; others one pass. Sol’s SQL agent was not run at max.
All (90)
PR@1 by source dataset
PR@1
Method
PR@1
RR
RCAEval (27)
OpenRCA 1.0 (14)
OpenRCA 2.0 (12)
RCA-100 (12)
AIOps 2025 (9)
AIOps 2022 (6)
ITBench (5)
LEMMA (5)
rel. to best
Codex †
77.2
80.6
90.1
65.5
72.2
66.7
81.5
52.8
80.0
96.7
100.0
SQL agent
72.8
74.9
94.2
61.1
74.1
50.0
65.4
29.6
84.4
95.6
94.3
One-shot
65.3
69.8
79.8
56.3
72.2
50.0
66.7
42.6
57.8
64.4
84.6
FoA
53.3
58.7
66.7
28.6
66.7
72.2
37.0
5.6
66.7
46.7
69.1
RCAgent
49.3
53.7
59.3
33.3
63.9
52.8
51.9
22.2
40.0
33.3
63.8
Appendix
Table 7. Results by source dataset (%), averaged as in Table 3 . Red tint: drop below the column best (white = best). Rel. to best: PR@1 as a share of the column best.
Table 8. The five cost metrics of the three simple harnesses across models (setting 2, default effort; Astra at xhigh; first pass of each run): wall time per case, model calls per case, prompt and completion tokens per case, share of prompt tokens served from the provider’s cache, and billed USD per case. Wall time excludes waits caused by the network (failed connections, read timeouts, reconnects). Calls = requests that reached the model (retries after connection failures during the 10-25 network outage are not counted). ∗ = not billed per call (ChatGPT login); priced call by call at the OpenRouter list price, with the long-prompt tier (about twice the price) for calls above 272k input tokens, which is why the one-shot rows through Codex exceed the price of their mean token counts. MiMo: unfinished cases are not in the per-case means.
Root cause analysis (RCA) poses a holistic test of LLM agentic capabilities, such as long-context understanding, multi-step reasoning, and tool use. However, existing datasets suffer from a fundamental gap: they label only the root cause, not the propagation path connecting it to the observed symptom, which largely simplifies the task to naive pattern matching. To support rigorous evaluation, we introduce PAVE, a step-wise labeling protocol that leverages known interventions from fault injection to reconstruct causal propagation paths. The mechanism is forward verification: reasoning from cause to effect rather than inferring backward from symptoms. Applying PAVE yields OpenRCA 2.0 (500 instances), the first cross-system RCA benchmark with step-wise causal annotations for LLM agents. Across 11 frontier LLMs, recovering the exact root-cause set succeeds in only 20.7% of cases on average. To locate where this difficulty lies, we relax the criterion and find what we call the ungrounded diagnosis: agents identify at least one correct root-cause service in 76.0% of cases, but ground that service in a verified causal propagation path to the observed symptom in only 61.5%. Outcome-only evaluation hides this failure mode; step-wise causal ground truth is the missing piece for trustworthy LLM-based RCA agents.
Aoyang Fang, Yifan Yang, Jin'ao Shang +7
The Chinese University of Hong Kong, Shenzhen · Lero · The Chinese University of Hong Kong
Automated root cause analysis (RCA) with large language models (LLMs) has drawn growing attention. Today, SREs typically automate RCA with LLMs in one of two ways: directly using a general-purpose agent (e.g., Codex or Claude Code) for diagnosis, or building a specialized RCA agent from scratch. As mainstream general agents grow more capable and iterate quickly, our quantitative study finds that the former now often surpasses the latter. Its accuracy, however, still falls short of production needs, and this gap stems mainly from the external adaptation layer outside the agent's general capabilities, namely the harness. We therefore argue that LLM-based RCA should focus on this external harness, reusing the strong general capabilities of a modern agent rather than rebuilding an agent from scratch. A key capability of such a harness is to self-evolve, accumulating system-specific experience from past diagnoses so that it gets better the more it is used. We introduce OpsHarness, a self-evolving RCA harness that turns diagnosis experience into reusable expertise. Its data plane combines layered operational knowledge with an idea-card tool library, while its control plane coordinates setup, diagnosis, evolution, and verification. During evolution, OpsHarness contrasts successful and failed trajectories, converts their evidence into atomic proposals, and admits updates only through a dual-gate verification process designed to prevent overfitting and regression. Across two public benchmarks and an industrial deployment, OpsHarness achieves 59.0% top-1 accuracy, improving over a bare general agent by 63.4% and over baseline RCA agents by 4.02×.
Haiyu Huang, Jiewei Lyu, Zhihan Jiang +5
The Chinese University of Hong Kong · Individual Researcher · ByteDance
Root cause analysis (RCA) of microservice failures requires reasoning over telemetry far larger than a model's context, so a language agent reasons over extracted evidence. We start from an error analysis of such an agent on OpenRCA. A reverse reasoning agent reconstructs an evidence chain to each labelled cause and compares it against the agent's own trace, locating failures where a grounded chain existed but was not followed; its labels agree with two site reliability engineers. Being label-conditioned, it audits evidence rather than testing forward identifiability, leaving open what the agent lacked: procedure or telemetry-specific knowledge. Existing systems cannot separate them, extracting evidence inside the reasoning loop. We compute the evidence once, offline, and supply it identically to every arm. Rules mined from the audit reports of one Market cloudbed raise Full Score on a held-out cloudbed from 14.10 to 35.90, surviving correction for multiple testing, against 24.36 for manual rules and 19.23 for a label-and-schema control. The rules add 17 solved cases on top of the five-step procedure but 11 without it, the repairs overlapping. Removing the procedure raises Full Score in all three conditions tested, though no contrast survives correction. Deleting only its earliest-onset criterion yields a net gain of 8 cases against 11 for the whole procedure, which we report descriptively. Mining is label-supervised, and all results are specific to OpenRCA.