evo-hq/autoresearch-novelty-bench
Autoresearch Novelty Bench A benchmark for testing whether an autonomous AI research agent proposes novel, mechanism-distinct hypotheses that anticipate breakthroughs later found by other researchers. By Evo. Built on Prime Intellect's autonomous-speedrunning archive — two AI agents (Claude Code and Codex) competing on modded-nanogpt's optimization speedrun. What's in this dataset table rows description experiments.parquet 10,380 One row per training… See the full description on the dataset page: https://huggingface.co/datasets/evo-hq/autoresearch-novelty-bench.
Autoresearch Novelty Bench
A benchmark for testing whether an autonomous AI research agent proposes novel, mechanism-distinct hypotheses that anticipate breakthroughs later found by other researchers.
By [Evo](https://evo-hq.com). Built on Prime Intellect's autonomous-speedrunning archive — two AI agents (Claude Code and Codex) competing on modded-nanogpt's optimization speedrun.
What's in this dataset
Usage
The accompanying Python package handles loading + scoring:
pip install evo-autoresearch-novelty-benchimport novelty_bench as nb
# Browse the dataset (auto-downloads from HF)
nb.load_experiments(agent="codex", wave="v3", verdict="improved")
nb.load_snapshots(split="dev") # 16 dev snapshots
nb.load_snapshots(split="test") # 24 held-out test
nb.load_ideas()
nb.load_val_trajectories(run_id="alr001_k025")
# Score your proposer's candidates against a snapshot
snap = nb.load_snapshots()
snap = snap[snap["snapshot_id"] == "snap_codex_v3_k0922"].iloc[0]
result = nb.score(snap, ["candidate_1.md", "candidate_2.md", ...])
print(result.explain())The default judge backend is llm-hybrid (cosine retrieval + gpt-5-mini reasoning; needs OPENAI_API_KEY; ~$0.005 per N=5 candidate set). Pass judge_backend="cosine" to nb.score() for a deterministic, embedding-only classification (no LLM call, ~$0.0003 per set).
For end-to-end agent benchmarking, see the scaffold repo: `evo-hq/autoresearch-novelty-bench-scaffold`.
How the dataset was built
- Parse the upstream archive — walk 8 scratchpads, parse runs.jsonl, training logs, idea writeups
- Link runs to ideas via heuristic + abbreviation + LLM matcher (63% link rate)
- Recover variant.py linkage via 4 cascade passes (embedded source, dynamo warnings, sbatch stubs, name-stem) — 54% → 95.6% code coverage
- Build experiments catalog (10,380 rows, primary unit for benchmark scoring)
- LLM-augment descriptions for runs without parent idea writeups (~$0.26 with gpt-4o-mini)
- Embed everything with OpenAI text-embedding-3-large + BGE-large
- Build 40 time-anchored snapshots across 8 (agent, wave) scopes
- Calibrate the judge — 78 labeled cases sweep cosine threshold to 0.75
Full details + reproducibility instructions in the main repo: `evo-hq/autoresearch-novelty-bench`.
Source attribution
The raw ideas/*.md and variants/*.py files indexed here belong to Prime Intellect. This dataset ships derived metadata (step counts, verdicts, snapshot schemas, embeddings, linkage tables) plus a small subset of raw .py files that we extracted from log content (recovered_variants/) or that document each snapshot's current-best recipe (current_recipes/).
License
Apache 2.0 (derived data + linkage tables). Upstream raw text/code is governed by its own terms — see the Prime Intellect repo.
