Easy
26-09-30 22:23 微博认证:AI博主

#Easy同学正在独立开发#

Cloudflare 把 Containers 重做了一遍,方向是给 Agent 当按需创建的沙箱用。最直观的是启动速度:ComputeSDK 的独立基准测试里(并发起 100 个沙箱,测客户端拿到 time-to-interactive),启动中位数从 4.049 秒降到 648 毫秒,快 6.2 倍,95 分位从 5.839 秒到 910 毫秒,99 分位从 6.717 秒到 1.129 秒。Cloudflare 自己的初步压测里,单个账号跨六个地点、5.387 秒起了 10 万个 Container。

以前 Containers 是围绕应用部署组织的:镜像和算力规格在部署时定死,换新的要走一次全应用 rollout,调度还得先过全局控制面解析配置、找容量、协调放置。这套机制适合跑应用级集群,但等于把部署流程放进了 Agent 第一条命令的路径里。镜像本身也要先下载、解包到宿主机文件系统,这部分时间同样算在用户的等待里。

新的 durable_object 调度策略把决定权下移到代码:在一个 Durable Object 类里声明多套镜像,任务来了再挑,调用 this.ctx.container.start({ image, instance, enableInternet: true }),其中 image 和 instance 都是运行时算出来的值。一个类可以同时起不同规格的 Node 和 Python 沙箱,加一套新环境是改代码,不是重新部署。它也顺带解决了一个痛点:以前更新镜像要设 grace period 让实例排空、按百分比切流量、调 API 推配置,平台来决定谁在什么时候被替换,不管 Agent 是不是正在干活。

灰度、固定版本、回滚因此都变成几行代码。可以按 Durable Object ID 哈希,让 5% 的新沙箱先跑新工具链;可以把进行中的任务钉在它启动时的镜像上,避免 Agent 在构建半途被换环境;可以在下一次会话或一次快照之后迁移;回滚就是改一下「以后新启动的用哪个镜像」。

剩下的大头是镜像准备。Cloudflare 新提供了官方系统镜像 cloudflare/debian-trixie,内容为 Debian Trixie Slim 加 Node.js 24.20.0 LTS,不用自己写 Dockerfile、构建、推送,起来之后用 exec() 克隆仓库、装依赖就行。因为镜像在 Cloudflare 手里,可以提前分发并解包到符合条件的宿主机上,启动时不必现场等下载。

文件系统快照也进了 public beta。容器可以把整个工作区存成快照,下次 start 时带上 containerSnapshot 恢复。两个用法:一是同一个工作区跨多次会话延续,编码 Agent 今天收工时存下来,明天直接接着做,仓库、装好的依赖、构建缓存、改动都在;二是快照不可变且可复用,可以让 N 个隔离沙箱从同一基线各自启动,跑 eval 对比不同模型或提示词时环境能固定住,结果差异才好归因。这两件事都建立在同一个设计上——每个 Container 都挂着一个自己的 Durable Object,现在它可以直接控制容器,中间不再隔一层包装类。

有几点要注意。快照只覆盖文件系统,评论区有人指出这个边界:从失败前的状态分叉出来试两种修法是很好用,但恢复文件系统不会撤销一封已经发出去的邮件,或者沙箱之外数据库的写入。

版本上,新的调度策略、更快启动、运行时选镜像和规格、文件系统快照都只通过原生的 ctx.container 提供;Container 类和 legacy Sandbox 类会维护到 2026 年 12 月 31 日,之后现有部署继续运行但不再更新,官方建议迁到 ctx.container,迁移通常就是把 extends Container 改成 extends DurableObject。Sandbox SDK 1.0 也从基类改成了一组配套的工具函数。整个 durable_object 调度策略目前仍是 public beta。

(由 流苏ªⁱ 撰写)

#Cloudflare##Agent#

发布于 法国