Researcher quickstart
Prerequisites
- Node.js 22 and pnpm 9.15.4
- Python 3.12 and
uv - Rust and
wasm-packfor the browser build - Chromium when running Playwright
From a clean clone:
pnpm install --frozen-lockfile
pnpm research:setup
pnpm research:dev
research:dev starts Vite at http://localhost:9001/ and the research service
at http://127.0.0.1:9013/. Open Runs, select the seed, total timesteps, and
episode limit, then start training. The default example uses
Stable-Baselines3 PPO with MlpPolicy, seed 42, and 50,000 timesteps.
To run the components separately:
pnpm dev
pnpm research:serve
pnpm research:train -- --seed 42 --timesteps 50000
Only one local job may run at a time. Closing the Runs view does not upload or delete a run. Use Stop to terminate the active process; the environment finalizes its current trajectory as explicitly aborted and truncated.
Run artifacts
Each ignored .exepert/runs/<run-id>/ directory contains the run manifest,
episode metrics, a replayable trajectory, summary, dependency/environment
versions, and the local model checkpoint. Download links in Runs call the
loopback service with the current session token. Imported trajectories are
parsed and replayed in the browser; malformed or incompatible artifacts are
rejected rather than guessed.
Validation
pnpm typecheck
pnpm test
pnpm research:conformance
pnpm research:test:service
pnpm research:test
pnpm research:train -- --seed 7 --timesteps 256 --max-episode-steps 120
pnpm exec playwright test tests/e2e/research-runs.spec.ts
cargo build --workspace --locked --all-targets
cargo test --workspace --locked
pnpm build
pnpm --dir docs-site typecheck
pnpm.cmd --dir docs-site exec docusaurus build
git diff --check
The direct Docusaurus command intentionally bypasses activity-calendar regeneration when that generated file is outside the task scope.