Augments LabsAugments ADK

Sandbox Clients (Backends)

A BaseSandboxClient[ClientOptionsT] builds a BaseSandboxSession per run; the session is the live handle the Runner brackets the agent loop with.

Built-in backends

BackendClassExtraBest for
Local subprocessLocalSubprocessSandboxClient(none)Dev / CI; no isolation, banner WARN logged
Docker containerDockerSandboxClient[sandbox-docker]Local container isolation, resource limits, network_mode
Kubernetes podK8sPodSandboxClient[sandbox-k8s]Cluster-scale isolation, NetworkPolicy CR, restricted PSS
Hosted REST bridgeRemoteVMSandboxClient + 7 concrete bridges[sandbox-remote-vm] + per-providerE2B, Vercel, Modal, Daytona, Cloudflare, Blaxel, Runloop

Hosted bridges

Each hosted bridge is ~140 LoC and shares the RemoteVMSandboxClient intermediate base for HTTP retry / error mapping / RemoteVMSandboxSession wire-up. Bridges expose REST-only paths by default; users wanting a provider's official Python SDK can subclass and override create() / resume().

ProviderClassExtraCreate endpoint
E2BE2bSandboxClient[sandbox-e2b]POST /sandboxes
VercelVercelSandboxClient[sandbox-vercel]POST /v1/sandboxes
ModalModalSandboxClient[sandbox-modal]POST /v1/sandboxes
DaytonaDaytonaSandboxClient[sandbox-daytona]POST /sandboxes
CloudflareCloudflareSandboxClient[sandbox-cloudflare]POST /sandboxes
BlaxelBlaxelSandboxClient[sandbox-blaxel]POST /sandboxes
RunloopRunloopSandboxClient[sandbox-runloop]POST /v1/devboxes

Session surface

BaseSandboxSession covers:

  • Lifecycle: start, stop, shutdown, aclose, plus async with session: ... ctx-manager support.
  • Run-a-command primitive: async run(*command, timeout, shell, user) -> ExecResult.
  • PTY family: pty_start, pty_write_stdin, pty_terminate_all (Docker drives exec_run(socket=True, tty=True); K8s drives kubernetes.stream(..., tty=True)).
  • File ops: read, write, ls, rm, mkdir, extract.
  • Workspace: persist_workspace, hydrate_workspace, apply_manifest, apply_patch.
  • Network: resolve_exposed_port(port) -> ExposedPortEndpoint.
  • Capability flags: supports_docker_volume_mounts, supports_pty.

See examples/sandbox/docker_shell_agent.py, k8s_pod_agent.py, e2b_hosted_agent.py for end-to-end runs.