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 Modal
Pay as you go
How 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.

Start free