跳转到内容

CubePod — 持久化可写 RootFS 微虚拟机执行平台

v0.4.0 开源发布 · Apache 2.0 · 100% E2B 协议兼容

面向高自治 AI Agent 的 持久化可写 RootFS 微虚拟机平台

通过双块卷 CSI Raw Block 持久化、Kata Containers 硬件级隔离、零导出 0 资源休眠秒级恢复与零信任出站凭据代理,让每个 AI Agent 拥有“永不丢失系统环境与项目文件”的云原生操作系统。

< 50ms
PodWarmPool 预热池秒领
~1s
CoW 克隆与跨节点唤醒
0 CPU / RAM
Zero-Export 休眠计算开销
100%
RootFS + /workspace 双卷持久化

一行配置零改造迁移,或原生调用企业级超集 SDK

直接把 E2B_DOMAIN 指向 cubepod-gateway,即可无缝接入 LangChain / AutoGen / OpenHands;或使用 CubePod 原生 Python / TypeScript SDK 与 MCP Server 解锁 1s CoW Fork 与零信任出站。

export E2B_DOMAIN="localhost:8080"
export E2B_API_KEY="cpod_live_secret"

from e2b_code_interpreter import Sandbox

with Sandbox.create() as sandbox:
    # Install system packages once — persisted in rootfs-pvc across suspends
    sandbox.commands.run("pip install pandas matplotlib")
    exec_res = sandbox.run_code("import pandas as pd; pd.DataFrame({'a': [1, 2, 3]})")
    print(exec_res.results[0].html)
import asyncio
from cubepod import AsyncCubePod

async def main() -> None:
    async with AsyncCubePod(base_url="http://localhost:8080") as client:
        box = await client.create(
            "cubeplex-ubuntu24-desktop",
            secret_bindings=[{
                "env_name": "GITHUB_TOKEN",
                "placeholder": "cpodref_gh_readonly_01",
                "allowed_hosts": ["api.github.com"],
            }],
        )
        forked = await client.fork(box.sandbox_id)   # <1s CoW clone of both volumes
        await client.reset_rootfs(box.sandbox_id)    # Reset OS, keep /workspace intact
        await client.pause(box.sandbox_id)           # 0 CPU/RAM suspend
import { Sandbox } from 'cubepod';

const sandbox = await Sandbox.create({
  baseUrl: 'http://localhost:8080',
  templateId: 'cubeplex-ubuntu24-desktop',
  timeout: 1800,
});

// Atomic tar.gz sync + streaming Code Interpreter + signed WebRTC/CDP panel URL
await sandbox.files.archiveSync({ 'app/main.py': 'print("ready")\n' }, { dest: '/workspace' });
const panel = await sandbox.createEndpoint(8080, { expiresInSeconds: 3600 });
console.log('Interactive GUI Panel:', panel.url);

await sandbox.pause();
# Provision from WarmPool or template, inspect, fork, and expose MCP tools
cubepod health
cubepod sandbox create --template cubeplex-ubuntu24-desktop
cubepod sandbox exec <sandbox-id> "apt-get update && apt-get install -y ripgrep"
cubepod sandbox pause <sandbox-id>
cubepod sandbox fork <sandbox-id>
cubepod sandbox reset-rootfs <sandbox-id>

# Start native Model Context Protocol (MCP) JSON-RPC stdio server
cubepod mcp

四层云原生架构设计

将易变的系统层(RootFS Upper)与珍贵的用户数据(/workspace)彻底解耦,构建零宿主机侵入的 Kata 微虚拟机执行底座。

01

接入与协议层 (Access Layer)

  • CubePlex 平台 / CubeLoop 运行时
  • 官方 E2B SDK (Python / JS / Code Interpreter)
  • CubePod SDK (Python / TS / Go)
  • Native MCP stdio Server (cubepod mcp)
02

无状态控制与网关面 (Control & Gateway Plane)

  • cubepod-gateway (Go): E2B REST/SSE 路由 & Auto-Resume 自动唤醒拦截
  • Signed /panel/{jwt}/ Proxy: HTTP / WebSocket / WebRTC 桌面与终端转发
  • cubepod-controller (Go): 双卷 PVC、PodWarmPool、CoW Fork 与每 Pod mTLS 签发
03

硬件隔离数据面 (Kata MicroVM Data Plane)

  • podd-init (Rust PID 1): ext4 校验修复 + OverlayFS 组装 + pivot_root(零镜象侵入)
  • podd (Rust :49983): 前后台执行、磁盘环形日志 Cursor、流式 tar.gz archive-sync
  • cubepod-egress (Go): nftables 透明流量劫持 + SNI 白名单 + cpodref_ mTLS 凭据替换
  • Lazy Desktop Stack: Xorg + Chromium CDP (:9222) + Neko WebRTC (:8080) + ttyd (:7681)
04

持久块存储面 (CSI Raw Block Storage Plane)

  • Base OCI Image (RO, virtio-fs / EROFS): 纯净基础镜像,无基础设施二进制污染
  • rootfs-pvc (volumeMode: Block -> ext4): 持久化 /usr /etc /var 增删,可独立重置
  • workspace-pvc (volumeMode: Block -> /workspace): 原生 NVMe-oF 速度,独立生命周期保护

专为长周期高自治 Agent 打造的企业级超集能力

CubePod vs. 上游 E2B Cloud vs. 传统容器沙箱

核心维度传统容器 / 上游 E2BCubePod v0.4.0 开源平台
系统盘持久化 RootFS 临时易失;休眠后 apt/pip 依赖全部丢失 RootFS + /workspace 双卷持久化;系统软件跨休眠永久保留
存储性能模型 NFS/CephFS 小文件 RPC 瓶颈或容器 overlay 双 CSI Raw Block (Longhorn V2 SPDK / OpenEBS LVM) 原生 NVMe-oF 速度
OS 与数据耦合度 重置环境往往连带清理工作区 完全解耦:递增 rootfsGeneration 仅重装 OS,/workspace 毫发无损
休眠与冷启动 千兆级内存镜像导出耗时且绑定 CPU 架构 Zero-Export (0 CPU/RAM) + ~1s 跨节点块卷挂载 + <50ms WarmPool 领用
多分支并行探索 不支持或需全量磁盘拷贝 < 1s 写时复制克隆 (POST /sandboxes/{id}/fork)
密钥与出站安全 明文环境变量注入,存在 LLM 越狱泄露风险 仅注入 cpodref_ 占位符 + nftables + mTLS 边界动态注入
协议与部署自由 专有 SaaS 绑定 100% E2B 协议超集 · 自托管 K8s (Kata) 或单机 Docker Compose