每日开源 · 第 087 期 · 早间篇
CubeSandbox:腾讯云开源 AI Agent 安全沙箱
60ms 冷启动 · 硬件级隔离 · 5MB 内存开销
兼容 E2B SDK,私有化部署的 Agent 执行底座
**免责声明:**本工具依赖境外公开数据源(如 GitHub、E2B SDK 等),部分平台在中国大陆需合规网络环境。本文仅作技术交流,不构成任何投资、采购或部署建议。
项目速览
**项目名:**TencentCloud / CubeSandbox
**定 位:**面向 AI Agent 的高性能安全沙箱运行时
**Star 数:**8k+(今日 GitHub Trending +664 ⭐)
**开源协议:**Apache 2.0
**核心语言:**Rust / Go
**最新版本:**v0.5.0(2026.07.03)
**仓库地址:**github.com/TencentCloud/CubeSandbox
<60ms冷启动
<5MB单沙箱开销
**2000+**单节点并发
1 行E2B 迁移成本
它能解决什么问题?
今天的 AI Agent 不再只是"写代码",而是真正要执行代码:调用工具、安装依赖、读写文件、访问网络。当 LLM 生成的代码被直接运行时,传统容器方案面临一个尴尬局面。
Docker 共享内核,在 Agent 场景下不够安全
Docker 基于 Namespace 做软隔离,所有容器共享宿主机内核。一旦 LLM 生成的代码触发内核漏洞,或绕过 seccomp,就可能容器逃逸。而传统虚拟机虽然独立内核,但启动要几秒、内存几百 MB,根本跟不上"每次对话调起一个沙箱"的实时需求。
CubeSandbox 的思路很直接:**用 KVM MicroVM 给每个沙箱一个独立内核,同时把启动速度压到 60ms 以内、内存开销压到 5MB 级别。**它在安全性上接近虚拟机,在轻量性上接近容器,并且原生兼容 E2B SDK,让企业可以把 Agent 执行环境私有化部署在自己服务器上。
核心亮点
1. RustVMM + KVM:真正的硬件级隔离
每个沙箱运行在独立的 KVM MicroVM 中,拥有独立 Guest OS 内核。即使沙箱内代码触发内核漏洞,崩溃的也只是沙箱自己的内核,宿主机不受影响。CubeHypervisor 基于 RustVMM 与 Cloud Hypervisor 定制,只保留 Agent 场景必需的最小设备集,攻击面更小。
2. 60ms 冷启动:资源池 + 快照克隆
CubeSandbox 不会等请求到了才初始化,而是后台维护一个预热的 MicroVM 资源池。收到请求时直接取出实例,通过 Copy-on-Write 克隆快照,只复制元数据。实测单并发 60ms,50 并发平均 67ms、P95 90ms、P99 137ms。
3. CubeCoW:O(1) 快照 / 克隆 / 回滚
基于 XFS reflink 与 FICLONE ioctl,快照只是元数据操作,不拷贝数据。增量快照只持久化脏内存页。因此保存一个 2GB rootfs 状态的快照、克隆一个运行中沙箱、回滚到历史状态都能在秒级完成。
4. CubeVS:eBPF 驱动的内核级网络隔离
用 eBPF/XDP 替代 iptables,在 TC ingress/egress 三个挂载点完成 SNAT、DNAT、连接追踪与 LPM-trie 网络策略。默认拒绝私网与链路本地地址,支持按沙箱粒度放行出站域名。
5. CubeEgress:零信任出网 + 凭证保险库
所有出站 HTTP/HTTPS 流量经过 L7 MITM 代理。域名必须显式白名单放行;API Key 由代理注入请求头,密钥永不进入沙箱或 LLM 上下文,日志中也看不到。
6. E2B SDK 原生兼容:零成本迁移
如果现有 Agent 已接入 E2B,只需改一个环境变量 URL,业务代码完全不用动。这让它成为 E2B 云服务之外,少有的可私有化、可审计的替代方案。
架构分层:控制面与数据面
官方把系统拆成无状态控制面和节点本地数据面两层,Redis 是唯一的协调中心,方便横向扩容。
**控制面:**CubeAPI(Rust Axum,E2B 兼容 REST 网关)、CubeMaster(Go,集群调度)、WebUI、Redis。
**数据面:**Cubelet(节点调度)、CubeShim(containerd Shim v2)、CubeHypervisor(RustVMM/KVM)、CubeCoW(存储)、CubeVS(eBPF 网络)、CubeEgress(L7 代理)、CubeProxy(OpenResty 路由)。
一个典型的Sandbox.create()调用会这样流转:SDK → CubeAPI → CubeMaster → Redis 选节点 → Cubelet → CubeCoW 克隆模板 rootfs 与内存卷 → CubeShim 恢复 MicroVM → CubeVS 配置网络 → 沙箱就绪。整个过程对上层完全透明。
横向对比:E2B / CubeSandbox / Docker Sandboxes
**E2B:**托管云服务,基于 Firecracker,成熟稳定,88% 财富 100 强企业使用。适合希望快速上线、不想自建基础设施的团队。
**CubeSandbox:**开源私有化方案,基于 RustVMM + KVM,冷启动 <60ms,兼容 E2B SDK。适合有数据合规要求、需要完全掌控基础设施的企业。
**Docker Sandboxes:**面向开发者本地桌面,让 AI 编码助手在本地安全执行命令。适合个人开发者"YOLO 模式"下不让 AI 误删宿主机文件。
一句话选型:要省心上云选 E2B;要数据不出境、可审计可控选 CubeSandbox;要在本机安全跑 Agent 选 Docker Sandboxes。
实战场景展示
场景一:AI Agent 安全执行 LLM 生成的代码
Agent 接到"帮我写一个 Python 脚本并运行"的指令时,把代码丢进 CubeSandbox。即使 LLM 生成恶意代码,也只能影响沙箱内部,宿主机和其他沙箱完全隔离。
场景二:在线编程教育与代码评测
学生提交的代码在独立 MicroVM 中运行,杜绝互相影响和宿主机逃逸。秒级启动让每次提交都能快速得到反馈,支撑高并发评测。
场景三:CI/CD 中不可信代码的安全构建
开源贡献者的 PR 触发构建时,在 CubeSandbox 里执行编译和测试。网络策略限制只能访问白名单仓库,凭证由 CubeEgress 托管注入。
场景四:SWE-Bench / RL 训练环境
需要同时起数百个隔离环境跑评测或强化学习。CubeSandbox 单台 96 核机器可运行 2000+ 沙箱,且快照/回滚能力让实验可重复。
上手指南
以下步骤综合官方文档与社区实战,在腾讯云 CVM(OpenCloudOS 9.4 / 8C16G)上可复现。核心思路是:安装 PVM 宿主内核 → 一键部署 → 创建模板 → 用 E2B SDK 调用。
前置条件
**系 统:**OpenCloudOS 9 / TencentOS 4 / Ubuntu 20.04+(glibc ≥ 2.31)
**架 构:**x86_64(PVM 内核目前仅 x86_64)
**权 限:**root
磁 盘:/data/cubelet 至少 50GB,建议 XFS 文件系统
**内 存:**≥ 8GB
步骤 1:安装 PVM 宿主内核
普通云服务器没有 /dev/kvm 时,需要安装 CubeSandbox 维护的 PVM 内核。PVM 是一种基于页表的嵌套虚拟化框架,不依赖 Intel VT-x/AMD-V 暴露给 guest。
# 从 Release 下载 PVM 宿主内核 RPM(约 575MB)
wget “<kernel rpm 下载链接>”
# 安装,–oldpackage 避免版本冲突
rpm -ivh --oldpackage kernel-*.rpm
# 设置 PVM 内核为默认启动项
grubby --info=ALL | grep -E “kernel|index”
grubby --set-default-index=
# 配置内核启动参数并重启
curl -sL https://cnb.cool/CubeSandbox/CubeSandbox/-/git/raw/master/deploy/pvm/grub/host_grub_config.sh | bash
reboot
步骤 2:加载 KVM 模块
uname -r# 期望包含 opencloudos9.cubesandbox.pvm.host
modprobe kvm_pvm
lsmod | grep kvm# 应看到 kvm_pvm
ls -la /dev/kvm# 此时 /dev/kvm 应已出现
# 设置开机自动加载
echo ‘kvm_pvm’ > /etc/modules-load.d/kvm-pvm.conf
步骤 3:一键安装 CubeSandbox
curl -sL https://cnb.cool/CubeSandbox/CubeSandbox/-/git/raw/master/deploy/one-click/online-install.sh \
| CUBE_PVM_ENABLE=1 MIRROR=cn bash
安装完成后,会启动 5 个 Docker 容器(WebUI、Proxy、CoreDNS、MySQL、Redis)和 4 个独立进程(cube-api、cubemaster、cubelet、network-agent)。WebUI 默认监听:12088。
步骤 4:创建沙箱模板
cubemastercli tpl create-from-image \
–image cube-sandbox-cn.tencentcloudcr.com/cube-sandbox/sandbox-code:latest \
–writable-layer-size 1G \
–expose-port 49999 \
–expose-port 49983 \
–probe 49999
# 监控模板创建进度,直到 READY
cubemastercli tpl watch --job-id <job_id>
# 查看模板列表,记录 template_id
cubemastercli tpl list
步骤 5:用 E2B SDK 运行第一段代码
# 安装 E2B Code Interpreter SDK
yum install -y python3 python3-pip
pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/simple
pip install e2b-code-interpreter
# 指向本地 CubeSandbox
export E2B_API_URL=“http://127.0.0.1:3000”
export E2B_API_KEY=“e2b_000000”
export CUBE_TEMPLATE_ID=“<你的模板ID>”
export SSL_CERT_FILE=“/root/.local/share/mkcert/rootCA.pem”
# hello_cube.py
import os
from e2b_code_interpreter import Sandbox
with Sandbox.create(template=os.environ[“CUBE_TEMPLATE_ID”]) as sandbox:
result = sandbox.run_code(“print(‘Hello from Cube Sandbox, safely isolated!’)”)
print(result)
社区实测在普通云 CVM + PVM 环境下,Sandbox.create()端到端耗时约 65ms(P50),30 次连开没有一次破百。
步骤 6:体验快照 / 克隆 / 回滚
# 为运行中的沙箱创建快照
cubemastercli snapshot create \
–sandbox-id <sandbox_id> \
–display-name snap-test-001
# 基于快照克隆新沙箱(REST API)
curl -s -X POST \
-H “Content-Type: application/json” \
-d ‘{“templateID”:“<template_id>”, “snapshotID”:“<snapshot_id>”}’ \
http://127.0.0.1:3000/cubeapi/v1/sandboxes
# 回滚沙箱到快照
cubemastercli sandbox rollback \
–sandbox-id <sandbox_id> \
–snapshot-id <snapshot_id>
**注意:**ARM64(aarch64)主机目前不支持 PVM 内核,请使用本身已提供原生 KVM 的物理机/裸金属服务器,参考官方裸金属部署文档。
今日总结与互动
为什么值得持续关注 CubeSandbox?
**安全模型明确:**独立内核 + eBPF 网络 + L7 出网代理,三层隔离比容器更可靠。
**性能可落地:**60ms 冷启动、5MB 开销不是实验室数字,普通云服务器 + PVM 即可复现。
**迁移成本低:**E2B SDK 兼容让已有 Agent 应用只需改一个 URL。
**私有化可控:**Apache 2.0 开源,数据不出境,适合对合规敏感的企业。
**生态还在快速迭代:**v0.5.0 已支持 Terraform 集群部署、ARM64 全栈、AutoPause/Resume,路线图还包括 K8s Operator、Volume、跨节点迁移等。
AI Agent 从"建议者"变成"执行者"后,安全沙箱正在成为基础设施的标配,就像今天的数据库、消息队列一样。CubeSandbox 是这条赛道上非常值得跟踪的开源项目。
**今日互动:**你现在的 AI Agent 项目是怎么解决"LLM 生成代码安全执行"这个问题的?欢迎在评论区聊聊你用过 E2B、Docker Sandboxes 还是其他方案。
每日开源 · 第 087 期
项目:TencentCloud/CubeSandbox
免责声明:本工具依赖境外公开数据源,部分平台在中国大陆需合规网络环境;内容仅供技术交流,不构成任何投资、采购或部署建议。
如果这篇对你有启发,欢迎点赞、在看、转发给同样关注 AI 基础设施的朋友。
👇 点击关注,明天见