Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SpeedRunner

Paper | Website

Official code for SpeedRunner, an online method for learning programmatic agent skills from experience.

SpeedRunner wake–sleep workflow

Methods

The repository uses the same method names as the paper:

Config/CLI name Paper name Description
react ReAct No sleep-phase update.
opo OPO Update a prose strategy guide.
speedrunner SpeedRunner Update a callable codebook with sleep-phase code execution over accumulated experience.
speedrunner_no_cl SpeedRunner w/o CL Use the same codebook update without sleep-phase code execution.
asi ASI Append-only agent skill induction with optional replay verification.
voyager Voyager Crafter curriculum, critic, and skill retrieval.

Method names determine their runtime behavior. In particular, sleep-phase code execution is always enabled for speedrunner and disabled for speedrunner_no_cl; it is not a separate configuration flag.

Layout

src/
  speedrunner/
    core/                   # Shared runtime, codebook, reporting, and checkpoints
    methods/
      wake_sleep/           # ReAct, OPO, SpeedRunner, and ASI
      voyager/              # Voyager agents and skill manager
    benchmarks/
      babyai/               # BabyAI wrapper and training entrypoint
      crafter/              # Crafter wrapper, training entrypoint, and Voyager
      scienceworld/         # ScienceWorld wrapper and training entrypoint
configs/                    # Configurations grouped by benchmark
scripts/run_server.sh       # Configurable local vLLM server
BALROG/                     # Minimal local BabyAI environment server

Setup

conda create -n speedrunner python=3.12
conda activate speedrunner
git submodule update --init vendor/crafter
pip install -r requirements.txt

For local vLLM runs, install vLLM separately and start the configured model:

pip install vllm
./scripts/run_server.sh

The script starts Qwen/Qwen3.5-35B-A3B on port 5012. The configured model and server.base_url endpoint must match the server used for an experiment.

BabyAI also needs the local BALROG server:

python BALROG/deploy_env.py deploy.port=8080

Running experiments

Benchmark Entrypoint Configs Additional setup
BabyAI speedrunner.benchmarks.babyai.train configs/babyai/ Start the local BALROG server
Crafter speedrunner.benchmarks.crafter.train configs/crafter/ Install Crafter and start any configured local model server
ScienceWorld speedrunner.benchmarks.scienceworld.train configs/scienceworld/ Install ScienceWorld and start any configured local model server
Crafter Voyager speedrunner.benchmarks.crafter.train_voyager voyager_crafter.yaml Same setup as Crafter

For example, run the paper's ScienceWorld SpeedRunner experiment with GPT-5.4 mini on task 4:

python -m speedrunner.benchmarks.scienceworld.train \
  --config_file configs/scienceworld/speedrunner-gpt-t4.yaml

API-backed configs read credentials from the environment:

export OPENAI_API_KEY=...
export GEMINI_API_KEY=...

Qwen configs expect a compatible OpenAI-style local server at the endpoint specified by the config. Start it with scripts/run_server.sh or use an equivalent server deployment.

Config filenames use the form <method>-<model>-<task-set>.yaml. For ScienceWorld, t3, t4, and t3t4 identify task 3 & 4 distribution shift experiments.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages