This repository will demonstrate specialist browser-agent improvement with reinforcement learning on deterministic Browser Use Worlds. Before changing the environment, it reproduces Tinker Cookbook's default Harbor RL recipe on Terminal-Bench using Inkling.
No browser-agent training code is present yet.
Tinker Cookbook is pinned in pyproject.toml; see UPSTREAM.md. The baseline uses:
- the upstream Harbor task loader and bash-tool agent;
- Terminal-Bench 2.0;
- Modal sandboxes;
- each task's
tests/test.shreward; thinkingmachines/Inklinginstead of the recipe's original model default.
Place TINKER_API_KEY in .env and authenticate Modal. Then:
uv sync
uvx harbor datasets download terminal-bench@2.0 \
-o ~/.cache/harbor/tasks/terminal-bench-2.0Load .env without passing credentials as command arguments:
set -a
source .env
set +aRun the smallest real training step first:
uv run python scripts/train_terminal_bench_smoke.pyThis runs one Terminal-Bench task with two Inkling rollouts and disables the upstream iteration-zero evaluation over all 89 tasks. The Harbor agent, sandbox, grader, and training loop are unchanged.
Validated on August 8, 2026: one batch and two rollouts completed, the optimizer step succeeded,
and final Tinker state and sampler checkpoints were produced. Both rollouts reached their token
limit and received -0.1, so this validates the baseline pipeline rather than task performance.
After the one-step run succeeds:
uv run python -m tinker_cookbook.recipes.harbor_rl.scripts.train_terminal_bench \
model_name=thinkingmachines/Inkling \
learning_rate=1e-5The learning rate is an explicit initial experiment value; Inkling does not publish a universal recommended RL learning rate.
The browser stack uses one reusable Daytona base snapshot containing Chromium and Browser Harness. Each rollout creates one ephemeral sandbox, materializes the exact Zenith World binary, and runs the World, Chromium, and Browser Harness locally together. Browser Use Cloud is not involved.
uv run python scripts/verify_zenith_daytona_sandbox.py \
--world-binary /tmp/zenith-world-server \
--customer-repo ~/work/browser-rl-daytona-harbor \
--output /tmp/zenith-daytona-browser-harnessThe verifier checks the Zenith task result, records output-file and screenshot hashes, deletes the sandbox, and retains the shared snapshot for later rollouts.