编程 腾讯云开源 CubeSandbox:60ms 冷启动的 AI Agent 沙箱,兼容 E2B SDK

2026-09-12 09:52:06

腾讯云开源 CubeSandbox:60ms 冷启动的 AI Agent 沙箱,兼容 E2B SDK

项目地址:TencentCloud/CubeSandbox

Agent 执行代码,跑在哪

AI Agent 现在能写代码、跑脚本、操作浏览器。随之而来的问题是:Agent 执行的代码,你敢直接跑吗?

让 Agent 分析数据,它要跑 Python;让它帮你调试,它要执行 shell 命令;做强化学习训练,它要在沙箱里跑各种测试。这些代码可能是 Agent 自己生成的,可能是用户提交的,也可能是第三方插件,无法保证安全。

那跑在哪里?

容器:共享内核,隔离不够。Agent 突破了容器就能影响宿主机。

虚拟机:安全够了,但启动太慢,几秒甚至几十秒。要同时跑 1000 个 Agent,资源扛不住。

腾讯云开源了 CubeSandbox——基于 RustVMM 和 KVM 的安全沙箱,60ms 冷启动,不到 5MB 内存开销,兼容 E2B SDK,已进入 CNCF Landscape。

CubeSandbox 是什么

项目信息
GitHubTencentCloud/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 容器传统 VMCubeSandbox
隔离级别低(共享内核)高(独立内核)极高(独立内核 + eBPF)
启动速度200ms几秒<60ms
内存开销<5MB
部署密度极高(单节点数千)
E2B 兼容✅ 原生支持

核心技术拆解

60ms 冷启动是怎么做到的

CubeSandbox 基于 RustVMMKVM。RustVMM 是用 Rust 写的虚拟机管理器,轻量、启动快;KVM 是 Linux 内核自带的虚拟化模块,提供硬件加速。在此基础上做了三件事:

  1. 资源池化:预先分配好资源,不用临时申请
  2. 快照克隆:从快照恢复,跳过初始化
  3. 内核精简:沙箱内核只保留必要的模块

这些优化加起来把冷启动压到 60ms 以内。50 个并发创建,平均 67ms,P95 90ms,P99 137ms,始终在 150ms 以内。

<5MB 内存是怎么做到的

传统虚拟机要跑一个完整的操作系统,内存占用几百 MB 起步。CubeSandbox 的做法是:

  1. 内核共享:多个沙箱共享同一个基础内核,通过 Copy-on-Write 按需分配
  2. 内存精简:沙箱内核只保留必要模块,去掉一切不需要的东西
  3. CoW 快照:多个沙箱从同一个模板创建,共享基础内存页,只有修改的部分才独立分配

结果是每个沙箱内存开销不到 5MB。一台 32GB 的服务器,理论上能跑几千个沙箱。

硬件级隔离

隔离分两层:

  1. KVM 虚拟化:每个沙箱运行在独立的 MicroVM 里,有自己的内核
  2. 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 控制台:

  1. 查看概览:确认节点 Ready,容量健康
  2. 准备模板:从模板商店安装官方预设
  3. 创建沙箱:选择模板,秒级创建

部署方式支持:

  • PVM(云虚拟机):推荐,不需要裸金属
  • 裸金属:性能最好
  • Kubernetes:预览版
  • Terraform:腾讯云一键部署

跟类似方案对比

维度CubeSandboxE2BgVisorFirecracker
部署方式自托管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
复制全文 生成海报 CubeSandbox AI Agent 沙箱 KVM eBPF E2B Rust

推荐文章

程序员茄子在线接单