Zeroboot vs E2B 深度对比:AI Agent Sandbox 技术路线分析¶
背景:AI Agent 为什么需要 Sandbox¶
AI Agent 正在从"对话式助手"进化为"能写代码并执行"的自主系统。无论是 Claude 的 Computer Use、OpenAI 的 Codex,还是各种 Coding Agent,它们的核心能力都依赖一个前提:安全地执行 AI 生成的代码。
这带来了三个核心需求:
- 安全隔离:AI 生成的代码不可信,必须在隔离环境中执行,不能影响宿主系统
- 极低延迟:Agent 可能在一次推理中调用数十次代码执行,每次等待 150ms+ 会严重拖慢工作流
- 高并发 + 低成本:多个 Agent 并行工作,每个都需要独立的执行环境,内存开销必须可控
当前主流方案¶
| 方案 | 类型 | Spawn 延迟 | 隔离级别 | 开源 |
|---|---|---|---|---|
| E2B | Firecracker microVM + envd | ~150ms | VM(硬件级) | ✅ |
| Modal | gVisor container | ~100ms | 容器(内核级) | ❌ |
| Daytona | Container sandbox | ~27ms | 容器 | ✅ |
| microsandbox | Lightweight VM | ~200ms | VM | ✅ |
| zeroboot | CoW fork microVM | ~0.8ms | VM(硬件级) | ✅ |
zeroboot 和 E2B 是其中最有代表性的两个方向:E2B 选择了功能完整性,zeroboot 选择了极致性能。本文深入对比两者的架构和技术实现,分析各自的优劣势,并探讨融合路线。
E2B 架构全景¶
E2B(Environment to Binary)是一个完整的 AI Agent sandbox 平台,提供从 API 到基础设施的全栈解决方案。
整体架构¶
┌─────────────────────────────────────────────────────────────┐
│ 控制平面 (Control Plane) │
│ REST API Server ─── PostgreSQL (Supabase) │
│ Template Manager ── Cloudflare DNS/TLS │
│ Auth / Billing ──── Secret Manager │
└──────────────────────┬──────────────────────────────────────┘
│ Nomad Job Scheduling
┌──────────────────────▼──────────────────────────────────────┐
│ 编排层 (Orchestration) │
│ Nomad Server Cluster (3x t3.medium) │
│ Consul (Service Discovery) │
│ API Node ── Client Proxy ── Ingress │
└──────────────────────┬──────────────────────────────────────┘
│
┌──────────────────────▼──────────────────────────────────────┐
│ 数据平面 (Data Plane) │
│ ┌──────────────────────────────────────────────────┐ │
│ │ Orchestrator Node (m8i.4xlarge / bare-metal) │ │
│ │ ┌────────────┐ ┌────────────┐ ┌────────────┐ │ │
│ │ │ Firecracker│ │ Firecracker│ │ Firecracker│ │ │
│ │ │ microVM │ │ microVM │ │ microVM │ │ │
│ │ │ + envd │ │ + envd │ │ + envd │ │ │
│ │ └────────────┘ └────────────┘ └────────────┘ │ │
│ │ NBD (rootfs) ─── TAP (networking) ── cgroup v2 │ │
│ └──────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
技术栈¶
- 编排: HashiCorp Nomad + Consul(服务发现 + 任务调度)
- VM 引擎: Firecracker microVM(Amazon 开源,也用于 Lambda 和 Fargate)
- Guest Agent:
envd(Go 实现,运行在每个 VM 内部) - 基础设施: Terraform,支持 GCP(主要)和 AWS(Beta)
- 存储: PostgreSQL (Supabase) + S3/GCS(模板存储)+ ClickHouse(分析)
- 监控: Grafana + Loki + OpenTelemetry
双层通信架构¶
E2B 采用双层通信模型:
| 层 | 协议 | 用途 | 端点 |
|---|---|---|---|
| 控制面 | REST API (HTTPS) | Sandbox CRUD、模板管理、认证计费 | api.e2b.dev |
| 数据面 | Connect Protocol (gRPC-Web) | 文件操作、进程管理、PTY、Git | {sandbox-id}.e2b.dev |
Connect Protocol 是 Buf 团队开发的 gRPC 替代方案,支持浏览器直连、双向流、更好的错误处理。这让 E2B 可以在浏览器中直接操作 sandbox。
核心能力矩阵¶
| 能力 | 实现方式 |
|---|---|
| 文件系统 | NBD (Network Block Device) + overlay,支持读写、上传下载、目录监听 |
| 网络 | TAP 设备 + iptables NAT,完整的 TCP/IP 栈,支持出站访问 |
| 进程管理 | envd 管理,支持启动、信号、stdin/stdout 流、PTY |
| Git | 内置 clone/checkout/push 支持 |
| MCP | 200+ MCP server 集成 |
| Snapshot | Firecracker UFFD snapshot,保存完整 VM 状态 |
| Pause/Resume | 暂停计费,恢复后继续执行,状态完整保留 |
| 模板系统 | Dockerfile → build → 版本管理 → 分发 |
自托管基础设施(AWS 部署)¶
E2B 在 AWS 上的自托管部署需要以下资源:
| 节点池 | 实例类型 | 数量 | 用途 |
|---|---|---|---|
| Control Server | t3.medium | 3 | Nomad/Consul 服务端 |
| API | t3.xlarge | 1+ | API 服务、Ingress、代理 |
| Client | m8i.4xlarge | N | Firecracker 编排节点(需嵌套虚拟化) |
| Build | m8i.2xlarge | 1+ | 模板构建 |
| ClickHouse | t3.xlarge | 1 | 分析数据库 |
外加 ElastiCache Redis(可选)、Cloudflare DNS/TLS、Supabase PostgreSQL 等托管服务。
Zeroboot 架构全景¶
Zeroboot 是一个极简的亚毫秒级 VM sandbox 引擎,专为 AI Agent 高频代码执行设计。
核心创新:CoW Fork¶
传统的 Firecracker snapshot restore 使用 UFFD(userfaultfd)实现 lazy page loading:恢复时先注册空内存区域,guest 访问任何页面都触发 page fault,由 UFFD handler 从磁盘加载对应页面。这个过程涉及用户态 page fault 处理,延迟在 150-300ms。
Zeroboot 的创新在于:用 mmap(MAP_PRIVATE) 直接映射 snapshot 内存文件(memfd),利用 Linux 内核原生的 Copy-on-Write 机制:
传统方式 (E2B / Firecracker UFFD):
snapshot file → UFFD register → guest access → page fault
→ userspace handler → read from disk → map page → resume
延迟:~150ms(冷启动)到数十 ms(warm)
Zeroboot CoW fork:
memfd (in-memory snapshot) → mmap(MAP_PRIVATE | MAP_NORESERVE)
→ 虚拟内存立即可用(~1μs)
→ guest 写入时 → kernel COW page fault → 自动分配私有页
延迟:~0.8ms(含 KVM 创建 + CPU 状态恢复)
关键差异:UFFD 的 page fault 需要回到用户态处理(涉及上下文切换),而 mmap CoW 的 page fault 完全在内核态处理,效率高出一个数量级。加上 MAP_NORESERVE 不预分配物理内存,256MB 的 guest 实际 RSS 只有 ~265KB。
极简架构¶
┌─────────────────────────────────────────────────────────────┐
│ API Server (axum + tokio) │
│ POST /v1/exec ── POST /v1/batch │
│ Bearer Token 认证 ── 100 req/s 限流 │
└──────────────────────┬──────────────────────────────────────┘
│
┌──────────────────────▼──────────────────────────────────────┐
│ Fork Engine (kvm.rs) │
│ │
│ Template(一次性创建): │
│ Firecracker 冷启动 → 预加载 Python/numpy → 拍快照 │
│ → snapshot/mem + snapshot/vmstate → memfd │
│ │
│ 每次请求(~0.8ms): │
│ KVM_CREATE_VM → KVM_CREATE_IRQCHIP + PIT2 │
│ → 恢复 IOAPIC redirect table │
│ → mmap(MAP_PRIVATE) on memfd ← CoW 魔法 │
│ → set_user_memory_region │
│ → 恢复 CPU 状态: sregs → XCRS → XSAVE → regs │
│ → LAPIC → MSRs → MP_STATE │
│ → vCPU 运行,guest 从快照断点恢复执行 │
└────────────┬────────────────────────────────────────────────┘
│ Serial I/O (16550 UART)
│ 发送代码 → 等待 ZEROBOOT_DONE 标记
┌────────────▼────────────────────────────────────────────────┐
│ Guest VM(KVM 硬件隔离虚拟机) │
│ Guest Agent (init.c, C 语言 PID 1) │
│ 监听 /dev/ttyS0 → 读命令 → 执行 → 输出 → DONE 标记 │
└─────────────────────────────────────────────────────────────┘
整个 zeroboot 只有三个核心组件:Fork Engine(KVM VM 创建 + CoW 内存映射 + CPU 恢复)、Serial I/O(16550 UART Host↔Guest 通信)、API Server(axum HTTP 服务)。
性能数据(EC2 c8i.xlarge 嵌套虚拟化实测)¶
我们在 EC2 c8i.xlarge(Intel Sapphire Rapids, 4 vCPU, 8GB)嵌套虚拟化环境下进行了完整 benchmark:
| 指标 | 官方数据 | 我们的实测 | 差异 |
|---|---|---|---|
| Fork p50 | 0.79ms | 0.699ms | -11.5%(更快) |
| Fork p99 | 1.74ms | 1.064ms | -38.9%(更快) |
| Fork + exec echo | ~8ms | 6.31ms | -21.1%(更快) |
| 内存/sandbox | ~265KB | 72.4KB(1000 并发) | -72.7%(更省) |
| 1000 并发 fork | 815ms | 1094.4ms | +34.3%(嵌套开销) |
实测环境说明
EC2 嵌套虚拟化(L1 KVM 内跑 L2 KVM)是次优条件。单次 fork 性能优于官方可能因为: (1) c8i 的 Sapphire Rapids VT-x 优化更成熟; (2) 禁用 AMX 后 XSAVE 区域更小,内存占用更低。 1000 并发略慢是因为 L2 VMCS 管理开销,但 overhead 仅 34%,可接受。
完整 benchmark 报告:在 EC2 嵌套虚拟化上部署 Zeroboot
深度对比¶
架构对比¶
| 维度 | E2B | Zeroboot |
|---|---|---|
| 设计哲学 | 完整平台(全栈) | 极简引擎(单一职责) |
| 系统复杂度 | 分布式系统:API → Nomad → Orchestrator → Firecracker + envd | 单进程:API Server + Fork Engine |
| 代码规模 | 数十万行(Go/TypeScript/Terraform) | 数千行(Rust) |
| 部署依赖 | Nomad, Consul, PostgreSQL, Cloudflare, Redis, S3/GCS | Linux + KVM + Firecracker 二进制 |
| 运维复杂度 | 高(多节点集群,需专业 DevOps) | 低(单机部署,systemd 管理) |
| 扩展性 | 水平扩展(Nomad 调度多节点) | 垂直扩展(单机并发上限) |
VM 启动方式对比(核心技术差异)¶
这是两个项目最关键的技术分歧:
E2B:Firecracker 冷启动 / UFFD Snapshot Restore
1. API 收到 create sandbox 请求
2. Nomad 调度到 Client 节点
3. Firecracker 进程启动(冷启动 ~150ms)
或 UFFD snapshot restore:
a. 注册空内存区域 + UFFD handler
b. 恢复 CPU 状态
c. Guest 访问内存 → page fault → 用户态处理
d. Handler 从磁盘/网络加载对应页面
e. 映射页面,guest 继续执行
4. envd 启动,与控制面建立 Connect Protocol 连接
总延迟:~150ms(含调度开销可达数百 ms)
Zeroboot:CoW Fork from Snapshot
1. API 收到 exec 请求
2. Fork Engine 直接执行:
a. KVM_CREATE_VM(~2μs)
b. mmap(MAP_PRIVATE) on memfd(~1μs,仅建立虚拟映射)
c. 恢复 CPU 状态:sregs → XCRS → XSAVE → regs → LAPIC → MSRs
d. vCPU 开始运行
3. 通过 Serial 发送代码,等待结果
总延迟:~0.8ms
为什么差 ~200 倍?
| 因素 | E2B (UFFD) | Zeroboot (CoW) |
|---|---|---|
| 内存加载 | 用户态 page fault handler,每次 fault 需要内核↔用户态切换 | 内核态 COW fault,零用户态切换 |
| 数据来源 | 从磁盘/网络加载 snapshot 页面 | memfd 已在内存中,mmap 仅建立页表映射 |
| 初始开销 | 需要初始化 UFFD 监听 + 注册内存区域 | mmap 一次调用完成全部映射 |
| 编排开销 | Nomad 调度 + 进程启动 + envd 初始化 | 无编排层,直接 fork |
| 按需加载 | ✅(优势:不加载未访问页面) | ✅(同样按需 COW,但源在内存中) |
设备层对比¶
| 能力 | E2B | Zeroboot |
|---|---|---|
| 文件系统 | NBD + overlay(完整 POSIX 文件系统) | ❌ 无(代码通过 Serial 发送) |
| 网络 | TAP + iptables NAT(完整 TCP/IP) | ❌ 无 |
| Host↔Guest 通信 | envd (Connect Protocol),支持双向流 | Serial I/O (16550 UART),~115200 baud |
| PTY / Terminal | ✅ 完整 PTY 支持 | ❌ 无 |
| 资源隔离 | cgroup v2(CPU/内存限制) | KVM 硬件隔离(CPU/内存由 VM 边界保证) |
| 资源监控 | 内置 metrics API | 基础 Prometheus metrics |
Zeroboot 故意省略了所有"重"设备,因为每增加一种 virtio 设备,fork 时都需要在 host 侧重建设备后端,会显著增加 fork 延迟。这是性能 vs 功能的设计取舍。
Sandbox 生命周期对比¶
E2B:有状态长生命周期
create → running → [pause → paused → resume → running] → kill
→ [snapshot → snapshotting → running]
→ timeout → auto-pause (可选)
- 最长运行 24h(Pro)/ 1h(Hobby)
- Pause 保留完整状态(内存 + 文件系统),恢复后继续
- Snapshot 创建持久快照,可从快照创建新 sandbox
- Auto-pause 自动暂停,Auto-resume 自动恢复
Zeroboot:无状态短生命周期
fork → exec → collect output → drop
- 生命周期 = 一次代码执行(毫秒到秒级)
- 无 pause/resume(fork 即用即弃)
- 无持久状态(所有 COW 页面随 drop 释放)
- 无 timeout 管理(执行完自动清理)
这是两个项目最本质的差异:E2B 是"虚拟工作站",Agent 可以在里面长时间工作;Zeroboot 是"代码执行器",每次调用都是独立的。
模板系统对比¶
| 维度 | E2B | Zeroboot |
|---|---|---|
| 定义方式 | Dockerfile(标准容器生态) | Firecracker kernel + rootfs |
| 构建 | e2b CLI build → Firecracker rootfs | zeroboot template <kernel> <rootfs> <workdir> |
| 版本管理 | 内置版本 + tag 系统 | 本地文件(无版本管理) |
| 分发 | S3/GCS + 可能的 P2P | 本地磁盘 |
| 自定义 | 任意 Dockerfile 指令 | 需手动修改 rootfs |
| 预置模板 | base, Python, Node.js 等 | Python(含 numpy/pandas) |
| 构建时间 | 数分钟(取决于 Dockerfile) | ~15 秒 |
API 完整度对比¶
| API 能力 | E2B | Zeroboot |
|---|---|---|
| Sandbox 创建 | ✅ Sandbox.create() |
⚠️ 隐式(每次 exec 自动 fork) |
| 代码执行 | ✅ sandbox.commands.run() |
✅ POST /v1/exec |
| 批量执行 | ❌ | ✅ POST /v1/batch |
| 文件读写 | ✅ 完整 POSIX 操作 | ❌ |
| 文件上传/下载 | ✅ HTTP 上传/下载 | ❌ |
| 目录监听 | ✅ sandbox.files.watch() |
❌ |
| 进程管理 | ✅ 启动/信号/列表/流输出 | ❌ |
| PTY Terminal | ✅ 完整终端模拟 | ❌ |
| Git 操作 | ✅ clone/checkout/push | ❌ |
| MCP 集成 | ✅ 200+ servers | ❌ |
| Pause/Resume | ✅ 完整状态保留 | ❌ |
| Snapshot | ✅ 持久快照 | ❌ |
| 网络访问 | ✅ 出站 TCP/IP + 代理隧道 | ❌ |
| 环境变量 | ✅ 动态设置 | ❌ |
| 自定义域名 | ✅ | ❌ |
| 生命周期事件 | ✅ Webhook + API | ❌ |
| Sandbox 列表 | ✅ 分页查询 + 过滤 | ❌ |
| 监控指标 | ✅ 资源使用 metrics | ⚠️ 基础 metrics |
| SDK | ✅ Python + TypeScript(功能完整) | ✅ Python + TypeScript(仅 exec) |
| CLI | ✅ 完整 CLI 工具 | ⚠️ 基础命令 |
性能对比¶
| 指标 | E2B | Zeroboot | 倍数 |
|---|---|---|---|
| Sandbox 创建 p50 | ~150ms | 0.699ms | ~215x |
| Sandbox 创建 p99 | ~300ms | 1.064ms | ~282x |
| 内存/Sandbox | ~128MB | 72.4KB | ~1,800x |
| Fork + exec (echo) | N/A(不适用) | 6.31ms | — |
| 1000 并发创建 | 数十秒(含调度) | 1.09s | ~10-50x |
对比说明
两者的"创建"含义不同:E2B 创建包含完整的 Firecracker VM + envd 初始化 + 网络 + 文件系统;Zeroboot fork 只包含 KVM + 内存映射 + CPU 恢复。E2B 提供的能力更丰富,延迟更高是功能代价。
成本对比¶
E2B SaaS 定价
| 计划 | 月费 | 并发上限 | 最长运行 | 说明 |
|---|---|---|---|---|
| Hobby | $0 | 20 | 1h | $100 一次性 credit |
| Pro | $150/月 | 100-1,100 | 24h | 按秒计费 compute |
| Enterprise | 定制 | 1,100+ | 定制 | 联系销售 |
Compute 按 vCPU-秒 + RAM-秒计费,具体费率需查看价格计算器。Sandbox 暂停后停止计费。
E2B 自托管成本(AWS,最小部署)
| 资源 | 规格 | 月成本估算 |
|---|---|---|
| Control (3x t3.medium) | 3 × 2vCPU/4GB | ~$90 |
| API (t3.xlarge) | 4vCPU/16GB | ~$120 |
| Client (m8i.4xlarge) | 16vCPU/64GB | ~$550 |
| Build (m8i.2xlarge) | 8vCPU/32GB | ~$280 |
| ClickHouse (t3.xlarge) | 4vCPU/16GB | ~$120 |
| Supabase + Redis + S3 等 | — | ~$100+ |
| 合计 | ~$1,260+/月 |
Zeroboot 自托管成本
| 资源 | 规格 | 月成本估算 |
|---|---|---|
| 单机 (c8i.xlarge) | 4vCPU/8GB | ~$140 |
| 或 (m8i.2xlarge) | 8vCPU/32GB | ~$280 |
| 合计 | ~$140-280/月 |
Zeroboot 单机部署,无外部依赖。成本差异主要来自架构复杂度。
差距分析总结¶
完整能力矩阵¶
| 能力维度 | E2B | Zeroboot | 差距 |
|---|---|---|---|
| VM 启动速度 | ⭐⭐ (~150ms) | ⭐⭐⭐⭐⭐ (~0.8ms) | zeroboot 领先 200x |
| 内存效率 | ⭐⭐ (~128MB) | ⭐⭐⭐⭐⭐ (~72KB) | zeroboot 领先 1800x |
| 文件系统 | ⭐⭐⭐⭐⭐ | ❌ | E2B 完整,zeroboot 缺失 |
| 网络 | ⭐⭐⭐⭐⭐ | ❌ | E2B 完整,zeroboot 缺失 |
| Host↔Guest 通信 | ⭐⭐⭐⭐⭐ (Connect Protocol) | ⭐⭐ (Serial) | E2B 高带宽双向流 |
| Sandbox 生命周期 | ⭐⭐⭐⭐⭐ (有状态) | ⭐⭐ (无状态) | E2B 支持 pause/resume/snapshot |
| 模板系统 | ⭐⭐⭐⭐⭐ (Dockerfile) | ⭐⭐ (手动) | E2B 生态完整 |
| API 丰富度 | ⭐⭐⭐⭐⭐ | ⭐⭐ | E2B 全功能 SDK |
| 多云部署 | ⭐⭐⭐⭐ (GCP+AWS) | ⭐⭐ (需要 KVM) | E2B Terraform 自动化 |
| 运维复杂度 | ⭐⭐ (复杂) | ⭐⭐⭐⭐⭐ (简单) | zeroboot 单机部署 |
| 部署成本 | ⭐⭐ ($1,260+/月) | ⭐⭐⭐⭐⭐ ($140/月) | zeroboot 成本低 ~9x |
| 安全隔离 | ⭐⭐⭐⭐⭐ (KVM + cgroup) | ⭐⭐⭐⭐⭐ (KVM) | 两者都是硬件级 |
一句话总结:Zeroboot 覆盖了 E2B 约 20% 的能力(代码执行 + 基础隔离),但在这 20% 的领域做到了 200 倍的性能优势。
增强路线图¶
路径分析¶
如何将 zeroboot 增强为 E2B 级别的平台?有两条路径:
路径 A:在 zeroboot 上自建全栈
zeroboot (CoW fork engine)
+ 自建文件系统层
+ 自建网络层
+ 自建 Guest Agent (envd 等价物)
+ 自建模板系统
+ 自建编排层
= 从零重造 E2B
工作量:巨大,等于重写 E2B 整个基础设施。
路径 B:将 CoW fork 嫁接到 Firecracker 完整栈 ✅ 推荐
Firecracker (完整功能:virtio-blk + virtio-net + vsock + ...)
替换启动方式:UFFD snapshot restore → CoW fork
= 保留全部 Firecracker 设备能力 + 获得亚毫秒启动
工作量:集中在 fork 时设备后端重建,不需要重造轮子。
选择路径 B 的理由:
- Firecracker 已有成熟的 virtio 设备实现(blk、net、vsock、balloon)
- E2B 的 envd 可以直接复用(只要 Guest 内设备正常工作)
- 核心挑战是"fork 时如何重建 host 侧的设备后端",这是一个有限的工程问题
三步实现计划¶
Step 1:virtio-blk CoW overlay(文件系统)¶
目标:让 fork 出的 VM 有可写文件系统
技术要点:
- Fork 时,为每个 VM 创建一个 overlay 层(CoW 写入到独立文件)
- Guest 看到完整的块设备,写操作落到 overlay
- Host 侧需要重建 virtio-blk 后端:创建 overlay 文件 → 注册到 KVM ioeventfd/irqfd
- 关键:virtio 设备的 MMIO 地址和中断号必须与快照一致
预期效果:
- Fork 后 Guest 拥有独立的可写文件系统
- 可以在 sandbox 内安装包、写文件、运行复杂程序
- Fork 延迟预计增加 0.5-1ms(overlay 文件创建 + virtio 后端初始化)
工作量:~2-3 周
Step 2:vsock(Host↔Guest 高速通信)¶
目标:替代 Serial I/O,获得高带宽、低延迟的 Host↔Guest 通信通道
技术要点:
- vsock(virtio socket)是 Firecracker 原生支持的 Host↔Guest 通信方式
- 吞吐量远超 Serial(vsock 可达 Gbps 级,Serial 仅 ~115Kbps)
- Fork 时需要为每个 VM 分配独立的 CID(Context ID)
- Host 侧重建 vsock 后端:创建新 UDS (Unix Domain Socket) → 绑定 CID → 注册 ioeventfd
预期效果:
- 可以运行 envd 级别的 Guest Agent(文件传输、进程管理、PTY)
- 大文件传输不再受 Serial 瓶颈限制
- Fork 延迟预计增加 0.2-0.5ms
工作量:~2 周
Step 3:virtio-net(网络)¶
目标:让 sandbox 可以访问外部网络
技术要点:
- 为每个 fork 创建独立的 TAP 设备
- Host 侧配置 iptables NAT 规则(或使用 eBPF 做更高效的转发)
- virtio-net 后端重建:创建 TAP fd → 注册到 KVM → 配置 MAC 地址
- 网络隔离:每个 sandbox 独立的网络命名空间(可选)
预期效果:
- Sandbox 内可以
pip install、curl、访问 API - 支持 E2B 级别的网络功能
- Fork 延迟预计增加 1-2ms(TAP 创建 + iptables 规则)
工作量:~3 周
三步之后的效果¶
| 能力 | 当前 Zeroboot | Step 1 后 | Step 2 后 | Step 3 后 |
|---|---|---|---|---|
| 文件系统 | ❌ | ✅ CoW overlay | ✅ | ✅ |
| 通信带宽 | Serial (~115Kbps) | Serial | ✅ vsock (Gbps) | ✅ vsock |
| 网络访问 | ❌ | ❌ | ❌ | ✅ TAP + NAT |
| Guest Agent | init.c (极简) | init.c | envd 级别 | envd 级别 |
| Fork 延迟 | ~0.8ms | ~1.5ms | ~2ms | ~3-4ms |
| E2B 能力覆盖 | ~20% | ~40% | ~60% | ~80% |
即使完成三步后 fork 延迟增加到 ~3-4ms,仍然比 E2B 的 ~150ms 快 40-50 倍。
结论¶
Zeroboot 的核心价值¶
200 倍的启动速度优势不是渐进式改进,而是架构层面的质变。
当 VM spawn 从 150ms 降到 0.8ms,解锁了全新的使用模式:
- Agent 可以为每次函数调用创建独立 VM(而不是复用长期运行的 sandbox)
- 1000 个并发 sandbox 只需 70MB 内存(E2B 需要 ~128GB)
- "用完即弃"的无状态模型消除了状态管理和清理的复杂度
E2B 的核心价值¶
完整的产品化能力是 zeroboot 短期无法复制的护城河。
- 文件系统 + 网络 + PTY + Git + MCP = Agent 可以做任何事情
- Pause/Resume + Snapshot = 长时间工作流的状态保留
- Dockerfile 模板 + 多云部署 + SaaS 计费 = 开箱即用的生产环境
- 成熟的 SDK + CLI + 文档 + 社区 = 开发者体验
融合路线¶
最优策略不是二选一,而是融合两者的优势:
具体而言:
- 用 Zeroboot 的 mmap CoW fork 替换 E2B 的 UFFD snapshot restore——这是核心启动路径的替换
- 逐步补全 Firecracker 设备层——通过 virtio-blk / vsock / virtio-net 三步走
- 复用 E2B 的 Guest Agent (envd) 和 SDK——不重造上层轮子
这条路线的终态是:一个既有亚毫秒级启动能力,又有完整 sandbox 功能的 AI Agent 执行环境。
适用场景建议¶
| 场景 | 推荐方案 | 理由 |
|---|---|---|
| 高频代码执行(每秒数百次) | Zeroboot | 0.8ms spawn + 72KB/sandbox,成本极低 |
| 长时间 Agent 工作流 | E2B | Pause/Resume + 完整文件系统 + 网络 |
| 预算有限的小团队 | Zeroboot | $140/月单机 vs $1,260+/月集群 |
| 生产级 SaaS 部署 | E2B | 开箱即用,成熟运维体系 |
| 需要网络访问的 sandbox | E2B(当前) | Zeroboot 暂无网络支持 |
| 边缘/嵌入式部署 | Zeroboot | 单进程,资源占用极低 |