Cloudflare 首席工程师介绍其新平台架构 —— Gadgets 像用 Google Docs 一样,但每个文档都是一个独立应用
- Cloudflare 首席工程师做了个新平台:应用像 Google Docs 里的文档一样,每人手里一份,不够用就让 AI 当场改。
- 敢把改代码这件事整个交给 AI,是因为两层沙箱关着,就算写出漏洞,数据也漏不出去。
- 他让 Claude 改幻灯片,Claude 嫌工具不够用,先给应用加了个人类几乎用不上的功能,再用它把图画完。
Cloudflare OS 是什么,Kenton Varda 为什么说云架构走错了
6 月 30 日的 AI Engineer 大会上,Cloudflare 首席工程师、Workers 的创造者 Kenton Varda 用 18 分钟说了一件事:他们脚下这层云计算的地基修错了方向,已经错了 25 年。
错在哪?今天的网页应用是一份代码跑给所有人,想改个按钮都没门。他做的 Gadgets 把这件事翻了过来:每人手里是自己那份完整应用,不够用就让 AI 当场改,改坏也只坏自己那份。8 月 5 日它以 Cloudflare OS 之名开源。
先说清楚 Cloudflare OS 是什么,不然后面的判断没有落点:
- 打开像一套办公套件:里面几百上千个「文档」,点开一个、编辑、分享给别人。区别是每个文档都是一个带代码的完整应用,各自的代码可以完全不同。
- 应用是让 AI 造的:一句提示就能出一个多人协作白板;不够用了再让 AI 接着改。
- 分享出去的是代码:把一个应用导出成 Blueprint 给别人,只带代码、不带你自己的数据;别人拿到后生成的是他那一份,之后各改各的。
- 权限归平台管:谁能看、谁能改由系统实现,应用本身碰不到这层,所以它没机会把权限搞砸。
- 除了大模型,全部跑在 Cloudflare Workers 上:没有容器,没有数据库,而且可以整套装进自己的机器。
软件行业的死循环:用户提了需求,几年后一个功能也没做出来
演讲开头没讲产品,讲了一段但凡在软件公司待过的人都经历过的事。
开发者做出一个应用发给用户。有人满意,有人说再加个功能才够用。用户去找开发者,开发者的代理人,产品经理,把需求收下,归档进 Jira,从此石沉大海。
偶尔某个需求产品经理自己也想要,于是进了路线图。开发者一个个实现,而这些功能每个只有一小撮人在用,每个都往代码里塞一堆 if 判断。代码越来越乱,功能越做越无聊。
然后开发者说:我们得重写,得有一套带插件系统的新架构,这样每个功能都能做成插件,核心就干净了。新架构开工,需求还在进来,回答变成「等插件系统好了就容易了,现在做等于返工」。
这段是整场演讲的地基。循环停不下来,跟谁努不努力没关系。根源是一份代码得照顾所有人的需求,而这个前提现在可以被推翻了。
让 AI 给每个人改软件,卡在两处:手机系统封闭,网页应用只有一个版本
如果用户需要新功能时,可以直接让自己的 AI Agent 写一个加上去,上面那圈就不用转了:每个人拿到自己要的功能,谁也不用被别人的需求拖累,开发者的核心代码还能保持干净。
那为什么这件事还没发生?因为今天造软件的地基,压根没往这个方向设计过。
网页确实绕过了苹果和 Google,而且并没有出现那两家天天吓唬人的安全灾难。但网页有自己的问题:过去 25 年的云架构,一直在往「一个钦定版本跑给所有用户」的方向跑。这对开发者方便,代价是用户永远改不了自己手里的东西。
Gadgets 的做法:像用 Google Docs 一样,但每个文档都是一个独立应用
别把它当成又一个 vibe coding 平台。更贴切的参照物是办公套件。
打开 Google Docs,里面几百上千个文档,点开一个、编辑、分享。这里一模一样,只不过文档换成了 gadget,而每个 gadget 是一个带代码的完整应用。
他收到很多西班牙语邮件但不懂西班牙语,于是做了个筛邮件的小工具;要盯 GitHub 上等他审的代码,于是做了个整理工具。这些东西谈不上产品,做出来就为了自己用,用完可能再也不打开。
Blueprint:把代码导出给别人,别人跑自己那一份
做了个觉得有用的 gadget,可以导出成 Blueprint 分享,导出的只有代码,不带数据。别人拿到后生成的是自己那一份,从此各改各的。
还有个设计细节值得说:一个 gadget 只对应一套幻灯片,要做三套就生成三个实例。这么设计是因为所有 gadget 都能分享协作,而分享和权限控制由平台实现,不归应用管,这样一来,应用本身根本没机会把权限搞砸。
Claude 为了画一张图,先给幻灯片应用加了一个人类用不上的功能
这场演讲的幻灯片,是同事 Phillip 做的一个幻灯片工具生成的。Phillip 是 Cloudflare 的产品经理,据他回忆,这工具是 Phillip 一个下午让 AI 做出来的。
Kenton 给 Claude 一个 Google 文档链接,里面写着想要的所有幻灯片,然后加了一句话。关键就在这句:
如果你需要给幻灯片应用本身加新功能,才能支持这些幻灯片,那你随便加。
演讲中复述的原始指令
Claude 真的加了。它读完应用的全部代码和那份文档,先补了两个小功能:第三页要删除线格式,应用里没有,加上;有几页文字要居中,Phillip 的设计品味看不上居中,但他想要,也加上。
最有意思的是第五、六页。他要一张随手涂的云的示意图,而这个应用只支持方框和箭头,画不了任意图形。Claude 的解法是:给应用加一个功能,让人能往幻灯片里粘一段 SVG。
「往幻灯片里粘一段 SVG」这个功能,对人类几乎没用,谁会手写 SVG。但对 Claude 太有用了,它接着就自己生成了那段图。
这一幕最能说明「个人化软件」到底是什么意思:软件从一件发下来的成品,变成了能在使用过程中当场改造的东西,哪怕动手改的是 AI。
敢让 AI 随便改代码的原因:两层沙箱关着,改坏了也漏不出数据
但是让 AI 随手往页面里塞 SVG,懂行的人第一反应会是:SVG 里能塞 JavaScript,这不就是个安全漏洞吗?
答案是无所谓,因为这个环境的搭法决定了它不要紧。
结果是这么个局面:一个 AI 写的界面,一个 AI 写的服务端,它俩只能互相说话,然后把界面呈现给你。就算里面真有漏洞,也没有任何东西能漏出去。
这段代码里不存在任何要紧的安全漏洞。
演讲原话,讲的是被沙箱关住的应用代码
这句话是整套设计成立的前提。正因为改坏了也不会出事,才敢把改代码这件事整个交给 AI。
现场演示报错,反而暴露出 Cloudflare OS 跑在演讲者自己的笔记本上
既然安全上说得通,那这套东西到底跑在哪儿?他现场演示时报了个错,答案反而露出来了。
他输了句提示词,让系统做一个「傻乎乎的计数器应用」,屏幕上跳出错误,会场网不通。他说没关系,然后揭了底:这一整套东西跑在他自己的笔记本上,所以断网不影响。
顺带说一句他的分量:Workers 今天有几百万开发者在用,每天扛下数万亿次请求,而这套地基正是他 2017 年加入 Cloudflare 时启动、至今仍在带的项目。
撑起这件事的是 workerd,Cloudflare Workers 的运行时,开源的,可以装在自己机器或服务器上跑。除了大模型要连出去,其余部分全部建在 Workers 上。
他对这件事的兴奋点很具体:系统里已经接了 Home Assistant 和 Spotify,他想把整套东西搬进自家地下室,拿来做家里的自动化。
原计划讲完就开源,演讲前一周被 CTO 拦下,五周后才放出来
那么什么时候能拿到手?演讲最后他为这件事道了个歉。
几个月前提交演讲提案时,这还只是个副业项目,计划是来现场讲一遍,讲完直接把代码甩上 GitHub,谁都能下载来玩。
但在演讲前的几周,Cloudflare 内部对它越来越热,它变成了一个正式项目。演讲前一周的周四,CTO Dane 把他叫进房间,说这东西别就这么甩出去,发布得更有章法,先压几周。
他挺郁闷,因为演讲摘要里已经承诺要开源了,只能在台上说:抱歉,今天开不了,但很快就会开。
这场演讲是 6 月 30 日。Cloudflare OS 在 8 月 5 日开源,中间压了约五周。
Cloudflare 把云架构重新搭了一遍,让每个人的软件都能被自己的 AI 当场改
Workers 创造者 Kenton Varda 一场演讲的核心判断,一页带图讲完
↓ 一页读完 · 有一张会动的图
6 月 30 日,Cloudflare 首席工程师 Kenton Varda 在 AI Engineer 大会上讲了一场演讲。他 2017 年加入公司时启动了 Workers,这套系统今天每天扛下数万亿次请求。这次他讲的是一个判断:一份代码要同时伺候所有用户,这条路已经走错了 25 年。他做的这套东西,当时叫 Gadgets,8 月 5 日以 Cloudflare OS 之名开源。
如果用户要新功能能直接让自己的 AI 加上去,上面那圈循环就不用转了。问题是,今天有两道墙挡着:苹果和 Google 守了 15 年,今天全球只剩五家公司还能做手机应用,他原话说,在美国,买把枪都比在自己手机上装个未签名的软件容易。网页绕开了第一道墙,却卡在另一个问题里:
一份代码跑在开发者的服务器上,所有用户连的是同一个版本,谁都没法按自己的需要调整。
每个人手里是自己那一份完整应用,不够用就让 AI 当场改,改坏也只坏自己这一份。
整套东西更像一套在线文档工具:点开的每个 gadget,都是能跑代码的独立应用。做好的可以把代码(不带数据)分享出去,对方生成的是自己那一份,各改各的;权限谁能看、谁能改由平台管,应用本身碰不到。
这场演讲的幻灯片,是他给 Claude 一个文档链接生成的,他多加了一句:如果需要给应用本身加功能才能实现,那就随便加。Claude 读完全部代码和文档,先补了删除线和文字居中。最有意思的是要画一张随手涂的云,这个应用原本只支持方框和箭头,画不出来。
SVG 里能塞 JavaScript,这不就是个安全漏洞?他的答案是不要紧,环境的搭法,决定了漏洞传不出去。
现场演示一个计数器应用时报错,会场断网。他说没关系,因为整套系统跑在他自己的笔记本上,靠的是开源的 workerd(Workers 的运行时,能装到别的机器上跑)。除了要连大模型,其余全部建在 Cloudflare Workers 上:没有数据库,状态存在专属的小份存储里(Durable Objects);没有常驻容器,靠的是临时开的隔离环境(Dynamic Workers)。
原计划讲完就把代码放上 GitHub。演讲前一周,CTO Dane 把他叫进房间,说发布得更有章法,再压几周。他在台上道了歉,说很快会开源,这场演讲 6 月 30 日,Cloudflare OS 8 月 5 日开源,隔了约 5 周。
纸条,一张接一张
一个功能也没上线
守了 15 年
发给所有人
改自己那份
全部代码
只有方框和箭头
「粘 SVG」这个功能
关在 iframe 里
关在另一个沙箱
也漏不出任何东西
压了约 5 周才放出来
变成能当场改的这份
