The object model
Start here — SandboxTemplate, SandboxEnv and SandboxPool, how they relate, and which page answers which question.
Agent Sandbox is four objects and the chain between them. The console, abx
and the E2B SDK are three ways of driving that same chain.
| Object | What it decides | Who creates it | In the console |
|---|---|---|---|
| SandboxTemplate | the Pod shape, the idle image, default timeouts, an environment's own documentation | platform admin | Sandbox Templates |
| SandboxEnv | which runtime, the timeouts, egress, the rollout policy | you | Sandbox Envs |
| SandboxPool | how much warm capacity of one resource shape there is | you | the env's Pools tab |
| Pod → sandbox | one running sandbox, handed to one claim | the platform | Sandboxes |
The same word means different things
Agent Sandbox runs on Kubernetes and serves the E2B API, so the two vocabularies meet in one place — and one word is genuinely misleading:
| You say | E2B SDK | Agent Sandbox |
|---|---|---|
| template | a snapshot built from a Dockerfile | a container image you bring, plus the platform's SandboxTemplate that says how to run it — nothing is built |
the first argument of Sandbox.create() | the template | the env |
| pool | — | a SandboxPool: warm Pods, which E2B has no equivalent of |
| sandbox | Sandbox | a claimed Pod |
Read the first two rows together: in the E2B SDK the argument is called
template, and on Agent Sandbox the value you put there is an env name. A
template is what an env is made from, not what you create sandboxes with —
Sandbox templates is about that difference, and
about why there is no build step and no snapshot format here.
Two facts the design follows from
A sandbox is claimed, not created. Pools hold Pods that already exist, so serving a request is a swap rather than a build — which is where the sub-second start comes from, and what in-place update is about.
Capacity is per cluster; identity is per name. Quota, pools and images belong to one cluster, and an env with the same name in two clusters is one env the platform may dispatch to: cross-cluster.
Which page answers which question
| Question | Page |
|---|---|
| What is a SandboxTemplate, and how does it differ from an E2B template? | templates |
| What can I configure on an environment? | envs |
| How many sandboxes can run at once, and what does one cost? | pools |
| Why is my pool not scaling, or scaling too far? | autoscaling |
| Why is a claim fast, and what happens to the Pod afterwards? | in-place update |
| How do I run the same workload on another cluster? | cross-cluster |
| How do I cut a sandbox off the network, or give it a credential it cannot read? | egress and secrets |
| What vocabulary does my agent have for all of this? | skills |
Driving it
abx clusters # every cluster this address reaches
abx envs --cluster YOUR_CLUSTER # the envs on one of them
abx envs YOUR_ENV --cluster YOUR_CLUSTER # one env: its template, pools, sizing ruleEverything the console shows for these objects is readable from abx, and
almost all of it is writable from abx too. The
CLI guide covers the setup; the
E2B SDK guide covers the sandbox side.