60ms 启动、5MB 开销、硬件级隔离:腾讯开源的 CubeSandbox 凭什么成为 AI Agent 沙箱新标配

当 AI Agent 开始替你写代码,一个老问题就变得尖锐了:代码在一个没有防护的环境里跑,谁来兜底?

Docker 的 Namespace 隔离本质上是共享内核的软隔离,一旦 LLM 生成的代码里有内核漏洞利用,容器逃逸就是分分钟的事。传统虚拟机倒是安全,但启动一次要好几秒,AI Agent 那种”写完马上跑”的节奏根本兜不住。

腾讯云的答案叫 CubeSandbox——一个基于 RustVMM + KVM 的开源 AI Agent 沙箱,60ms 冷启动、5MB 内存开销、硬件级隔离,同时兼容 E2B SDK。替换一个环境变量,现有 E2B Agent 代码就能直接跑在自托管环境里,无需任何业务代码改动。


它到底解决了什么问题

AI Agent 执行 LLM 生成的代码,面临的威胁模型和传统软件完全不同:代码是模型实时生成的、未经任何人审核、可以受到输入内容的诱导。这种”不可信代码执行”场景,Docker 的共享内核模式本质上是不及格的。

CubeSandbox 的思路是:每个沙箱一个独立 Guest OS 内核,通过 KVM 硬件虚拟化实现物理级隔离。即使沙箱内的代码利用了内核漏洞,崩溃的也只是沙箱自己的 Guest 内核,宿主机毫发无损。

配合 eBPF 内核态虚拟交换机 CubeVS,还能做到沙箱间的网络隔离和细粒度出站流量过滤——一个沙箱出了事,不会横向渗透到其他沙箱,也不会顺着网络拿到宿主机上的密钥。


核心数字:实测表现

根据项目公开的性能基准测试(裸金属环境):

指标 CubeSandbox Docker 容器 nsjail gVisor
启动时间 2–45ms 800ms–2.3s 1–5ms 100–500ms
内存开销/实例 ~1.2MB ~25MB ~0.5MB ~15MB
并发能力 81 req/s 23 req/s 120 req/s 35 req/s
隔离级别 硬件级(KVM) 系统调用过滤 系统调用过滤 内核级隔离
网络隔离 完整支持 部分支持 不支持 完整支持
Go SDK ✅ ❌ ❌ ❌

单并发冷启动 60ms,50 并发平均 67ms(P95 90ms,P99 137ms),稳定在百毫秒级。内存开销低于 5MB,意味着在一台 96vCPU 物理机上可以跑 2000+ 并发沙箱实例。


技术架构:六层各司其职

CubeSandbox 不是一个大一统的进程,而是一套组件各司其职的分层架构:

  • CubeAPI(Rust):高并发 REST API 网关,完全兼容 E2B SDK 接口。替换 E2B_API_URL 环境变量,现有 E2B Agent 代码零改动迁移。
  • CubeMaster:集群调度器,接收 API 请求并分发到对应 Cubelet 节点,管理整个集群的资源状态。
  • CubeProxy:反向代理,解析请求中的沙箱标识并路由到正确实例。
  • Cubelet:节点本地调度组件,管理单节点所有沙箱实例的完整生命周期。
  • CubeVS:基于 eBPF 的内核态虚拟交换机,实现沙箱间网络隔离和出站流量过滤。
  • CubeHypervisor + CubeShim:基于 Cloud Hypervisor 定制的 KVM MicroVM 管理,CubeShim 实现 containerd Shim v2 接口,让沙箱可以像普通容器一样被 Kubernetes 管理。

60ms 冷启动的秘密在于两个关键技术:资源池预分配(提前维护好初始化好的 MicroVM 实例池,请求到达时 O(1) 查表取出)和 快照克隆(基于 Copy-on-Write 的快照克隆,只复制元数据,内存页首次写入时才真正拷贝,大部分内存页都是共享的)。


v0.6.0:走向生产环境

项目最近一次大版本更新(v0.6.0,2026-07-24,92 commits 来自 31 位贡献者)带来了几个关键的生产级能力:

Kubernetes 部署:通过 Helm Chart 可以直接将控制面和计算节点部署到 TKE / 标准 K8s / k3s 集群,支持滚动升级和金丝雀发布。这意味着已经有 K8s 基础设施的团队可以直接融入现有运维体系。

E2B 兼容 Volume 框架:引入了兼容 E2B 标准的 Volume 插件框架,提供 Create / Destroy / Attach / Detach 四个生命周期钩子,支持 Binary 和 RPC 两种插件形态。自定义存储后端可以即插即用。

沙箱内服务的 Host header 配置:新增 network.maskRequestHost 参数,可以自定义转发到沙箱内服务的 Host 值,解决了依赖 Host 做路由或验证的应用程序的兼容性问题。

之前的 v0.5.0 还加入了 AutoPause / AutoResume(空闲沙箱自动挂起,下一次请求时自动唤醒,节省成本)、Terraform 一键集群部署和 ARM64 原生支持。v0.4.0 带来了凭据保险库(Credential Vault)——Agent 通过安全代理调用外部 API,密钥从不进入沙箱,也不出现在模型上下文或日志里。


谁适合用,谁不适合

适合的场景:

  • AI Agent 代码执行引擎:最合适的场景,秒级启动满足 LLM 交互需求,现有 E2B 代码零成本迁移
  • 在线代码评测系统:比 Docker 轻量,比 nsjail 易用,有完整的网络隔离
  • 强化学习训练(如 SWE-Bench):快照/克隆/回滚让 Agent 可以在关键节点存档、出错退回、并行探索
  • 多租户代码执行:硬件级隔离,每个租户的代码运行在独立内核上
  • 合规敏感环境:私有化部署,数据不出企业边界,Apache 2.0 协议无供应商锁定

不适合的场景:

  • 需要完整网络隔离的生产环境(目前网络隔离功能在测评中被评为 7/10,仍在完善中)
  • 多语言运行时环境(需要自己维护运行时,非开箱即用)
  • 没有 KVM 环境的 Windows/macOS 开发者(需要 Linux VM 或 WSL2 + 嵌套虚拟化)
  • 对安全有极致要求的场景(相比经过多年实战打磨的 gVisor,项目还比较新,社区响应速度有待观察)

门槛说明: 官方推荐部署在开启了 KVM 的 x86_64 Linux 物理机或云上裸金属服务器。腾讯云也提供了 PVM(半虚拟化)路径,普通云虚拟机也可以跑,无需 bare metal。但如果团队没有 Linux 运维和 KVM 经验,自托管的运维成本需要提前评估。


可执行的下一步

  1. 本地快速验证:一行命令部署体验版 curl -sL https://github.com/Tencentcloud/CubeSandbox/raw/master/deploy/one-click/online-install.sh | bash,然后用官方预构建镜像创建模板,跑一个 e2b-code-interpreter 的例子感受 60ms 启动的体验
  2. 已有 E2B 项目迁移:只需改 E2B_API_URL 环境变量指向你的 CubeSandbox 实例,Python / JS / Go SDK 代码无需任何改动
  3. 生产级部署:参考 v0.6.0 的 Kubernetes Helm Chart 部署文档,将控制面和计算节点纳入已有的 K8s 集群管理体系
  4. 关注 Roadmap:快照跨节点复制(cross-node snapshots)和事件级快照回滚已在路线图上,对 RL 训练场景尤为重要

链接汇总:

评论区

0 条评论

登录后可评论。

器匠·开发者工具 1919 阅读