腾讯云开源 CubeSandbox:60ms 冷启动的 AI Agent 沙箱,兼容 E2B SDK
Agent 执行代码,跑在哪
AI Agent 现在能写代码、跑脚本、操作浏览器。随之而来的问题是:Agent 执行的代码,你敢直接跑吗?
让 Agent 分析数据,它要跑 Python;让它帮你调试,它要执行 shell 命令;做强化学习训练,它要在沙箱里跑各种测试。这些代码可能是 Agent 自己生成的,可能是用户提交的,也可能是第三方插件,无法保证安全。
那跑在哪里?
容器:共享内核,隔离不够。Agent 突破了容器就能影响宿主机。
虚拟机:安全够了,但启动太慢,几秒甚至几十秒。要同时跑 1000 个 Agent,资源扛不住。
腾讯云开源了 CubeSandbox——基于 RustVMM 和 KVM 的安全沙箱,60ms 冷启动,不到 5MB 内存开销,兼容 E2B SDK,已进入 CNCF Landscape。
CubeSandbox 是什么
| 项目 | 信息 |
|---|---|
| GitHub | TencentCloud/CubeSandbox |
| 语言 | Rust + Go |
| 协议 | Apache 2.0 |
| 定位 | AI Agent 安全沙箱服务 |
| 社区 | CNCF Landscape 收录 |
它是为 AI Agent 设计的高性能安全沙箱,核心特性:
- 60ms 冷启动:比容器还快
- <5MB 内存开销:一台服务器能跑几千个沙箱
- 硬件级隔离:每个沙箱有独立内核,比容器安全得多
- E2B SDK 兼容:换个环境变量就能迁移,零代码改动
- 快照和回滚:毫秒级快照,随时回滚到任意状态
为什么需要它
在 CubeSandbox 之前,AI Agent 的代码执行环境大致有三类:
直接跑在宿主机上:最简单,也最危险。恶意代码一执行,整个系统就完了。
跑在 Docker 容器里:有基本隔离,但容器共享内核,隔离不彻底。启动速度和资源开销在大规模场景下也不理想。
跑在传统虚拟机里:安全性够,但启动要几秒到几十秒,内存占用几百 MB 到几 GB。同时跑 1000 个 Agent,需要几十台服务器。
| 指标 | Docker 容器 | 传统 VM | CubeSandbox |
|---|---|---|---|
| 隔离级别 | 低(共享内核) | 高(独立内核) | 极高(独立内核 + eBPF) |
| 启动速度 | 200ms | 几秒 | <60ms |
| 内存开销 | 低 | 高 | <5MB |
| 部署密度 | 高 | 低 | 极高(单节点数千) |
| E2B 兼容 | ❌ | ❌ | ✅ 原生支持 |
核心技术拆解
60ms 冷启动是怎么做到的
CubeSandbox 基于 RustVMM 和 KVM。RustVMM 是用 Rust 写的虚拟机管理器,轻量、启动快;KVM 是 Linux 内核自带的虚拟化模块,提供硬件加速。在此基础上做了三件事:
- 资源池化:预先分配好资源,不用临时申请
- 快照克隆:从快照恢复,跳过初始化
- 内核精简:沙箱内核只保留必要的模块
这些优化加起来把冷启动压到 60ms 以内。50 个并发创建,平均 67ms,P95 90ms,P99 137ms,始终在 150ms 以内。
<5MB 内存是怎么做到的
传统虚拟机要跑一个完整的操作系统,内存占用几百 MB 起步。CubeSandbox 的做法是:
- 内核共享:多个沙箱共享同一个基础内核,通过 Copy-on-Write 按需分配
- 内存精简:沙箱内核只保留必要模块,去掉一切不需要的东西
- CoW 快照:多个沙箱从同一个模板创建,共享基础内存页,只有修改的部分才独立分配
结果是每个沙箱内存开销不到 5MB。一台 32GB 的服务器,理论上能跑几千个沙箱。
硬件级隔离
隔离分两层:
- KVM 虚拟化:每个沙箱运行在独立的 MicroVM 里,有自己的内核
- eBPF 网络隔离:基于 eBPF 的内核级网络策略,沙箱之间的流量在内核层面就被隔离
即使一个沙箱里的代码有恶意行为,也突破不了 KVM 的虚拟化边界;沙箱之间的网络通信同样被 eBPF 管控。
快照和回滚
CubeSandbox 0.3.0 引入了 CubeCoW(Copy-on-Write 快照引擎):
- 事件级快照:在沙箱运行时随时创建快照
- 毫秒级回滚:回滚到任意历史状态
- 分支克隆:从一个快照分叉出多个沙箱,并行探索
强化学习场景里比较有用:训练到一半创建快照,分叉出 10 个沙箱,每个尝试不同策略。
网络安全
- CubeVS:基于 eBPF 的虚拟交换机,内核级网络隔离
- CubeEgress:基于 OpenResty 的出口安全网关,L7 域名过滤、凭证注入、访问审计
凭证注入是其中一点:Agent 调用外部 API 时,API Key 不用进沙箱,CubeEgress 会自动注入,沙箱里的代码看不到密钥。
架构设计
┌────────────────────────────────────────────────┐
│ CubeAPI │
│ (REST API 网关,Rust,E2B 兼容) │
└────────────────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────┐
│ CubeMaster │
│ (集群编排,资源调度) │
└────────────────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────┐
│ Cubelet │
│ (节点本地调度,沙箱生命周期管理) │
│ ┌────────────┐ ┌────────────┐ ┌──────────┐ │
│ │ Hypervisor │ │ Shim │ │ CubeVS │ │
│ │ (KVM) │ │(containerd)│ │ (eBPF) │ │
│ └────────────┘ └────────────┘ └──────────┘ │
└────────────────────────────────────────────────┘
CubeAPI:REST API 网关,Rust 编写,兼容 E2B 协议,面向高并发。
CubeMaster:集群编排器,接收 API 请求并分发到对应的 Cubelet,管理资源调度和集群状态。
CubeProxy:反向代理,兼容 E2B 协议,把请求路由到对应的沙箱实例。
Cubelet:计算节点本地调度组件,管理节点上所有沙箱的完整生命周期。
CubeVS:基于 eBPF 的虚拟交换机,提供内核级网络隔离和安全策略。
CubeEgress:出口安全网关,负责 L7 域名过滤、凭证注入、访问审计。
CubeHypervisor & CubeShim:虚拟化层。CubeHypervisor 管理 KVM MicroVM,CubeShim 实现 containerd Shim v2 API,把沙箱集成到容器运行时。
整体分层是:API 层兼容 E2B,编排层管理集群,节点层管理沙箱,网络层保证安全。
E2B 兼容
E2B 是使用较多的 AI Agent 沙箱云服务,很多 Agent 框架都用它的 SDK。CubeSandbox 完全兼容 E2B SDK 接口:
# 原来用 E2B 的代码
import e2b
sandbox = e2b.Sandbox()
# 只需要改一个环境变量,就能迁移到 CubeSandbox
# E2B_API_URL=http://your-cubesandbox:8080
sandbox = e2b.Sandbox() # 代码完全不用改
零代码改动,迁移成本主要在环境变量。
实际使用场景
AI Agent 代码执行:AI 编程助手里,每个用户的 Agent 在独立沙箱中执行代码,硬件级隔离,互不影响。60ms 启动,交互不卡。
强化学习训练:需要大量并行环境时,快速创建几千个沙箱,每个跑一个训练环境,靠快照随时回滚、分叉探索。
浏览器自动化:Agent 操作浏览器爬数据、填表单,每个 Agent 在独立沙箱里跑浏览器,网络隔离、安全可控。
多租户平台:Agent 平台多个客户共用基础设施时,每个客户的 Agent 在独立沙箱里,硬件级隔离,数据互不可见。
快速开始
需要 x86_64 Linux 环境,且支持 KVM。
# 下载
wget https://github.com/TencentCloud/CubeSandbox/releases/download/v0.6.0/cubesandbox-v0.6.0-linux-amd64.tar.xz
tar -xf cubesandbox-v0.6.0-linux-amd64.tar.xz
cd cubesandbox-v0.6.0-linux-amd64
# 安装
sudo ./install.sh
安装完成后访问 http://:12088 打开 Web 控制台:
- 查看概览:确认节点 Ready,容量健康
- 准备模板:从模板商店安装官方预设
- 创建沙箱:选择模板,秒级创建
部署方式支持:
- PVM(云虚拟机):推荐,不需要裸金属
- 裸金属:性能最好
- Kubernetes:预览版
- Terraform:腾讯云一键部署
跟类似方案对比
| 维度 | CubeSandbox | E2B | gVisor | Firecracker |
|---|---|---|---|---|
| 部署方式 | 自托管 | SaaS | 库 | 自托管 |
| 启动速度 | <60ms | ~150ms | 快 | ~125ms |
| 内存开销 | <5MB | - | 中等 | ~5MB |
| 隔离级别 | 硬件 + eBPF | 硬件 | 用户态内核 | 硬件 |
| E2B 兼容 | ✅ | 原生 | ❌ | ❌ |
| 快照回滚 | ✅ | ✅ | ❌ | ✅ |
| 开源 | ✅ | ❌ | ✅ | ✅ |
CubeSandbox 的组合是自托管 + E2B 兼容 + 极速启动 + 极低开销。
局限性
需要 KVM 支持。必须有硬件虚拟化,不是所有环境都有。
只支持 x86_64 Linux。ARM64 正在开发中(v0.5 已开始支持)。
自托管运维成本。需要自己管理集群,不像 E2B 云服务那么省心。
项目还比较新。2026 年 4 月才开源,生态还在建设中。
如果只是个人开发者,跑几个 Agent 玩玩,E2B 云服务可能更方便。
参考链接
- CubeSandbox GitHub:https://github.com/TencentCloud/CubeSandbox
- 快速开始:https://github.com/TencentCloud/CubeSandbox/blob/main/docs/guide/quickstart.md
- 架构设计:https://github.com/TencentCloud/CubeSandbox/blob/main/docs/architecture/overview.md
- CNCF Landscape:https://landscape.cncf.io