NERSC Perlmutter · 16 October 2026 · run full1

E3SM Agent Co-Discovery

Ten AI agents investigated E3SM code and simulation data to find where agent-driven discovery works and where it fails. Their answers were scored against a hand-verified answer key, and every citation was checked automatically against the files.

Correct (scored questions)
46 / 47
97.9 % · 44 / 47 as first scored
Wrong answers
0
1 partial (provenance)
Valid citations
100 %
file exists, line in range, quote matches
Message-board posts
0
agents never shared findings
Run time
21 min
1 CPU node, ~0.35 node-hours
Model usage
2.6 M
input tokens; 150 k output; $5.39 reported

Setup

Code and data

  • Code: an E3SMv3 checkout (v3.1.0-beta), all components (EAM, EAMxx, ELM, MPAS-Ocean, MPAS-SeaIce, coupler).
  • Data: the v3.LR historical run (v3.LR.historical_0101.aigo, 1940–2065) and the S2S2D hindcasts (78 starts × 10 members).
  • Model: claude-sonnet-5-5 through the AmSC Model Access Gateway; agents run with Academy and the Claude Agent SDK.

Agents and tools

  • 8 investigators: EAM, EAMxx, ELM, MPAS-Ocean, sea ice + coupler, configuration, data, code–data tracer.
  • Skeptic re-checks every answer; coordinator writes the summary; a shared message board.
  • Read-only tools only: list, find, grep and read code; netCDF headers and small variables. Paths outside the code and data trees are refused.

55 questions: 35 lookups (tier 1), 12 multi-step links including deliberate traps (tier 2), 8 open-discovery prompts (tier 3, judged by the skeptic, not scored). Question text and answers are kept private so the set stays usable as a test.

Results by tier

TierQuestionsCorrectPartialWrongNotes
1 · Lookup353500Exact file and line for fields, units, defaults, classes, counts
2 · Multi-step link121110Code → configuration → data; includes the traps below
3 · Open discovery8not scoredSkeptic: 5 supported, 3 partly

Results by agent

AgentQuestionsCorrectPartialOpen (tier 3)
EAM (atmosphere physics, parameterizations)161402
MPAS-Ocean9702
Code–data tracer8512
Configuration7601
Data7601
EAMxx3300
Sea ice + coupler3300
ELM2200

Skeptic verdicts over all 55 answers: 48 supported, 7 partly supported, 0 unsupported.

The traps

What the trap testsOutcome
Choosing the right one of several configuration-dependent namelist defaults (ZM convection)Correct
Case-sensitive parameter names in CLUBB (Fortran namelists ignore case; a case-sensitive search finds nothing)Correct
A namelist variable used by the run that was renamed in the checkout (ZM trigger)Correct
Ocean parameterization values that look tuned in one defaults file but are defaults in another (GM / Redi)Correct
Output code the run used that does not exist in the checkout: the agent must say so, not invent a fileCorrect — searched, then reported it absent
A run namelist enabling options the checkout does not haveCorrect
Which code version actually built the runPartial — found the source tree and commit, not the branch; did not compare commits

What worked

What failed or was weak

Confidence

Agents gave a stated probability with each answer: mean 0.87 on correct answers and 0.70 on the single partial one. With only one answer that was not correct, calibration cannot be judged yet. The run's lowest confidence (0.35, the archive audit) did go with its weakest answer.

Candidate discoveries

Found by the agents beyond the answer key; they still need human verification.

How it was scored

Next steps