
每日开源 · 第 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.02026.07.03**仓库地址**github.com/TencentCloud/CubeSandbox60ms冷启动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 克隆快照只复制元数据。实测单并发 60ms50 并发平均 67ms、P95 90ms、P99 137ms。3. CubeCoWO(1) 快照 / 克隆 / 回滚基于 XFS reflink 与 FICLONE ioctl快照只是元数据操作不拷贝数据。增量快照只持久化脏内存页。因此保存一个 2GB rootfs 状态的快照、克隆一个运行中沙箱、回滚到历史状态都能在秒级完成。4. CubeVSeBPF 驱动的内核级网络隔离用 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 是唯一的协调中心方便横向扩容。**控制面**CubeAPIRust AxumE2B 兼容 REST 网关、CubeMasterGo集群调度、WebUI、Redis。**数据面**Cubelet节点调度、CubeShimcontainerd Shim v2、CubeHypervisorRustVMM/KVM、CubeCoW存储、CubeVSeBPF 网络、CubeEgressL7 代理、CubeProxyOpenResty 路由。一个典型的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 沙箱且快照/回滚能力让实验可重复。上手指南以下步骤综合官方文档与社区实战在腾讯云 CVMOpenCloudOS 9.4 / 8C16G上可复现。核心思路是安装 PVM 宿主内核 → 一键部署 → 创建模板 → 用 E2B SDK 调用。前置条件**系 统**OpenCloudOS 9 / TencentOS 4 / Ubuntu 20.04glibc ≥ 2.31**架 构**x86_64PVM 内核目前仅 x86_64**权 限**root磁 盘/data/cubelet 至少 50GB建议 XFS 文件系统**内 存**≥ 8GB步骤 1安装 PVM 宿主内核普通云服务器没有 /dev/kvm 时需要安装 CubeSandbox 维护的 PVM 内核。PVM 是一种基于页表的嵌套虚拟化框架不依赖 Intel VT-x/AMD-V 暴露给 guest。# 从 Release 下载 PVM 宿主内核 RPM约 575MBwget “kernel rpm 下载链接”# 安装–oldpackage 避免版本冲突rpm -ivh --oldpackage kernel-*.rpm# 设置 PVM 内核为默认启动项grubby --infoALL | 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 | bashreboot步骤 2加载 KVM 模块uname -r# 期望包含 opencloudos9.cubesandbox.pvm.hostmodprobe kvm_pvmlsmod | grep kvm# 应看到 kvm_pvmls -la /dev/kvm# 此时 /dev/kvm 应已出现# 设置开机自动加载echo ‘kvm_pvm’ /etc/modules-load.d/kvm-pvm.conf步骤 3一键安装 CubeSandboxcurl -sL https://cnb.cool/CubeSandbox/CubeSandbox/-/git/raw/master/deploy/one-click/online-install.sh \| CUBE_PVM_ENABLE1 MIRRORcn 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# 监控模板创建进度直到 READYcubemastercli tpl watch --job-id job_id# 查看模板列表记录 template_idcubemastercli tpl list步骤 5用 E2B SDK 运行第一段代码# 安装 E2B Code Interpreter SDKyum install -y python3 python3-pippip config set global.index-url https://mirrors.ustc.edu.cn/pypi/simplepip install e2b-code-interpreter# 指向本地 CubeSandboxexport 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.pyimport osfrom e2b_code_interpreter import Sandboxwith Sandbox.create(templateos.environ[“CUBE_TEMPLATE_ID”]) as sandbox:result sandbox.run_code(“print(‘Hello from Cube Sandbox, safely isolated!’)”)print(result)社区实测在普通云 CVM PVM 环境下Sandbox.create()端到端耗时约 65msP5030 次连开没有一次破百。步骤 6体验快照 / 克隆 / 回滚# 为运行中的沙箱创建快照cubemastercli snapshot create \–sandbox-id sandbox_id \–display-name snap-test-001# 基于快照克隆新沙箱REST APIcurl -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**注意**ARM64aarch64主机目前不支持 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 基础设施的朋友。 点击关注明天见