Skip to content
Effector Lab

Tutorial · 20 minutes

Run it yourself

The worked examples come from one command, and it runs on a laptop. Here is how to run it on your own plan, with Python or Docker, and what you get back.

01What you need

  • A plan

    A TaskSpec JSON file from the Studio's planner (Plan a task).

  • Python or Docker

    Python 3.12 with uv, or Docker. A CPU is enough: no GPU, no cloud account, no key.

  • Some minutes

    The returns tote search took 15 minutes on 4 workers: screen, combinations and finalists.

02Install

Clone the repository and install the locked dependencies with uv. The tests run on the CPU and need no network.

Terminal
$ git clone https://github.com/stray128/robot-tool-tournament.git$ cd robot-tool-tournament$ make sync$ source .venv/bin/activate# optional: the full test suite$ make test

04Or run it in Docker

The simulation image has the same code and the locked dependencies, so nothing is installed on your machine. Build it once:

Terminal, in the repository folder
$ jobs/nebius/build_image.sh rtt-sim:dev# a quick check: the first gate passes in a few seconds$ docker run --rm rtt-sim:dev m1 --no-files

Then run the search with the current folder mounted at /work:

Terminal
$ docker run --rm -v "$PWD:/work" --entrypoint python rtt-sim:dev \  -m rtt.studio.search /work/taskspec-<id>.json --out /work/runs/studio/my-task --pack

The image is about 2 GB. Files it writes belong to the container's user (root); change their owner afterwards if you need to.

05What it writes

  • runs/studio/my-task/report.json

    The whole search: the plan, every candidate and why it was ruled out, the success matrix, the combinations, the finalists, the recommendation (or the closest setup) and the timings. The command also prints the recommended setup's id.

  • runs/studio/my-task/build_pack/ and build_pack.zip

    With --pack: the files to build the setup, and the same files zipped next to them (the returns tote pack is 10.8 kB, 7 files).

    noteslicencebomcertificatemjcf

The story pages on this site are made from the same report by scripts/export_studio_web.py; see Search and ranking for every field.

06Plan live (optional)

To turn your own words into a plan, run the planner on your machine with your own Nebius Token Factory key. Anything that spends asks for a passcode you choose.

Terminal 1: the local API
$ cp .env.example .env# put your key in .env: NEBIUS_API_KEY=...$ export RTT_AGENT_PASSCODE_SHA256=$(python -c "import hashlib;print(hashlib.sha256(b'your-passcode').hexdigest())")$ rtt serve
Terminal 2: the site, pointed at it
$ cd web$ pnpm install --frozen-lockfile$ NEXT_PUBLIC_API_URL=http://127.0.0.1:8000 pnpm build$ pnpm start

Open http://127.0.0.1:4173/studio/, describe the task, enter the passcode and press Plan. A plan is one model call, or two when the first breaks a rule, on your key; the planner's guide describes the passcode and the spend caps.