Sandbox/SandboxClaim/SandboxTemplate/SandboxWarmPool CRD 的生命周期、claim、TTL、pause/resume 和 warm pool 设计很值得借鉴,也可直接结合 Kata RuntimeClass;但它要求 Kubernetes,会重新引入维护第二集群的问题,因此当前只作为协议与状态机参考。
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
背景
AI agent sandbox 与一次性 CI runner 具有相同的核心生命周期:接收任务、创建隔离执行环境、注入短期能力、运行不可信代码、流式状态与日志、超时/取消、最终销毁。应优先复用成熟 sandbox provider,而不是自行实现 microVM 管理器。
本 ticket 与 #20 配合:#20 验证底层 standalone containerd + Kata;本 ticket 验证是否存在可直接提供更高层生命周期 API 的 agent sandbox。
第一优先级:Docker Sandboxes (
sbx)Docker Sandboxes 在 Linux/KVM 上为每个 sandbox 创建独立 microVM、filesystem、network 和 Docker daemon。其
-dockertemplate 将/var/lib/docker放在独立 sparse block volume 上,避开 virtiofs 作为 overlayfs upper 的问题,与我们的 Docker + kind 场景高度吻合。验证内容:
/dev/kvm透传后能否安装并启动sbxshellkit/template 创建无 host workspace mount 的 sandboxkind create clustersmoke testcreate/exec/stop/rm/prune的退出码、幂等性、超时和孤儿回收风险:产品处于 Early Access,安装需要 Docker 登录,公开集成面当前主要是 CLI;不能在未确认自动化与许可边界前作为长期核心依赖。
第二优先级:OpenSandbox + Kata
OpenSandbox 提供开源的 OpenAPI lifecycle contract 和 SDK,支持异步 create、get/list/delete、pause/resume、TTL、重启后 timer 恢复、诊断、资源限制及内部 execd。Docker backend 可以配置 Kata OCI runtime,因此可能形成:
验证内容:
/var/lib/docker,确保 overlay2/kind 可用参考但暂不部署
kubernetes-sigs/agent-sandbox
Sandbox/SandboxClaim/SandboxTemplate/SandboxWarmPool CRD 的生命周期、claim、TTL、pause/resume 和 warm pool 设计很值得借鉴,也可直接结合 Kata RuntimeClass;但它要求 Kubernetes,会重新引入维护第二集群的问题,因此当前只作为协议与状态机参考。
E2B runtime
E2B 是完整开源 Firecracker sandbox 平台,提供快照恢复、lazy memory、COW rootfs、API/data-plane 分离与节点 orchestrator,架构高度匹配。但自托管栈包含 Nomad、Postgres/Redis、对象存储以及更多控制面组件,对当前单 runner host 明显过重。
OpenSandbox 标准
即使最终不部署 OpenSandbox server,其 lifecycle OpenAPI、状态机、TTL/renew、runtime provider interface 和 diagnostics contract 也可作为我们内部 provider API 的参考,避免自行发明语义。
排除项
验收标准
Docker overlay2 + kind实机 smoke testsbx是否有可依赖的 headless/API/许可路径更正:Agent Sandbox 不是可选的 microVM provider
kubernetes-sigs/agent-sandbox源自 Google Cloud/GKE 的 Agent Sandbox 模型;GCP 托管路径的明确隔离 backend 是 GKE Sandbox(gVisor)。它本身是 Kubernetes 上的 Sandbox CRD/controller,不实现 VMM、容器 runtime 或独立计算 backend。当前 OSS 仓库确实允许在 PodTemplate 中设置任意
RuntimeClass,并新增了 Kata/minikube、Kata on GKE 和 Firecracker VMM 示例;但这属于“把已安装好的 Kata runtime 接到 Pod 上”的可配置集成,不应表述为 Agent Sandbox 自己提供或管理 Kata backend,更不能把它当成 standalone microVM provider。对本项目的结论:
本 ticket 的可执行候选保持为 Docker Sandboxes、OpenSandbox + Kata,以及 #20 的 standalone containerd + Kata。
许可证核查:Docker Sandboxes 不适合作为长期核心 provider
docker/sbx-releases的 LICENSE 仅声明Copyright © 2026 Docker Inc. All rights reserved,仓库明确标注 Proprietary。它不是 Apache-2.0/MIT 等开放源码组件,release 仓库主要发布二进制、issue 和安装信息。Docker 当前 FAQ 声明:
sbxCLI 可免费用于商业和专业工作、无 per-seat fee;目前只有组织治理(集中网络/文件系统/MCP policy、sign-in enforcement、audit log)需要额外付费。但这属于 Docker 当前产品 entitlement 和服务条款,不是不可撤回的开源授权:因此调整优先级:
sbx可以作为短期技术验证与行为参考,尤其验证独立/var/lib/dockerblock volume 对 kind 的效果sbxPoC,不应让 workflow、消息协议或镜像格式依赖其私有 CLI/kit 语义