Tasks/AI Models & Agents

Scientific Discovery Agent Harness Design

Redesign a ReAct harness for long-horizon scientific discovery in unseen simulated worlds

AI Models & AgentsLLM agentsharness design
Background

Agent-harness design, the prompting, memory, and action-selection layer around a frozen language model, remains unsolved for long-horizon scientific investigation, where agents act competently yet rarely state what they learned. The starting point is a plain reason-act loop that replays a truncated history and emits one action per observation in a simulated world. The work is to rebuild its reasoning, experimentation, memory, and stated conclusions. The hard part is that competent action does not imply understanding, and results must survive unseen worlds on a fixed budget.

instruction.mdthis is what the agent is given

You inherit a weak but working ReAct harness that drives a fixed language model through open-ended scientific discovery scenarios in a simulated world. Improve its reasoning, experimentation, memory, action selection, and the explanatory conclusions it states; the submitted harness is re-run on sealed parametric seeds.

Hard Constraints

  • The base model is fixed. All model calls must go to DISCOVERYWORLD_LLM_API_BASE with DISCOVERYWORLD_LLM_API_KEY and DISCOVERYWORLD_LLM_MODEL (an OpenAI-compatible /chat/completions endpoint); do not call another model endpoint or invoke a model locally.
  • Keep the line-oriented JSON entry point working: python3 /app/methods/main/agent.py. It reads protocol messages from stdin and writes exactly one action JSON object per observation to stdout.
  • Only files under /app/methods are submitted. Runtime dependencies must already be installed in the image or vendored under that directory.
  • Do not hardcode solutions for particular scenarios, seeds, object UUIDs, species, artifacts, or measurements. The hidden worlds use unseen parametric variations.
  • Do not attempt to inspect the evaluator process, hidden seeds, simulator internals, or scorecards. The harness may use only the observations and action metadata sent through stdin.
  • First evaluate inherited v0 on the complete six-instance visible suite and record its mean and all six instance scores.
  • You may use single-instance runs to debug an idea, but do not assign a new version number or snapshot from a slice score alone.
  • Before creating each v1, v2, ... snapshot, evaluate that candidate on the same complete six-instance suite with the standard 240-step budget. Allow up to 25 minutes for this command.
  • Every version row in experiment_log.md must contain one comparable full-suite mean plus all six instance scores. Revert regressions and select the final submission from these full-suite results.

What You Have

  • /app/methods/main/agent.py is the starter ReAct harness. Each turn is one stateless call carrying the full action/observation history, so how much of it to keep, and in what form, is yours to design.
  • /app/runner.py hosts the trusted simulator and documents the JSON protocol used by the harness.
  • /app/selfcheck.py evaluates the current harness on six visible worlds: three independent seeds for each of two themes. Use --n, --ids, and --max-steps for faster experiments.
  • The visible suite covers open-ended space illness and combinatorial chemistry. The sealed suite uses the same themes and difficulty with two different parametric seeds per theme.
  • Self-check reports normalized procedural progress, binary successful completion, explanatory-knowledge accuracy, and their equal-weight mean. Harness exceptions are written to selfcheck_logs/<case>/harness.stderr.log, not to the console.
  • Explanatory knowledge is scored from the harness's explicit thought fields against a held-out rubric of critical questions, and it is an independent third of the raw metric. Procedural activity or task completion alone earns none of it.

What You Submit

Submit the improved /app/methods directory. Keep the executable harness in /app/methods/main/, snapshots in /app/methods/versions/, and a concise experiment ledger in /app/methods/experiment_log.md.

How It Is Judged

The sealed verifier runs the submitted harness from scratch on unseen parametric variations of the same two themes, using the same fixed base model and 240-action budget. For each world it computes normalized procedural progress, successful completion, and explanatory-knowledge accuracy, takes their equal-weight mean as the raw metric, maps that value against per-theme anchors, and averages the per-instance rewards.

Rollouts

627 minWall clock
$159.78Spend
236.5MTokens
10Versions, 9 kept

On the visible set

0.15 0.30 0.45 0.60 0 400 800 1,200 Agent step Progress score ↑ v0 v1 v2 v3 v4 v5 v6 v7 v8 v9
keptrolled backsubmitted
  1. v0The agent inherited a stateless loop with a 10k-character window.0.100510 min · $0.86
  2. v1The agent built a stateful memory and a deterministic mixture controller.0.491771 min · $11.97
  3. v2The agent fed one specimen per colonist and read each outcome exactly.0.5764302 min · $71.86
  4. v3The agent used the waiting window to run a matched panel on untouched controls.0.6014342 min · $82.60
  5. v4The agent tried extra handoffs in worlds reporting illness, and gained nothing.0.6014364 min · $89.80
  6. v5The agent measured the intact parent beside its aliquot to control preparation.0.6208487 min · $122.54
  7. v6The agent dropped replanting once the original crops already exceeded the cap.0.6208517 min · $130.55
  8. v7The agent watched the crowd at the square before it dispersed.0.6236537 min · $137.17
  9. v8The agent tested unmodified soil as an independent control on growing conditions.0.6278550 min · $141.36
  10. v9The agent ran the same soil assay on every remaining food so the control had a pair.0.6306591 min · $150.75

On the hidden set

Original metricNormalised score
Starter0.1347220.0
Frontier-calibrated reference0.5716670.6
Upper11.0
This run (GPT-5.6-sol)0.2555560.2697
235 minWall clock
$68.75Spend
117.2MTokens
14Versions, 8 kept

On the visible set

0.150 0.225 0.300 0.375 0 100 200 300 Agent step Progress score ↑ v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v13
keptrolled backsubmitted
  1. v0The agent inherited a ReAct harness with no memory0.100514 min · $2.18
  2. v1The agent rewrote the prompt as a curated notebook with action repairThe 10k prompt was almost all raw tiles; replace it with a curated notebook and repair the arguments the model gets wrong.0.221357 min · $8.94
  3. v2The agent added anti-loop guards and a one-call trial macro0.21383 min · $15.72
  4. v3The agent fed invalid actions back to the model as harness notes0.269110 min · $23.46
  5. v4The agent added evidence lines but its trial macro dosed an empty jar0.2125124 min · $28.33
  6. v5The agent made the trial macro replace the specimen after each resetThe reset ejected the specimen, so every trial after the first dosed an empty jar.0.3546138 min · $32.69
  7. v6The agent forced single-factor isolation for the whole episode0.2884155 min · $38.74
  8. v7The agent told the model to repeat any effective trial0.2329171 min · $43.26
  9. v8The agent rebuilt from v5 and added a REPORT action0.2199188 min · $49.37
  10. v9The agent dropped pointless waits and suggested the next untried composition0.2227201 min · $53.41
  11. v10The agent searched mixture ratios instead of mere presence or absenceA partly right treatment gives a partial effect, so the answer space is proportions, not which substances are present.0.3426215 min · $57.62
  12. v11The agent promoted ratio mixtures ahead of the single-factor trials0.2593224 min · $61.16
  13. v12The agent added extra ratio candidates but the run window closedrun window closed229 min · $62.90
  14. v13The agent reworded one report phrase to name no visible-world substance0.3426234 min · $67.20

On the hidden set

Original metricNormalised score
Starter0.1347220.0
Frontier-calibrated reference0.5716670.6
Upper11.0
This run (Opus 5)0.2208330.2045
174 minWall clock
$7.85Spend
40.2MTokens
5Versions, 4 kept

On the visible set

0.15 0.30 0.45 0.60 0.75 0 1 2 3 4 Agent step Progress score ↑ v0 v1 v2 v3 v4
keptrolled backsubmitted
  1. v0The agent inherited a stateless ReAct harness with truncated raw history0.0912
  2. v1The agent added an observation compressor, a scientific ledger and loop detectionStop feeding raw tiles to the model: compress observations and keep findings in a ledger the loop rereads.0.1514
  3. v2The agent fixed PUT versus USE semantics and articulated rubric-shaped thoughtsFix what the actions actually mean, and phrase every thought in the rubric's own terms so the judge can score it.0.4606
  4. v3The agent added a combinatorial recipe generator and a phased space protocolTurn the chemistry hunt into an enumerated recipe queue and the illness work into a fixed instrument battery.0.6847
  5. v4The agent resolved entity names to UUIDs and articulated multi-scale formulas0.7306

On the hidden set

Original metricNormalised score
Starter0.1347220.0
Frontier-calibrated reference0.5716670.6
Upper11.0
This run (Gemini 3.7 Flash)0.3576390.3649
720 minWall clock
$15.56Spend
32.5MTokens
20Versions, 15 kept

On the visible set

0.150 0.225 0.300 0.375 0.450 0 4 8 12 16 Agent step Progress score ↑ v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v15-confirm v16 v17 v18
keptrolled backsubmitted
  1. v0The agent inherited the baseline ReAct harness0.1282$0.27
  2. v1The agent condensed observations and added compact memory with loop warnings0.1625$1.25
  3. v2The agent sanitized directions and merged the reflection notebook into thoughts0.1713$1.93
  4. v3The agent added an accessibility guard and deferred SUBMIT for reflection0.1958$2.47
  5. v4The agent added a ratio-refinement search rule and an experiment table0.2593$2.82
  6. v5The agent verified empty trials and attributed effects to exact contentsAttribute each outcome to the jar's verified contents, then commit to the cause the trials agree on.0.3852$3.53
  7. v6The agent tightened trial discipline and waited for reactions0.2301$4.01
  8. v7The agent stopped merging stale notes over the model's own conclusion0.2551$4.65
  9. v8The agent raised ratios without rewashing and tracked degree of improvement0.1861$5.84
  10. v9The agent made next-experiment directives explicit and forced best-guess conclusionsHand the model one named next experiment per reflection instead of asking it to pick.0.3574$5.54
  11. v10The agent snapshotted inventory into memory and generalized the directive0.1736$6.22
  12. v11The agent raised the prompt budget to 95k and tightened memory lines0.3495$6.94
  13. v12The agent reordered the ratio ladder and softened the directive0.2481$7.59
  14. v13The agent wrote judge-ready conclusions and always merged after step 500.2398$8.86
  15. v14The agent harvested the freshest conclusion instead of merging stale notes0.2162$10.20
  16. v15The agent emphasized giving items directly instead of through intermediariesRouting food through the chef mixed the pot, so no colonist outcome could be attributed to one sample.0.4431$10.37
  17. v15-confirmThe agent re-ran v15 unchanged to check run-to-run variance0.2954$11.56
  18. v16The agent added an early time-box warning for consumption trials0.3005$12.75
  19. v17The agent added a recipient clarification line0.3199$14.25
  20. v18The agent set the reflection cadence back to ten steps0.4208$15.47

On the hidden set

Original metricNormalised score
Starter0.1347220.0
Frontier-calibrated reference0.5716670.6
Upper11.0
This run (Kimi K3)0.2631940.1378
68 minWall clock
$14.10Spend
24.1MTokens
5Versions, 4 kept

On the visible set

0.15 0.30 0.45 0.60 0.75 0 1 2 3 4 Agent step Progress score ↑ v0 v1 v2 v3 v4
keptrolled backsubmitted
  1. v0The agent inherited the raw-JSON ReAct harness0.1097
  2. v1The agent added memory, action grounding and a combinatorial mixerGive the loop a memory and turn the chemistry hunt into a scripted singles, pairs, then ratios sweep.0.65
  3. v2The agent fixed the cave-arrival check and stated scaled mixture proportionsA correct recipe written 2:2 was being graded wrong, so state proportions the rubric can match at any scale.0.7042
  4. v3The agent added drop-to-test detection and capped field scans0.7042
  5. v4The agent restated the glowing-rock detector hypothesis in every thoughtKnowledge is one judged sentence; carry the claim into every thought so the judge cannot miss it.0.7625

On the hidden set

Original metricNormalised score
Starter0.1347220.0
Frontier-calibrated reference0.5716670.6
Upper11.0
This run (Grok 4.6)0.4013890.3890
720 minWall clock
$15.58Spend
142.7MTokens
12Versions, 7 kept

On the visible set

0.125 0.150 0.175 0.200 0.225 0.250 0 2 5 8 10 Agent step Progress score ↑ v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11
keptrolled backsubmitted
  1. v0The agent inherited a ReAct harness with raw JSON history0.13292 min · $0.04
  2. v1The agent built a structured notebook with archives, a summarizer and loop warnings0.128219 min · $0.64
  3. v2The agent auto-navigated to unreachable objects before acting on them0.173699 min · $2.73
  4. v3The agent distilled a final answer into every late-game thought0.2218113 min · $3.07
  5. v4The agent qualified the demonstration guidance and banned feed polling0.1736124 min · $3.21
  6. v5The agent replaced the ratio hint with systematic combination enumeration0.1713134 min · $3.58
  7. v6The agent pinned navigation targets and distilled answers at discovery moments0.1736151 min · $4.22
  8. v7The agent fed verbatim recent thoughts to the summarizer and distiller0.2231206 min · $5.14
  9. v8The agent rewrote the food guidance and fixed the distiller's echoed heading0.2315478 min · $11.30
  10. v9The agent adopted an age-based poison model with explicit meal pacing0.2514497 min · $11.85
  11. v10The agent enforced pacing with a per-turn agenda and SUBMIT gates0.2218$13.30
  12. v11The agent made the first meal a call-only batch with event-driven urgency0.2523664 min · $14.74

On the hidden set

Original metricNormalised score
Starter0.1347220.0
Frontier-calibrated reference0.5716670.6
Upper11.0
This run (DeepSeek V4 Pro)0.20.1200
433 minWall clock
$42.56Spend
131.9MTokens
7Versions, 5 kept

On the visible set

0 0.04 0.08 0.12 0.16 0.20 0 2 3 4 6 Agent step Progress score ↑ v0 v1 v2 v3 v4 v7 v8
keptrolled backsubmitted
  1. v0The agent inherited a stateless ReAct harness with truncated history0.01257 min · $0.40
  2. v1The agent made the harness stateful with a plan and knowledge journal0.132483 min · $5.23
  3. v2The agent normalized arguments and added reachability and dialog validation0.1338160 min · $11.74
  4. v3The agent tested an intermediate checkpoint and superseded it before snapshotting0.2037$17.91
  5. v4The agent detected mix and derust successes and fixed the search order0.1375278 min · $24.07
  6. v7The agent removed the harmful ROTATE suppression and tracked mixtures by name0.1236378 min · $36.49
  7. v8The agent dropped the tested-mixtures note and strengthened container guidance0.1838420 min · $40.90

On the hidden set

Original metricNormalised score
Starter0.1347220.0
Frontier-calibrated reference0.5716670.6
Upper11.0
This run (Qwen3.8 Max)0.1347220.0099
513 minWall clock
$24.16Spend
87.6MTokens
20Versions, 10 kept

On the visible set

0.150 0.225 0.300 0.375 0 4 8 12 16 Agent step Progress score ↑ v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19
keptrolled backsubmitted
  1. v0The agent inherited a raw-JSON ReAct harness with no memory0.11441 min · $0.08
  2. v1The agent rewrote the harness around a structured world model0.201959 min · $3.33
  3. v2The agent added an experiment log, feed parsing and state-change detection0.179684 min · $5.40
  4. v3The agent added idle-streak nudges and periodic sub-goal checks0.1778103 min · $6.44
  5. v4The agent added a reflective planner call and per-character dialog memory0.1833124 min · $7.40
  6. v5The agent remembered every dialog menu each character offers0.3106145 min · $8.20
  7. v6The agent blocked feed polling and pushed systematic enumeration0.2005172 min · $9.38
  8. v7The agent built a container-trial table with a fixed enumeration order0.2481192 min · $10.57
  9. v8The agent demanded conclusions naming every factor, amount and mechanism0.3213234 min · $12.56
  10. v9The agent echoed the trial table into the endgame thoughts0.188255 min · $13.20
  11. v10The agent blocked re-testing identical container contents0.3366288 min · $15.47
  12. v11The agent put baseline single-factor trials first in the enumeration0.313310 min · $16.26
  13. v12The agent reordered enumeration to try one-to-one pairs before single factors0.2537329 min · $16.86
  14. v13The agent restored v10's enumeration order and fixed repaired-action logging0.3157348 min · $17.46
  15. v14The agent added trial logging to stderr and re-measured the same design0.3745388 min · $18.94
  16. v15The agent enforced complete baselines for factors never tested alone0.1954413 min · $20.25
  17. v16The agent cheapened the baseline nudge and added controlled-exposure guidance0.2412437 min · $20.98
  18. v17The agent re-ran the v14 design unchanged to confirm the measurement0.2481$22.32
  19. v18The agent moved pairs ahead of multi-measure single-factor trials0.3176511 min · $23.66
  20. v19The agent re-ran the v18 design unchanged to confirm the measurement0.2676$23.91

On the hidden set

Original metricNormalised score
Starter0.1347220.0
Frontier-calibrated reference0.5716670.6
Upper11.0
This run (GLM 5.3)0.3652780.3328
135 minWall clock
$33.73Spend
39.8MTokens
5Versions, 3 kept

On the visible set

0.1 0.2 0.3 0.4 0.5 0.6 0 75 150 225 Agent step Progress score ↑ v0 v1 v2 v3 v4
keptrolled backsubmitted
  1. v0The agent inherited the starter ReAct harness unmodified0.137516 min · $2.47
  2. v1The agent added memory, action repair and a deterministic chemistry recipe search0.483351 min · $9.96
  3. v2The agent normalized chemistry conclusions with explicit dose ratios0.540368 min · $14.03
  4. v3The agent added deterministic space collection, feeding waves and a causal summary0.5903105 min · $24.66
  5. v4The agent added stale-target guards and richer explanatory wording0.5889123 min · $29.19

On the hidden set

Original metricNormalised score
Starter0.1347220.0
Frontier-calibrated reference0.5716670.6
Upper11.0
This run (GPT-5.5)0.2243060.1916

Leaderboard

Where each run landed on the sealed held-out set, on the same normalised-score scale as the anchors above.

0 0.3 0.6 1.0 1 Grok 4.6 grok · xhigh 0.389 2 Gemini 3.7 Flash antigravity · high 0.365 3 GLM 5.3 claude code · max 0.333 4 GPT-5.6-sol codex · max 0.270 5 Opus 5 claude code · max 0.204 6 GPT-5.5 codex · xhigh 0.192 7 Kimi K3 kimi cli · max 0.138 8 DeepSeek V4 Pro claude code · max 0.120 9 Qwen3.8 Max qwen coder · xhigh 0.010