mrkeyoor.com_
Sat 17 Oct 13:34 UTC
Self-Hostedevaluationupdated 26 Aug 2026

agent-sandbox review

Agent Sandbox adds Kubernetes resources for long-lived, isolated, single-container environments with stable identity and storage. It manages the sandbox lifecycle and warm pools, while a runtime such as gVisor or Kata Containers supplies the low-level isolation.

+63stars / 7d
Verdict

Our Agent Sandbox run built in 136 seconds, but 2 of 28 test groups failed because the end-to-end extension tests could not find /work/repo/bin/KUBECONFIG. Platform teams already committed to Kubernetes should trial it for stable agent workspaces and warm-pool allocation, with gVisor or Kata handling the security boundary. Everyone else is buying a controller, cluster operations, storage policy, and runtime integration to solve a problem a sandbox service may handle more directly.

We ran it

Lab card: what happened when we ran agent-sandboxScreenshot of agent-sandbox (agent-sandbox.sigs.k8s.io)
Install✓ · 86s195 packages
Build✓ · 136s
Tests✗ · 53s26 passed · 2 failed of 28 (go test)
Repo1346 files~138,751 lines of source · 13.5 MB · 6 CI workflows · Dockerfile · tests dir

Answers from our run

Does agent-sandbox build from source?

Dependencies installed in 86 seconds (195 packages), and the build succeeded in 136 seconds. We cloned commit 2fd412d into a clean Debian container with 3 CPUs and no project-specific setup.

Do agent-sandbox's tests pass?

No. The project's own test command finished in 53 seconds and reported 26 passed, 2 failed (go test).

Who should not use agent-sandbox?

Teams without a Kubernetes control plane: the install is a CRD and controller, and useful isolation also depends on a configured RuntimeClass

What are the alternatives to agent-sandbox?

E2B Infrastructure, Daytona, KubeVirt. Our Agent Sandbox run built in 136 seconds, but 2 of 28 test groups failed because the end-to-end extension tests could not find /work/repo/bin/KUBECONFIG.

Setup2/5Build passes; useful deployment needs a cluster, storage, and runtime
Docs4/5Clear scope, install paths, examples, threat model, and warnings
Community5/5Kubernetes SIG project with active August 2026 issues and PRs
Maturity3/5Released controller and SDKs, with a large active change queue

Discussed on

  1. hnAgent Sandbox: A Kubernetes CRD and controller for AI agent runtimes3 points

Who it’s for

Kubernetes platform teams providing persistent execution environments for coding agents
Reinforcement-learning and evaluation systems that need claimable warm sandboxes
Internal developer-platform teams that need one stable pod per user or task
Go or Python developers who want a typed client for the sandbox lifecycle

Who it’s NOT for

Teams without a Kubernetes control plane: the install is a CRD and controller, and useful isolation also depends on a configured RuntimeClass
Buyers expecting the controller itself to contain untrusted code: the README says it delegates kernel and network isolation to runtimes such as gVisor or Kata Containers
Operators who cannot tolerate destructive CRD removal: the uninstall guide warns that deleting the CRDs removes all matching custom resources across namespaces
Teams that require a clean all-in-one test run in a plain container: our run ended with missing /work/repo/bin/KUBECONFIG errors in the extension end-to-end package

Setup reality

Our sandbox installed 195 Go packages in 86 seconds and built the project in 136 seconds. The test run took 53 seconds and failed: 26 passed and 2 failed of 28. The failing log named three warm-pool tests, each stopping because /work/repo/bin/KUBECONFIG did not exist.

A real installation needs a Kubernetes cluster, kubectl, the released CRD and controller manifest, a container image for each Sandbox, persistent storage when state must survive, and a sandbox RuntimeClass such as gVisor or Kata Containers for stronger isolation. Cluster permissions and image-registry access remain operator concerns.

Core and extension resources can be installed together or separately. Warm pools add templates and claims, while uninstalling CRDs can cascade-delete live resources. Our unprivileged Debian run verified compilation and exposed a test-environment assumption; it did not create a cluster or evaluate runtime isolation.

A Sandbox is one durable pod, not a miniature cluster

Agent Sandbox defines a Kubernetes Sandbox resource for a single stateful workload with a stable hostname, network identity, and optional persistent storage. The controller creates and replaces the underlying pod while preserving the higher-level identity. Scheduled deletion, pause, and resume fit coding agents, notebook sessions, small single-instance services, and evaluation workers better than a Deployment designed around interchangeable replicas.

Extensions add SandboxTemplate, SandboxClaim, and SandboxWarmPool. A template describes reusable configuration, a warm pool keeps sandboxes ready, and a claim adopts one for a caller. This is the appealing part for reinforcement-learning or evaluation systems: allocation becomes a Kubernetes API operation rather than bespoke code around pods, services, and volumes. The README still describes one container per Sandbox, so multi-container workspace assumptions need testing.

Isolation comes from RuntimeClass, not the controller

The project calls itself a sandbox orchestrator. It configures pods to use a secure runtime, while gVisor, Kata Containers, or another implementation supplies kernel and network isolation. That boundary matters when the payload is untrusted model-generated code. Installing the CRD alone does not turn the default container runtime into a stronger security boundary.

A production review must therefore cover the selected RuntimeClass, node pools, storage class, network policy, image admission, pod security, and what credentials enter the sandbox. Our checkout had a Dockerfile and 6 CI workflow files, but those repository signals cannot answer whether a cluster blocks host access or lateral traffic. The project's threat model is the correct starting document; the one-command manifest is only the controller install.

What happened when we ran it

Our sandbox at commit 2fd412d installed 195 Go packages in 86 seconds and completed the build in 136 seconds. The checkout held 1,346 files, about 138,751 source lines, and 13.5 MB before dependencies. Those numbers are reasonable for a Kubernetes controller with core resources, extensions, Go and Python clients, a router, examples, Helm work, and generated APIs.

Tests ran for 53 seconds and exited with failure. The supplied summary counted 26 passing and 2 failing groups out of 28. In the log tail, TestWarmPoolRolloutMetadataUpdate, TestWarmPoolSandboxWatcher, and TestWarmPoolPodNameAnnotationBeforeReady each reported that /work/repo/bin/KUBECONFIG did not exist. The extension end-to-end package then failed. The log does not show why that file was absent, so we would not label this a controller defect or wave it away as harmless.

Installation is short; cluster preparation is the work

The recommended manifest combines the core controller and extensions for GitOps tools. Operators pin a release and apply sandbox-with-extensions.yaml; separate core and extension manifests are also available. Verification checks the Sandbox CRD and controller deployment. Go consumers install the root module's client package, while a separate Python client provides higher-level creation and management calls.

Before any of that is useful, the cluster needs nodes that support the chosen sandbox runtime, a RuntimeClass, suitable storage, registry access, and RBAC. Warm pools also consume capacity before claims arrive, so teams need quotas and reclamation rules. Our 3-CPU, 8 GB Debian container built the source but did not stand up Kubernetes, create a Sandbox, attach a volume, or measure allocation latency. The project makes no lab result for those steps available through our run.

Warm pools trade idle capacity for faster claims

A claim can adopt a prepared Sandbox from a pool instead of waiting for every resource to start from zero. That model suits test runners and agents where startup delay interrupts an interactive request. Templates also give platform teams one place to enforce images and resource settings across many consumers. The API shape is cleaner than handing every application permission to manufacture pods directly.

Capacity planning does not disappear. Pool size, image pull behavior, persistent-volume binding, failed Sandbox replacement, and abandoned claims all affect cost and availability. The roadmap discusses deeper hibernation, automatic resume, richer identity, and memory sharing as desired characteristics or exploration areas. Treat those words as direction, not delivered behavior. Buy against the current CRDs and release artifacts.

Uninstall and API changes need operator discipline

The README gives an unusually blunt uninstall warning: deleting the CRDs cascade-deletes their custom resources across namespaces. An operator should inventory Sandboxes, claims, pools, and templates before removing manifests. Backing storage behavior then depends on the cluster's reclaim policies, another reason to rehearse removal outside production.

GitHub showed 206 combined issues and pull requests and a last push on August 26, 2026. Release v0.5.6 arrived on August 20. Active work included Helm chart checks, router changes, suspend and resume design, Python client retry behavior, and runtime-aware CI. This is healthy development under Kubernetes SIG Apps, though the queue and recent release cadence signal that adopters should pin manifests and read upgrade notes.

Kubernetes teams get the clearest payoff

Agent Sandbox is convincing when a platform already speaks CRDs, controllers, RuntimeClass, and persistent volumes. It gives that team a named resource for a workload that otherwise becomes a pile of one-replica primitives, plus claim and warm-pool behavior aimed at agent and evaluation systems. Apache-2.0 licensing and both Go and Python clients reduce integration friction.

The failed 53-second test run keeps this from an unconditional recommendation. Reproduce the suite with the repository's intended cluster prerequisites, then test isolation and cleanup with the runtime you will deploy. If Kubernetes is absent from the current stack, E2B or Daytona offers a shorter conceptual path. If VM boundaries are mandatory, KubeVirt is the more direct comparison.

Alternatives

ProjectWhat it isPick it when
E2B Infrastructure gh↗Self-hostable infrastructure for on-demand cloud sandboxes aimed at AI agents.pick this instead when you want an agent-focused sandbox service and API rather than Kubernetes CRDs in your own platform.
Daytona gh↗A platform for programmatically creating development and agent sandboxes.pick this instead when developer workspace APIs and a packaged control plane matter more than native Kubernetes resources.
KubeVirtA Kubernetes extension for managing virtual machines as cluster resources.pick this instead when each workload needs a VM boundary and VM semantics rather than a singleton container.

What people are saying

  1. [github-trending] kubernetes-sigs/agent-sandbox

Sources

  1. Agent Sandbox README
  2. Agent Sandbox threat model
  3. Agent Sandbox v0.5.6 release
  4. Agent Sandbox roadmap

More self-hosted reviews

playport · edge-smart-doh · Comma · ProsperoEden · zulu · node_exporter · the whole board →