Note · 2026-09-15

Pilot: an agent that learned from reward investigated as well, at 40% of the cost

“Why did revenue fall 12% last week?” is one of the most common questions in any company, and one of the hardest to answer well. An analyst has to decide where to look first, read what comes back, form competing explanations, test them, drop the wrong ones, and stop when the evidence is sufficient. We built an environment to ask whether an agent can learn to investigate like that from outcomes, and ran a pilot.

The headline, with the caveat first: this is a pilot with five held-out tasks per test type, so nothing below is statistically significant. Within it, an agent that learned from reward matched the accuracy of the best untrained agent (70% of investigations fully correct) while using 60% fewer tokens and half the tool calls, and it was the best agent on cause types it had never seen in training. It also learned one rule that generalised too far. The plan for the full test, and what would count as success, is at the end; its results will be published in a follow-up note.

Objective

Root-cause investigation is a sequential decision problem rather than a generation problem. There are many possible sequences of actions, every action returns new evidence, early choices shape what is worth doing next, there is no single correct path, and a good investigator has to recover from hypotheses that turn out wrong. Success, though, is measurable: did the investigation find what actually caused the decline?

A capable model with tools can already investigate. At each step it picks a reasonable next query. The question we care about is different: can an agent learn, from the outcomes of its own investigations, a better way to investigate? And is any improvement due to that learning, or just to giving it better tools?

For the pilot, “learning” means the approach from our earlier note: the model’s weights stay frozen, and it learns a playbook of lessons from environment reward. Training the weights themselves on the same environment is a later step. The pilot’s job was to check that the environment and its scoring are sound, and to see which way the results point.

Plan

A company to investigate

The Business Investigation Arena generates a company for every task: 19 tables and about 750,000 order lines across a data warehouse, operational orders, shipments, inventory, supplier receipts, CRM accounts and notes, support tickets, the web funnel, marketing spend, exchange rates, data-load logs and a company event feed.

Into each company we inject one or more real causes of a revenue drop — a stock-out, a warehouse outage, a price increase, a misconfigured promotion, a competitor launch, a marketing freeze, a lost reseller, key accounts leaving, payment failures, severe weather — together with decoys: evidence that looks relevant but moved no revenue, such as a campaign ending on schedule or an analytics tag under-counting web sessions. Because the simulator reuses its random draws, the true share of the decline caused by each cause is exact: re-run the same week without that cause and measure the difference.

The agent receives only the question, for example “Revenue for the APAC region in week 2026-W37 (2026-09-07 to 2026-09-13) was $8,568,041, 12.4% below the average of the previous four weeks ($9,781,946). Leadership wants to know why.”, and must submit each cause with its scope and its share of the decline.

Four kinds of test

  • Familiar causes: the same kinds of cause the agent trained on, in new companies.
  • Combined causes: two familiar causes at once, so their effects must be separated.
  • Unseen cause types: causes never present in training — a currency move that changes dollar-reported revenue, a data-load failure that hides sales from reporting, and a supplier delay that cascades into stock-outs and lost accounts.
  • Misleading decoy: a familiar cause plus a decoy chosen to point at the wrong explanation.

Three agents

Diagram of the pilot: a simulated company with 19 tables and about 750k order lines feeds three agents - A with SQL tools only, B with investigation tools (KPI breakdown, change decomposition, lookup, event search, hypothesis log), and C which is agent B plus a playbook learned from reward with frozen weights - evaluated on 20 held-out investigations across four test types.
Figure 1. One environment, three agents. B and C have identical tools, so the difference between them is training alone.

All three agents use the same model (gpt-5.4) and can reach exactly the same data. Agent A has the minimum a normal data agent gets: the schema, SQL, and a way to submit. Agent B adds a semantic analytics layer — breakdowns of the change by any dimension, a decomposition of a drop into volume, price, currency, fulfilment and reporting effects, entity lookups, event search and a hypothesis log. Agent C is agent B after training in the environment. Comparing B with A measures the tools; comparing C with B measures the learning.

Scoring

A verifier compares each submission with the simulator’s ground truth: whether each real cause is found with the right type and scope, how close its claimed share of the decline is, whether the agent actually examined the evidence for it, and penalties for naming decoys, inventing entities or wasting queries. An investigation is fully correct only if it finds every cause with the right scope, gets each share within 0.2 of the truth, and claims no decoy.

Experiments

Modelgpt-5.4 via Azure OpenAI, default sampling
Held-out evaluation20 investigations: 5 per test type, identical for all three agents
Budgetup to 25 tool-using turns per investigation
Training (agent C)12 training companies with familiar causes only; 2 learning steps of 6 tasks × 2 attempts; the playbook is updated by reflecting on better and worse attempts and reading the true answer
Spendabout 5.9M tokens recorded across the three agents and a live smoke test

Reading transcripts before trusting the numbers

Before comparing agents, we read their investigations against the ground truth. Three times, the scoring was wrong rather than the agents:

  1. Shares. Agents estimated a cause at about 71% of the observed decline; ground truth said 100%, because it divided by the total impact of the injected causes instead of the decline the question asks about. Shares are now a fraction of the observed decline.
  2. One cause, described twice. When an agent reported a single promotion error separately for online and partner orders, the second half counted as a false claim, and a 3% side note cost as much as a wrong 50% cause. Claims that identify the same cause are now combined, and false claims are weighted by the share they claim.
  3. Ambiguous labels. The SQL agent correctly described a data-load failure in its written summary but filed it under “tracking or measurement issue” rather than “data pipeline issue”, and scored zero. That near miss now earns partial credit, and every cause label has a definition for the full test.

The trained agent’s first run started under the second flaw, so we stopped it and trained again after the fix. All three agents are then scored by identical rules. It is the same discipline as our certificate work: the measuring instrument has to be checked before its verdicts mean anything.

Outcomes

Grouped column chart of fully correct investigations by test type. Familiar causes: A 100%, B 100%, C 80%. Combined causes: A 60%, B 40%, C 40%. Unseen cause types: A 0%, B 80%, C 100%. Misleading decoy: A 40%, B 60%, C 60%. All 20 tasks: A 50%, B 70%, C 70%.
Figure 2. Fully correct investigations by test type. The trained agent is best on unseen cause types and level overall.
AgentFully correctMean rewardTokens per investigationTool calls
A. Normal agent, SQL only50%0.76961k29
B. Normal agent, investigation tools70%0.82294k36
C. Agent B, trained in the environment70%0.82038k17

Better tools helped less than they first appeared. Agent B beat agent A by 0.05 in mean reward (95% interval −0.02 to +0.12). Before the labelling fix, B’s lead on unseen cause types looked like +0.59; afterwards it was +0.18. Much of the apparent advantage was A choosing a neighbouring label for a correct diagnosis.

Training matched accuracy at 40% of the cost. Agent C was fully correct as often as agent B while using 38,000 tokens and 17 tool calls per investigation instead of 94,000 and 36. Even during training, investigations became cheaper between the two learning steps (77,000 to 54,000 input tokens per attempt) while training reward rose from 0.80 to 0.84. On unseen cause types, agent C was fully correct on all five tasks.

Scatter plot of accuracy against tokens per investigation: A at 61k tokens and 50% fully correct with 29 tool calls, B at 94k tokens and 70% with 36 tool calls, C at 38k tokens and 70% with 17 tool calls; an arrow from B to C reads training: 60% fewer tokens, same accuracy.
Figure 3. Cost against accuracy. Training moved the agent left, not up.

The difference is easiest to see on a single task. On a held-out investigation where a misconfigured promotion caused the drop and a campaign ending that week was the decoy, the untrained agent made 39 tool calls and blamed the campaign for a quarter of the decline. The trained agent made 17, decomposed the change early, and gave the campaign 3%.

Two rows of tool-call blocks for the same held-out task. The untrained agent makes 39 calls, mostly SQL queries, uses 120k tokens and assigns 26% of the drop to a decoy campaign for a reward of 0.49. The trained agent makes 17 calls, with four change decompositions early, uses 31k tokens and assigns the decoy 3% for a reward of 0.89.
Figure 4. The same held-out task, investigated before and after training. Each block is one tool call.

It also learned a rule that went too far. The trained agent’s playbook is readable, which makes both its strengths and its mistakes inspectable. Most lessons describe a sensible investigation strategy: run broad cuts, decompose the change to classify its mechanism, confirm with one independent source, and stop. One lesson, written after a competitor launch in training, told it to prefer the external event over “the downstream symptom of fewer buyers”. On two held-out tasks where key accounts had genuinely left, it found the right accounts, read CRM notes saying they were moving to a competitor, and labelled the cause a competitor action. Both untrained agents got those tasks right. They account for the whole of its shortfall on familiar causes.

Verbatim playbook excerpts. On the left, lessons that made the agent efficient: an investigation funnel built around change decomposition, guarding the tool budget and stopping once one cause explains the drop, and using SQL only for one focused confirmation. On the right, a lesson telling the agent to label a competitor event instead of churn, and a table showing that on two held-out churn tasks the untrained agent answered customer_churn correctly while the trained agent answered competitor_action.
Figure 5. Verbatim lessons from the trained agent's playbook, including the one that over-generalised.

None of this is significant yet. With five tasks per test type, the smallest p-value a paired sign-flip test can produce is about 0.06, so no difference within a test type could reach significance, and overall the trained and untrained agents are level (difference in mean reward −0.002, 95% interval −0.16 to +0.12). The pilot shows direction, not proof.

Conclusion

What the pilot shows. The environment works end to end: companies with exact ground truth, investigations that run and submit, a verifier whose mistakes we could find and fix, and an agent that improves from its own outcomes. Learning from reward made the agent markedly more efficient without losing accuracy, and its best results came on causes it had never trained on, which is where learning an investigation strategy should matter most.

What it does not show. Five tasks per test type, one run, and only 24 training attempts cannot establish that learning beats a well-equipped untrained agent. Familiar causes are already solved by the untrained agents, so they cannot show a gain. The one over-general lesson is a warning: learning from a handful of tasks can also teach the wrong rule, and the pilot ran without the regression check designed to catch that.

Next: the full test

Plan for the full test: two models, gpt-5.4 and gpt-5.4-mini, each with the three agents; every agent evaluated on the same 100 held-out tasks, 25 per test type; the trained agents use 48 or more training tasks over two epochs with a regression gate. Hypotheses H1 to H3 and a note that results will follow.
Figure 6. The full test, planned after the pilot. Results will be published in a follow-up note.

The full test keeps the pilot’s design and fixes what the pilot exposed:

  • Two models. The three agents on gpt-5.4 and on the smaller gpt-5.4-mini, to see whether learning matters more for a weaker model.
  • Enough tasks to decide. 100 held-out investigations per agent, 25 per test type, identical for every agent.
  • More, and checked, training. At least 48 training companies over two epochs, with a regression gate that keeps a new playbook only if it does no worse on fresh training tasks.
  • Clear labels. Every cause label carries a definition, so a wrong label is a real error rather than an ambiguity.

We fixed three hypotheses before running it:

  1. H1. The trained agent beats the untrained agent with the same tools on combined causes, unseen cause types and misleading decoys, while losing no more than five points of accuracy on familiar causes.
  2. H2. The trained agent needs substantially fewer tokens per investigation at equal or better accuracy.
  3. H3. The gain from learning is larger for gpt-5.4-mini than for gpt-5.4.

Every comparison will be paired on the same tasks and reported per test type with bootstrap intervals and permutation tests. We will publish the results in a follow-up note, including any hypothesis that fails.

If your team spends its time explaining why a metric moved, talk to us.

All notes