The Ultimate AI Agent Sandboxes Comparison 2026

We compare every agent sandbox so you don't have to. Nirvana, E2B, Modal, Vercel, Daytona & 8 more compared on persistence, speed, and isolation.

The Ultimate AI Agent Sandboxes Comparison 2026

TL;DR

  • Every sandbox provider now says "persistent". Underneath there are four different mechanisms: snapshot pipelines, object-storage mounts, tiered filesystems, and live volumes. Nirvana and Northflank are the live-volume camp, and Nirvana is the only provider that documents the disk underneath: /workspace sits on a dedicated Accelerated Block Storage volume, 20,000 sustained IOPS, no snapshot step, no restore step, no expiry window.
  • Snapshots can charge a toll on the way in (E2B documents ~4s/GiB, Blaxel ~15s to standby) and often expire (7-30 day TTLs). Eight of thirteen providers don't publish pause times at all. Nirvana's pause has nothing to copy, so there is no toll.
  • On isolation, the microVM camp has the strongest per-sandbox walls. Nirvana layers container walls, VM-isolated nodes, and the thing nobody else does by default: a dedicated cluster for every customer, SOC 2 Type II audited.
  • New recipe: if resume is cheap, run persistent sandboxes even for disposable jobs. Boot once on Nirvana, pause, and every job after starts with a resume instead of a boot. The exception is fan-out; forking copies is snapshot territory.
  • Every cell below comes from vendor docs, checked August 2026. If your docs changed, tell us and we'll fix it.

Comparing Nirvana, E2B, Daytona, Modal, Vercel, Blaxel, Cloudflare, Northflank, Fly.io, Beam, Railway, AWS, and Google on persistence, pause/resume speed, isolation, and what actually survives. Every claim sourced from vendor docs, August 2026.


If you're deploying AI agents, you've probably noticed that every sandbox provider is making the same promises with slightly different words: secure, instant, stateful, isolated. (Ours says fast and isolated.) And lately, one word keeps landing on every spec sheet regardless of dictionary: persistent.

We wanted to know what those words actually mean on each platform, so we read every sandbox provider's docs so you don't have to. Thirteen of them: E2B, Daytona, Modal, Vercel, Blaxel, Cloudflare, Northflank, Fly.io, Beam, Railway, AWS, Google, and our own. I went to each company's docs section and copied and pasted, page by page. Let's hope they all update their docs frequently.

A few things first before we dive in:

  1. There's ephemeral vs persistent. Ephemeral sandboxes are wiped when they stop: one clean environment per job, nothing left behind. Persistent ones keep their state, so an agent can pick up exactly where it left off.
  2. Speed is three numbers, not one. Boot (creating a fresh sandbox), resume (waking a persistent one), and pause (putting it to sleep). For persistent sandboxes, pause and resume matter more than boot, because you only boot once.
  3. Isolation comes in two flavors. By VM: imagine every sandbox getting its own brand-new computer with its own kernel. Most isolated. Or by container: sandboxes share the machine's kernel. Faster, thinner walls. And one more question on top of both: whose cluster are you on?

Ok, now you understand how to read these. Let's dive in. Where a number appears only on a marketing page and not in the docs, we've marked it. If we got something wrong about your platform, tell us and we'll fix it: every claim traces to the vendor's own documentation.

One trend is unmistakable before we even start: persistence went from a feature to the default in under twelve months. Vercel now snapshots every sandbox unless you opt out, E2B keeps paused sandboxes indefinitely, and the Kubernetes agent-sandbox project wrote "stateful" into the spec itself.

1. The whole market at a glance

Every provider, every axis, one table. The rest of the article is the zoom-in.

ProviderBootPause → resumePersistenceIsolation
Nirvana~2.5s eph / 6-7s persInstant → instant ᵈ (API operations)Live block volume, no expiryContainer + VM node + dedicated cluster per customer
E2B~80ms ˢ4s/GiB → ~1sFS + RAM snapshot, kept foreverFirecracker microVM
Daytona~90ms ˢVM pause freezes FS+RAM ᵈ; timings —FS on stop; VM hot snapshots; S3 volumesContainer (Kata opt.) or Linux VM
Modal~1s ᵈ— → secondsFS snapshots, 30d TTL + volumesgVisor; VM beta
Vercelms-class ᵈ— → <1s p75Auto-snapshot on stop, default onFirecracker microVM
Blaxelresume-firstauto-standby after ~15s idle → <25msStandby snapshot incl. processesMicroVM
Cloudflarehundreds of ms ᵇnone; sleep wipesR2/S3 mounts; R2 backups (3d restore TTL)Container in own VM
Northflank<1s ᵈscale-to-zero → scale-up + rollout ᵈ; timings —Attached volumesMicroVM or gVisor
Fly Spritespersistent-firstauto-idle ~30s → 0.1-0.5s warm / 1-2s coldPersistent ext4 FS (NVMe cache, object-backed); checkpointsFly Machines VM
Beam1-3s ᵈFS snapshots + volumesgVisor + runc container
Railwaynone; idle destroysNamed disk checkpointsIsolated VM
AWS Lambda MicroVMsnear-instantauto → near-instantRAM + disk snapshot; 8h capFirecracker microVM
Google GKE Agent Sandboxsub-second warm pool ᵈpause/resume primitivePod snapshots to your bucket; no default expirygVisor, your GKE cluster

Legend: — not published · ᵈ their docs · ˢ their site · ᵇ their blog. All cells as of August 2026.

Now the zoom-ins, starting with the word doing the most work in this market.

2. Persistence, the deep dive: what it means and what survives

The word is the same everywhere. The mechanism is not. And here's the part that surprised us: most sandbox persistence isn't backed by continuously attached block storage. It's snapshots being copied around, and where standing storage does appear, it's usually generic S3-compatible object storage. Four designs in the market:

A live disk. The sandbox's workspace is a block-storage volume that stays provisioned while the compute is gone, ready to reattach on resume. Nothing is copied out on pause; nothing is restored on resume; the volume carries no expiry window. This is how Nirvana Agent Sandboxes work: /workspace lives on a dedicated Accelerated Block Storage volume with 20,000 sustained IOPS included. Northflank's attached volumes belong to this family too: the volume stays with the service across scale-to-zero and remounts on scale-up. Two differences, from their docs: resume is a redeploy rather than a resume call, and neither the backing store nor its performance is published. Ours is in the docs: ABS, 20,000 sustained IOPS.

A snapshot pipeline. State is copied out when the sandbox stops and copied back when it resumes. E2B (filesystem + memory via Firecracker snapshots), Vercel (automatic filesystem snapshot on stop, on by default), Modal (filesystem snapshots that become images), and Blaxel (full standby snapshots including running processes) all work this way. The trade: snapshots take time to write, and several expire: Modal's filesystem snapshots default to a 30-day TTL, Vercel's default to 30 days from last use (both configurable), and Modal's memory snapshots hard-expire in 7 days. Railway pushes the snapshot idea furthest: its checkpoints are named disk snapshots you boot fresh sandboxes from, and there is no pause at all; idle sandboxes get destroyed.

An object-storage mount. Durable data lives in S3-style storage mounted into the sandbox. Daytona's volumes are S3-backed FUSE mounts. Their own docs note that volumes "can not be used for applications that require block storage access" and are "generally slower for both read and write operations" than the local filesystem. Cloudflare's persistence path is R2/S3 bucket mounts plus R2-backed directory backups (copy-on-write restore; restores expire after a 3-day default TTL, extendable); their lifecycle docs are admirably blunt about the local disk: "All previous state is lost and the environment resets to its initial state... Design for ephemeral state."

A tiered filesystem. Fly.io's Sprites keep a persistent ext4 filesystem on local NVMe, backed by object storage. Filesystem persists; RAM doesn't; sprites auto-hibernate after ~30 seconds idle, and wakes take ~100-500ms warm and 1-2s cold, per their docs.

So which design is better for persistent agents? One distinction explains most of it: snapshot vs live volume. A snapshot is a copy of your disk, taken at pause and restored at resume; a live volume is the disk, still there while the compute is gone. The copy approach buys you cloning and (for some vendors) frozen memory. The live disk buys you three things: nothing to write out (no pause toll), nothing to restore (no restore step to go wrong), and nothing to expire (our volumes carry no TTL; snapshots often do). It also behaves like a real disk, so database-style and write-heavy workloads run the way they would on a local volume, which object-storage mounts explicitly can't promise.

ProviderFilesystemMemory/processesExpiry / caps
NirvanaSurvives (live volume)No; processes restart on resumeNone
E2BSurvivesYes (optional FS-only mode)Paused sandboxes kept indefinitely; continuous runtime capped at 24h (Pro) / 1h (Hobby)
VercelSurvives (snapshot)NoSnapshots default to 30-day expiry from last use, configurable incl. indefinite; session caps 45min (Hobby) / 24h (Pro, Enterprise)
ModalSurvives (snapshot)Alpha only; taking a memory snapshot terminates the sandboxFS snapshots 30-day default TTL (configurable); memory snapshots 7 days, hard
BlaxelSurvivesYes, including processesStandby TTLs on starter tiers; external network connections don't survive
DaytonaSurvives on stopContainers: no. Linux VM sandboxes: hot snapshots can preserve memory ᵈLifecycle policies (auto-stop/auto-archive intervals)
Fly SpritesSurvivesWarm wake: yes, processes resume where they were. Cold: memory dropped ᵈNone published
NorthflankSurvives (attached volume)NoNone published
CloudflareDoes not survive sleepNo10-minute default idle; bucket mounts + R2 backups (3d default restore TTL)
AWS Lambda MicroVMsSurvives (RAM + disk snapshot on suspend)Yes8h max session
Google GKE Agent SandboxSurvives pauseYes: Pod snapshots keep execution state ᵈSnapshots live in your bucket until deleted; optional last-access timeout
BeamSurvives via filesystem snapshotsYes: memory snapshots restore into new sandboxes (their SDK docs)Sessions run indefinitely or auto-shutdown on TTL
RailwaySurvives only via checkpoint (named disk snapshot)No: "files are preserved, running processes are not"Idle timeout destroys sandboxes (5-120 min by plan); checkpoints capped by plan

Honest note on the memory column: Blaxel and E2B genuinely preserve running processes across pause, and we don't: our agents restart and find their files exactly where they left them. For checkpoint-and-continue agent patterns, files are usually what matters; for frozen-mid-computation patterns, the snapshot vendors have a real capability we don't.

And one more honest note: on cold creation speed we're mid-pack (~2.5s ephemeral, 6-7s persistent first boot). Several providers create sandboxes faster. Our bet is that agents that carry state boot once and live in the pause/resume loop, where both of our directions are instant.

3. The table nobody publishes: pause times

Every provider advertises resume speed. Almost nobody documents what pausing costs, and pause is where checkpoint economics live, because a slow pause means paying for compute while the snapshot writes.

ProviderPause (going in)Resume (coming out)Source
NirvanaInstant (pod released; no snapshot to write)Instant operation; ready-to-run latency not separately publishedOur docs
E2B~4s per GiB of RAM~1sTheir persistence docs
BlaxelNo explicit pause: auto-standby ~15s after inactivity, full-state snapshot included<25msTheir lifecycle docs
Fly SpritesAutomatic: warm suspend keeps processes, going cold drops memory; explicit checkpoints take 10-30s and stop processes100-500ms warm (state intact) / 1-2s cold (fresh boot)Their docs
VercelNot published (snapshot-on-stop, size-dependent)Sub-1s p75, 5s p95Their engineering blog
ModalNot published (their snapshot API's default timeout is 55s, which bounds it but doesn't measure it)Seconds (new sandbox from snapshot)Their SDK reference
DaytonaVM pause freezes the machine, filesystem and memory kept; timings not publishedNot publishedTheir sandbox docs
NorthflankScale-to-zero; timings not publishedScale-up + deployment rollout; timings not publishedTheir sandbox docs
CloudflareNo pause: sleep discards stateFresh container (empty state)Their lifecycle docs
AWS Lambda MicroVMsNot published (auto-suspend)Near-instantLaunch announcement
Google GKE Agent SandboxNot published (pause/resume primitive)Warm-pool allocation sub-second; snapshot restore "a few seconds"Their docs and launch blog
BeamNot publishedCold boot 1-3s; snapshot restoreTheir docs
RailwayNo pause: idle timeout destroys the sandbox (30 min default); persistence = named checkpoints, capture time size-dependentBoot fresh from checkpoint (time not published)Their docs (beta)

Two patterns worth noticing. First, snapshot persistence does its work on the way in: E2B's pause scales with RAM (a 16 GiB sandbox takes about a minute), and Blaxel's 25ms resume works because the full snapshot was already taken during a ~15-second standby transition after inactivity. Second, eight of thirteen providers don't publish the pause side at all. And a detail from Railway's docs worth knowing: idle sandboxes keep billing until the idle timeout destroys them.

Our pause has no toll in either direction for a boring reason: there is nothing to copy. The workspace is already on the disk.

4. Who's a VM, who's a container (and whose cluster are you on?)

Remember the primer: a VM per sandbox means every sandbox gets its own kernel; a container means sandboxes share the machine's kernel with thinner, faster walls. Here's who's who, from their own docs:

ProviderPer-sandbox isolationTenancy
NirvanaHardened, unprivileged container, inside a VM at every nodeDedicated cluster per customer: you never share a kernel or a cluster with another company
E2BFirecracker microVMMulti-tenant, or BYOC in your AWS/GCP VPC (enterprise)
VercelFirecracker microVM, dedicated kernelMulti-tenant
BlaxelMicroVMMulti-tenant
Fly SpritesHardware-isolated VM (Fly Machines)Multi-tenant
AWS Lambda MicroVMsFirecracker microVMMulti-tenant (AWS account boundary)
RailwayIsolated virtual machineMulti-tenant
NorthflankMicroVM (Kata/Firecracker) or gVisorMulti-tenant, or your own VPC (BYOC)
CloudflareContainer, each in its own VMMulti-tenant
ModalContainer (gVisor); VM sandboxes in betaMulti-tenant
DaytonaContainer (Kata optional), or Linux VM sandboxesMulti-tenant, or dedicated region (managed, via sales)
BeamContainer (gVisor + runc)Multi-tenant, or your own cloud
Google GKE Agent SandboxgVisorYour own GKE cluster

Honest reading: the Firecracker camp has the strongest per-sandbox walls, a kernel per sandbox, and we won't pretend otherwise. Our answer works at a different layer: container walls around each sandbox, VM walls around each node, and then the column nobody else fills by default: a dedicated cluster for every customer. Elsewhere, dedicated infrastructure is the enterprise arrangement (E2B's BYOC, Daytona's dedicated regions); here it's just how every account works.

And the checklist questions the comparison posts always ask, answered from the same docs. Where a capability doesn't appear in a provider's sandbox documentation, we say "not in their docs" instead of guessing:

Table 5: The checklist questions

ProviderGPUs in the sandboxBYOCPart of a bigger platform?
NirvanaCPU environments todayNo, by design: a dedicated cluster on our cloud insteadYes: same cloud as our instances, block storage, and managed Kubernetes
E2BNot in their sandbox docsYes: BYOC in your AWS or GCP VPC (enterprise)Sandbox-first
DaytonaYes (GPU pricing published: H100, H200, RTX classes)Dedicated regions (managed) and customer-managed runnersSandbox-first
ModalYes, though not with memory snapshots enabledNo, managed onlyYes: functions, inference, batch
VercelNot in their sandbox docsNo, managed onlyYes: frontend cloud
BlaxelNot in their docsNo, managed onlySandbox-first, plus agent networking and a model gateway
CloudflareNot in their sandbox docsNo, managed onlyYes: Workers platform
NorthflankYes, self-serve GPU plansYes, self-serve across major clouds and on-premYes: full workload runtime
Fly SpritesNot on SpritesNo, managed onlyYes: Fly.io platform
BeamYesYes: open-source runtime, run it in your own cloudYes: serverless platform
RailwayNot in their sandbox docsNo, managed onlyYes: full PaaS
AWS Lambda MicroVMsNo (Lambda)It is your AWS accountYes, obviously
Google GKE Agent SandboxVia GKE node poolsIt runs in your GKE clusterYes, obviously

Two notes on that table. On BYOC: people usually want it for isolation and compliance. We deliberately went the other way: every customer gets a dedicated cluster on our cloud, which covers the isolation outcome BYOC buyers are after, without operating the infrastructure yourself. (To be fair to BYOC: it also buys your own cloud account, IAM, network governance, and data residency, which a managed dedicated cluster doesn't.) And on the platform column: notice almost everyone answers yes. "Full platform" isn't the differentiator the listicles claim; the real differences live in the three tables above.

5. Compliance, quickly

SOC 2 is table stakes at the top of this market: Nirvana (Type II), E2B (Type II + HIPAA, per their trust center), Vercel (Type II, stated in their sandbox docs), Modal, Blaxel, Northflank, Fly.io, Cloudflare, and AWS all hold audits. Daytona's trust center shows a confirmed Type 1 audit opinion. What nobody else offers as the default: a dedicated cluster for every customer, not an enterprise add-on. Your sandboxes never share a kernel or a cluster with another company. The audit speaks to the controls; the dedicated cluster means there is less shared surface for those controls to defend.

6. The recipe: persistent, even for disposable jobs

If resume is instant, there's a new way of using persistent sandboxes, and we recommend trying it if it fits your use case: run them even for disposable jobs. Boot once, pause, and every job after starts with a resume instead of a boot.

Because the speed is already there, the main consideration is cost, and it's small: you pay for storage while paused, not compute, plus a workspace wipe between runs. (The wipe is real work: reusing a sandbox means cleaning state and secrets between jobs, and one workspace serves one job at a time.) The one exception is fan-out. Resume is one-to-one, one sandbox wakes into one workspace, while snapshot systems can fork one image into many copies. So parallel bursts still want ephemeral creates.

The takeaway

"Persistent" now appears on every spec sheet in this market because companies are building persistent agents, and persistent agents need persistent sandboxes.

Under this AI boom, the bottom line is what the compute actually costs you. Apart from dollars, there's speed (the pause toll you pay on every checkpoint), expiry (snapshots that age out from under your agents), and trust (whose kernel your workloads share).

We built ours as a disk that's just still there, because that's the version with the fewest costs attached: no pause toll, no restore step, no expiry to babysit. If your agents checkpoint and continue, that difference compounds on every single cycle.

Get in touch if you want to build faster and cheaper AI agents, or read the documentation for API examples.


Vendor-reported figures from official documentation and engineering posts; definitions and percentiles differ between vendors, so treat cross-vendor comparisons as directional. First verified July 10, 2026; re-checked August 13, 2026. Platforms move fast; if your docs have changed or we've mischaracterized something, email us and we'll correct it with a changelog note.


About Nirvana Labs

Nirvana Labs is a high-performance storage cloud purpose built for blockchain, AI and databases i.e. the most demanding, real-time, stateful workloads. Accelerated Block Storage (ABS) offers 20K baseline IOPS included, no over provisioning. Nirvana Kubernetes Service (NKS) with Karpenter auto-scaling, high clock-speed compute and private networking. Backed by Jump Trading, Crucible, etc with 50+ customers live in production today.

Learn more at Nirvana Labs

Nirvana Cloud | Pricing | Blog | Docs | Changelog | LinkedIn |Twitter | Telegram| YouTube