你的AI Agent每写一段代码,都需要一个地方跑它。这个地方在2026年已经成了一个独立产品品类:至少十家厂商、四种互不兼容的计费模式、一堆没人说得清测量条件的冷启动数字。ComputeSDK在8月21日跑了一轮开源基准,100次并发创建沙箱、测从`create()`到第一条命令返回的真实耗时。结果值得每个Agent开发者看一遍。
冷启动:厂商宣传页和真实并发是两回事
Daytona官网写着”90毫秒内创建沙箱”,E2B常被引用为150毫秒。这些数字来自串行创建。并发突发场景完全是另一张表:
| 平台 | 中位TTI | P95 | 成功率 |
| — | — | — | — |
| Daytona | 0.27s | 0.43s | 37% |
| Vercel Sandbox | 0.67s | 1.04s | 100% |
| Modal | 0.88s | 1.00s | 100% |
| E2B | 1.61s | 1.77s | 100% |
| Cloudflare | 5.06s | 6.04s | 100% |
Daytona跑出了全场最快的中位数,同时100次请求只成功37次。三分之二的调用拿不到中位数,这个数字描述的是容量,与延迟无关。任何平台的重试逻辑都不能省。
尾部延迟同样关键。Runloop中位数0.89s与Modal只差10毫秒,P95却是Modal的3.3倍。你的Agent用户体验预算如果定在1秒,中位数帮不了你。
Cloudflare的5秒来自架构:Sandbox SDK构建在Cloudflare Containers之上,每次都要调度容器、启动镜像,比恢复一个预热好的Firecracker microVM重得多。官方GA博客也很坦率:启动沙箱、克隆仓库、跑`npm install`约需30秒,从备份恢复同一环境约2秒。
计费模式比单价更重要
各家的牌价换算成统一单位后差异巨大。E2B和Daytona按墙钟计费,每vCPU小时0.0504美元。Vercel和Cloudflare只对活跃CPU收费。Modal按物理核计价,每核时0.1419美元,Sandbox档位是标准Function费率的3倍,区域选择还要再乘1.5到1.75。
固定负载算总账更有说服力。2 vCPU/4 GiB沙箱、1000次执行:
场景A:短任务,存活90秒,平均CPU占用50%
| 平台 | 每1000次成本 |
| — | — |
| Northflank | $1.67 |
| Cloudflare | $3.70 |
| E2B / Daytona | $4.14 |
| Vercel | $5.32 |
| Modal | $5.95 |
| Runloop | $7.92 |
场景B:真实Agent循环,存活10分钟,平均CPU占用5%
沙箱开着,模型在思考,CPU在空转。这就是Agent的日常形态。
| 平台 | 每1000次成本 | 相比场景A |
| — | — | — |
| Northflank | $11.11 | 6.7x |
| Cloudflare | $13.87 | 3.7x |
| Vercel | $16.27 | 3.1x |
| E2B / Daytona | $27.60 | 6.7x |
| Modal | $39.66 | 6.7x |
| Runloop | $52.80 | 6.7x |
同一个负载,最贵与最便宜差出14倍以上。Vercel从第4名升到第3名,靠的是活跃CPU计费——CPU线从3.20美元降到2.13美元,别家全部线性上涨。这就是活跃计费的价值,在空闲型负载上约值2倍。
挂起恢复:省钱的另一半
按墙钟计费的平台也能翻盘,前提是你的编排层在两轮之间挂起沙箱。每轮只醒30秒的话:E2B约2.16美元(4 GiB内存暂停开销约17秒)、Fly Sprites约2.62美元、Runloop约2.64美元。暂停与唤醒的开销是决定性变量,两轮间隔必须明显长于暂停本身才划算。
Fly的空闲检测器定义了什么算活跃:飞行中的HTTP请求、stdout输出、打开的TCP连接、运行中的任务。Agent握着连接等待,就会一直被计费。把输出重定向到文件不算活跃,这是一个真实的省钱杠杆。
文件持久化:三个坑
E2B的`onTimeout`默认值是`kill`,超时直接杀掉沙箱且没有关机信号,没保存的工作全部丢失。想保留状态必须在创建时就写`lifecycle: { onTimeout: ‘pause’ }`。
Cloudflare的容器实例睡10分钟后重启,磁盘重置为镜像初始状态。备份恢复到R2今天可用,自动跨会话磁盘快照仍在推出中。
Daytona按沙箱类型分两套规则:容器型支持跨stop/start保留文件系统但不支持暂停,内存每次清空;Linux VM型两者都支持;GPU型是一次性的,结果必须写到卷上。
出口策略与凭证注入
所有平台都能默认断网。细节差异藏着陷阱。E2B里allow规则优先于deny,一个IP同时出现在两个列表里会被放行;Vercel恰好相反,deny压过allow。把策略从一个平台原样搬到另一个,含义已经变了。
E2B还有一个反直觉行为:被防火墙拦截的TCP连接在沙箱内部看起来是成功的。防火墙先接受连接再判断目的地是否放行,socket打开了,包永远到不了。验证断网要用HTTP状态码或TLS握手,用连接成功与否做断言的测试套件会给出假阳性。
真正的分水岭是凭证注入。Cloudflare的出站处理器运行在Workers运行时里,沙箱只发普通请求,secret由外部处理器附加,凭证从不进入沙箱。Vercel在主机侧代理出口流量并按路径、方法、请求头匹配注入凭证,防火墙跑在microVM之外,沙箱代码碰不到它。一个环境变量里放着GitHub token的Agent被提示词注入,与一个只能通过持token代理访问GitHub的Agent,是两种完全不同等级的事故。
选型结论
Agent大部分时间在等模型、少部分时间在算,选Vercel或Cloudflare的活跃CPU计费。需要每会话内核级隔离对抗恶意代码、要跨轮次保留内存状态、要自托管路径,选E2B,Pro版每月150美元起。持久化是核心需求且能承受容量波动,选Daytona,它的stop/archive/pause/fork生命周期最完整,fork一个内存完整的运行中VM在别处没有对等物。工作流碰到GPU,Modal是唯一在沙箱内提供T4到B300完整费率卡的平台。已有应用跑在Workers上、出口安全模型比冷启动重要,选Cloudflare,按会话持有沙箱,按调用创建会被5秒中位数拖垮。
基准数据每月都在变。厂商页面的”亚百毫秒”描述的是串行创建,Agent产生的是并发突发。用自己的真实负载各跑100次串行加100次并发,中位数和P95分开报,这笔测试时间的投入,比选错平台后付出的账单便宜得多。
苏公网安备32010502011527号
发表回复