Fork one warm environment into thousands of rollouts
Run reinforcement learning, best-of-N, and tree search by forking one warm environment into many isolated runs at once. Each run is its own microVM, alive in ~27 ms, and you pay only for what it changes.
The problem
Rollout generation is the bottleneck. Cold-booting a fresh environment per run wastes minutes of init, and coupling state to one filesystem makes checkpoint and rollback the slow part of every trajectory.
How fork solves it
Mitos forks a running environment. Daughters share the parent pages copy-on-write, so each rollout starts from a warm, identical state in fork latency, not a cold boot, and diverges only where it writes.
from mitos import AgentRun
env = AgentRun().sandbox("python", ready=True)
# fork one warm env into 64 isolated rollouts
rollouts = env.fork(64)
for r in rollouts:
r.run_code("import policy; policy.step()") ~27 ms
Warm-claim activate (P50). Reproduce it.
Compared to Modal
Mitos is the open, microVM-isolated primitive: an own kernel per agent and a live fork of running memory. Modal isolates with gVisor, offers snapshot and restore rather than a live fork, and is a closed runtime. For running and forking many agents safely and openly, Mitos is built for it.
Mitos vs ModalHow many rollouts can I run at once?
Forks are independent microVMs that share the parent memory copy-on-write, so a fleet of warm rollouts costs about its dirtied pages, not N full VMs. Concurrency scales with your pool and plan.
Is each rollout isolated?
Yes. Every fork is a real Firecracker microVM with its own kernel, not a shared-kernel container, so one rollout cannot observe or affect another.
How do I checkpoint and roll back?
A fork is the checkpoint. Fork a running environment to branch it, keep the run that worked, and drop the rest. No snapshot-to-disk round trip on the hot path.