Run an experiment
Install, configure and run a reproducible experiment.
1. Install
Requirements
- Linux x86-64 and Python 3.12.
- Docker Engine and Compose, with permission to run containers.
- Code and task-input downloads open on 6 November 2026. Reference solutions require manual approval on Hugging Face. See release and data access.
Set up the checkout
git clone https://github.com/Gen-Verse/Science-Last-Exam.git
cd Science-Last-Exam
python3.12 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp secret/.env.example secret/.env
cp example_exp.yaml my_experiment.yaml2. Configure
Credentials
Put your model API key and HF_TOKEN in secret/.env.
Agent
Copy a profile from env/native/profiles/. Set the model and compatible API endpoint; retain the exact CLI version. Codex is installed in the solver image. Claude Code requires the matching CLI on the host.
Experiment
name: sle-smoke
agent: env/native/profiles/codex.example.json
environment: configs/environments/local.yaml
tasks: selected_tasks/smoke.txt
concurrency: 1
output:
root: runsPaths are repository-relative or absolute. See environment setup before selecting GUI, end-to-end or Hypothesis Discovery tasks.
3. Choose tasks
| Scope | Task list | Count |
|---|---|---|
| Hypothesis Discovery | selected_tasks/hypothesis-discovery.txt | 5 |
| Protocol Planning | selected_tasks/protocol-planning.txt | 40 |
| Scientific Computing | selected_tasks/scientific-computing.txt | 23 |
| Scientific Software Operation | selected_tasks/scientific-software-operation.txt | 14 |
| Wet-lab Execution (In construction) | — | 0 |
| Experiment Observation | selected_tasks/experiment-observation.txt | 30 |
| End-to-end research (To be expanded) | selected_tasks/end-to-end-science.txt | 1 |
| Protocol Planning, Scientific Computing, Scientific Software Operation and Experiment Observation | selected_tasks/full.txt | 107 |
| Leaderboard composite | selected_tasks/leaderboard.txt | 113 |
| Entire benchmark | selected_tasks/all.txt | 113 |
| Docker-only subset | selected_tasks/docker.txt | 93 |
| Smoke check | selected_tasks/smoke.txt | 3 |
Change tasks: in the experiment, then run the same commands. For a custom selection, create a text file containing IDs from tasks/index.jsonl, one per line. full.txt covers Protocol Planning, Scientific Computing, Scientific Software Operation and Experiment Observation; leaderboard.txt and all.txt both contain all 113 tasks, including Hypothesis Discovery and End-to-end research (To be expanded). For the entire benchmark, select all.txt and set end_to_end_profile to a profile under env/closeloop/profiles/. Hypothesis Discovery tasks need their research databases; see Hypothesis Discovery setup.
4. Run
Preview
python -m sle_run run my_experiment.yaml --dry-runInspect the selected tasks, models and runtimes. This makes no downloads or model calls.
Prepare and check
python -m sle_run prepare my_experiment.yaml
python -m sle_run check my_experiment.yamlFetch selected data and prepare required runtimes, then check dependencies, credentials and services. The check does not test model endpoint connectivity.
Launch
python -m sle_run run my_experiment.yamlStart with the smoke list. The launcher repeats checks and records the experiment; it does not automatically retry or resume.
5. Inspect results
Open the new directory under runs/:
plan.json: selected tasks, models and budgets.summary.json: stage status and output locations.capabilities/: task scores, native traces and verifier output.end-to-end/: the separate research result, if selected.
Questions about running experiments? Contact ly1988@princeton.edu or wuyc@stanford.edu.