预热沙箱池:当每个智能体任务都拥有专属机器时的基础设施经济学
如果你在任何真实规模下运行编程智能体 (coding agents),你就拥有一支临时虚拟机舰队。你可能并没有主动申请这样做。但在你决定(且正确地决定)不信任的、由模型生成的代码绝不应该在应用程序的信任边界内执行的那一刻,这一切就发生了。每个任务都有自己的沙箱,每个沙箱都是一个微型虚拟机 (microVM) 或硬化容器。突然间,那个自以为在构建“智能体产品”的平台团队,实际上正在运营一些看起来非常像微型 AWS Lambda 的东西:池预热 (pool warming)、快照流水线、装箱调度器 (bin-packing schedulers),以及一个针对无人认领环境的清理进程 (reaper process)。
陷阱在于假设你的容器编排直觉可以无缝迁移。有些确实可以。但 Kubernetes 是为了调度长周期的、同质化的服务而设计的,而智能体沙箱恰恰相反:生命周期短、极度异构,且创建速度之快让部署滚动更新 (rollout) 看起来像是在悠闲散步。那些挣扎的团队往往将沙箱基础设施仅仅视为“步骤更多的容器”。有趣的工程挑战—— 以及几乎所有的成本——都集中在四个问题上:冷启动、文件系统状态、装箱密度和弃置。
为什么每个任务都拥有专属机器
“按任务隔离”模型之所以胜出,原因很简单:智能体是一个连接到执行循环的不受信任的代码生成器。OpenAI 的 Codex 在其专属云容器中运行每个任务,预装好代码库,任务完成后即销毁,且默认关闭网络访问。Anthropic 的云服务以及所有主流沙箱供应商——E2B、Daytona、Modal、Fly.io——都趋向于同一种形态:会话作用域、隔离、可丢弃。
共享环境会同时在两个方向上失败。安全性:模型生成的代码可能会执行 rm -rf、窃取凭据或破坏后续任务依赖的状态。正确性:两个智能体在共享环境中安装冲突的依赖版本,会产生无人能复现的故障。按任务隔离从结构上消除了这两类问题,这也是为什么现在没有严肃的开发者再对此表示异议。
但这将成本转移到了其他地方。一个每天处理 10,000 个智能体任务的服务,现在每天需要启动 10,000 台机器。这支舰队的单位经济效益——机器启动速度、每台机器闲置时的内存占用、装箱密度——都变成了产品层面的关注点。一个需要 30 秒才能完成配置的沙箱,是对每个任务征收的 30 秒“税收”,而那些为单个工具调用就启动沙箱的智能体循环,在每个会话中要支付几十次这种开销。
