Cloudflare Containers 重构,以扩展智能体沙箱
内容提要
Cloudflare重构Containers以适配AI智能体沙箱,新增durable_object调度策略,支持运行时选择镜像和实例类型,启动速度提升6倍(中位数从4秒降至648毫秒),并开启文件系统快照公测,可保存和恢复工作区。同时推出预置Debian系统镜像,简化环境配置。
延伸解读
从部署时配置到运行时决策
过去,Cloudflare Containers 的镜像和实例类型在部署时固定,每个组合都需要单独的应用和命名空间。新的 durable_object 调度策略允许代码在启动沙箱时动态选择镜像和实例类型,这意味着基础设施配置变成了请求时执行的代码。对于需要为不同任务提供不同环境的智能体来说,这减少了预先部署的复杂性,使环境创建更加灵活。
启动速度提升的实际影响
根据 ComputeSDK 的独立基准测试,新调度策略将容器启动中位数从 4.049 秒降至 648 毫秒,提升约 6.2 倍。对于交互式智能体,启动时间直接关系到用户等待时长。更快的启动意味着智能体可以更频繁地按需创建沙箱,而不会显著影响用户体验。此外,初步测试显示单账户在 5.387 秒内启动了 10 万个容器,表明新路径在高并发下也有较好表现。
文件系统快照与工作区持久化
新增的文件系统快照公测允许保存和恢复容器工作区。智能体可以在任务暂停时保存环境,包括仓库、依赖和构建缓存,并在后续会话中恢复,避免重复设置。快照不可变且可复用,因此可以从同一基线启动多个隔离环境,适用于评估或强化学习场景,确保环境一致性。快照与预置的 Debian 系统镜像结合,可进一步减少启动前的准备时间。
迁移注意事项与 API 变化
新功能仅通过 ctx.container 原生 API 提供,原有的 Container 类和旧版 Sandbox 类将维护至 2026 年 12 月 31 日,之后不再更新。现有部署仍可运行,但建议迁移到 ctx.container。Sandbox SDK 1.0 变为工具集而非基类,迁移通常涉及将 extends Container 改为 extends DurableObject 并直接调用 this.ctx.container。开发者需注意这一变化,以利用新调度策略、快照和运行时配置能力。
Q&A
Cloudflare Containers 这次重构主要针对什么场景?
主要针对 AI 智能体沙箱场景。智能体不会提前部署沙箱,而是按需为每个任务创建沙箱,期望立即就绪,并能暂停和恢复。因此 Cloudflare 重新架构了 Containers,使其更可编程并针对智能体工作负载优化。
新的 durable_object 调度策略让开发者能在运行时控制哪些配置?
开发者可以在运行时选择每个沙箱的镜像和实例类型。镜像和实例类型现在是代码在启动沙箱时传入的参数,不再需要在部署时锁定。
Cloudflare Containers 启动速度提升了多少?
根据 ComputeSDK 的独立基准测试,中位数启动时间从 4.049 秒降至 648 毫秒,提升约 6.2 倍;95 分位从 5.839 秒降至 910 毫秒,提升约 6.4 倍;99 分位从 6.717 秒降至 1129 毫秒,提升约 5.9 倍。
文件系统快照功能有什么作用?
文件系统快照目前处于公开测试阶段,允许智能体在准备好的环境中开始任务,在任务暂停时保存工作区,并在会话恢复时还原这些文件。快照是不可变且可复用的,因此多个容器可以从同一份准备好的环境独立启动,各自进行修改。
Cloudflare 新推出的预置系统镜像是什么?它有什么好处?
新推出的是 cloudflare/debian-trixie,一个即用型系统镜像,包含 Debian Trixie Slim 和 Node.js 24.20.0 LTS。智能体无需先创建 Dockerfile、构建镜像或推送到 Cloudflare,即可启动 Linux 沙箱,之后可以用 exec() 克隆仓库、安装包并配置环境。
Durable Object 在 Containers 架构中扮演什么角色?
每个 Container 都附带一个 Durable Object,它是一个持久、可编程的控制器,运行在 Container 旁边,管理其生命周期、出站流量等。新的 durable_object 调度策略让 Durable Object 可以直接控制其 Container,无需中间包装类,使 Container 成为 Durable Object 的计算扩展。
旧的 Container 类和 Sandbox SDK 会怎样?
Container 类和旧版 Sandbox 类将维护到 2026 年 12 月 31 日。现有部署在该日期后仍可运行,但类不会获得更新。建议迁移到 ctx.container。Sandbox SDK 1.0 是一组实用工具,而不是基类,其辅助函数可在你自己的 Durable Object 类中与 ctx.container 一起使用。