AREX Feed Article
十年旧梦 Sandstorm 借 AI 重生:Cloudflare OS 想终结 SaaS
人人都在造聊天框,但软件不该长这样
就在 Cloudflare OS 发布前一天,Mario Zechner(@badlogicgames,65K 粉丝的知名开发者)在 X 上发了一条简短的吐槽:"so everybody is building chatboxes with connectors now." 不到 24 小时后,他转发了 Kenton Varda 的 Cloudflare OS 公告,并为这条推文配上了两张产品截图——这是罕见的正面信号,毕竟 Zechner 以毒舌著称。
Kenton Varda 显然知道自己在做什么。他的公告第一句就是自嘲:"Today we are releasing Cloudflare OS, a chatbot with connectors, just like every other tech company is doing." 然后用 "Except actually, it's different" 直接转入正文。
这不只是 "different"。Cloudflare OS 的根本设计,挑战了过去二十五年 SaaS 模式的基本假设:软件为什么必须是集中式的?为什么你用的文档编辑器、项目管理工具、数据看板,代码跑在别人服务器上,你不能碰它?
你的软件,你自己改
Cloudflare OS 的核心主张可以用一句话概括:每个用户都跑自己的应用副本,AI 可以随时帮你改它。
这个机制叫 "Gadget"——一个细粒度的应用实例。如果你有一个文档编辑器,每个文档都是一个独立的 Gadget,跑在独立的沙箱里。平台管理所有访问控制,一个 Gadget 不可能意外把数据泄漏给攻击者——即便攻击者能访问基于同一个应用的其他 Gadget。
这带来了两个后果。Kenton Varda 认为两者都是 "Big Deals":第一,安全是平台级别保证的,不用每个开发者自己搞定;第二,因为每个人跑自己的代码副本,每个人都可以自由修改它。想要一个新功能?直接让 agent 加上。
"这不能用在云 SaaS 模型里,"Varda 写道,"因为你不是在跑自己的应用副本。" 十年前 Sandstorm 试过改变这一点,但世界还没准备好——没足够多的人有技能或耐心去真正修改自己的软件。"AI 改变了这一点。现在你只需要让 agent 去做。"
一个十年前失败的想法,AI 让它活了
Cloudflare OS 的技术架构可以拆成三层:Gadgets(沙箱化应用实例)、Gatekeepers(能力安全层)、以及 Workers 基础设施(运行这一切的底层引擎)。
Gadgets:比 Docker 更轻的隔离
传统 agent 沙箱方案主要有两条路。一条是 OS 级原语,比如 macOS Seatbelt 或 Linux bubblewrap/namespaces——Cursor 和 Claude Code 的沙箱基本是这个思路,限制命令执行和文件访问,但隔离粒度最多到会话或工作区级别。另一条是 Docker 容器,提供完整环境但启动开销大,显然不适合"每个文档一个沙箱"这种细粒度场景。
Cloudflare OS 用 V8 Isolates 实现了更极端的隔离。每个 Gadget 在它自己的 Dynamic Worker Facet 中运行,拥有独立的 SQLite 数据库,与平台运行时完全隔离。服务器端代码在禁用了所有出站网络的 Dynamic Worker 中执行,客户端代码在浏览器的沙箱化 iframe 中运行。两者都不能接触互联网,除非通过用户显式授予的能力。
这意味着什么?用 Varda 的话说:"AI 无法引入一个重大的安全漏洞。" 一个公司的安全团队可以安心让非技术用户随意 vibe coding,然后晚上睡个好觉。
Gatekeepers:比 MCP 更进一步的能力安全
MCP(Model Context Protocol)让 agent 可以调用外部工具,但它只控制 agent 能调哪些工具。MCP 不会告诉你 agent 已经观察了哪些底层资源——agent 可以跨系统组合信息,把它送到限制更少的地方,或者通过共享的应用和输出暴露给本不该看到原始数据的人。
Cloudflare OS 的 Gatekeeper 系统用能力安全(capability-based security)解决了这个问题。一个 Gatekeeper 是面向特定外部服务的 Worker,它:
- 理解这个服务的 API、资源和操作
- 持有凭证,处理 OAuth,执行策略
- 只授予对特定资源的访问——比如一个 GitHub repo 而非整个账户,允许读 issue 禁止读源码
- 记录 agent 读过的每一笔数据,这些"观测"会永久附着在 agent 的工作成果上
- 对任何有外部副作用的操作要求人类审批
最后一点有一个巧妙的实现:当 agent 执行一个需要审批的操作时,Gatekeeper 不会让 agent 停下来等。它会模拟操作结果,让 agent 继续推进,把待审批的操作排队。用户可以等 agent 完成整个任务后,再来批量审批。Varda 希望这个设计能消除用户开启 "auto-approve" 的冲动。
观测日志还有一个关键用途:当另一个人试图打开 workspace、与 agent 交互或查看它产出的内容时,Gatekeeper 会检查那个人对 agent 已观测资源是否有访问权限。读了一个敏感数据仓库表然后用它生成实时看板?分享看板不会变成一种绕过权限读取原始数据表的途径。
为什么只有 Workers 能撑起这个架构
Cloudflare OS 大量使用了 Workers 生态中的几个前沿特性:Durable Objects、Dynamic Workers、Facets。Dynamic Workers 和 Facets 这两个特性,实际上是 Workers Runtime 团队专门为 Cloudflare OS 添加的。
每个 workspace 是一个 Durable Object,每个 Gadget 跑在一个 Dynamic Worker Facet 中,Gatekeeper 也会往每个 workspace 中安装 Facet 来管理对远程服务的访问。客户端和服务器之间通过 Cap'n Web RPC 通信——这也是 Kenton Varda 自己的作品(他同时是 Cap'n Proto 的作者)。
这意味着 Cloudflare OS 本身就是 Workers 平台的"终极演示"——由建造 Workers 的人,用 Workers 最前沿的特性,造了一个给 Workers 用的平台。整个项目 Apache 2.0 开源,可以部署在自己的 Cloudflare 账户上,也可以完全自托管在开源 Workers Runtime(workerd)上。
Workers 之父的十年执念
Kenton Varda 的身份标签可以列很长:Cloudflare Workers 技术负责人、Cap'n Proto 和 Cap'n Web RPC 作者、Sandstorm.io 创始人、前 Google 工程师(参与 Protocol Buffers 开发)。但理解 Cloudflare OS 的关键,在于那条 Sandstorm 的时间线。
2015 年前后,Sandstorm 试图用同样的"细粒度沙箱 + 用户自有副本"模型重新思考个人计算。它做对了所有技术上的事——V8 Isolates 级别的隔离、基于能力的访问控制、每个文档跑一个独立实例。但它死于市场时机:没有足够多人愿意或能够修改自己的软件。十年后,AI agent 消灭了这个障碍。
Varda 在推文中毫不掩饰这种个人情感:"This is more or less the culmination of my secret 10-year master plan."
但 Cloudflare OS 不是一个个人项目。它的 v1 版本由 Sam Rhea(Cloudflare CIO)和 LakeAustinBlvd、dcarter_js 等人主导开发,聚焦于为企业提供 agent 工作环境和共享上下文。v2 才把 Gadgets 架构——Sandstorm 的思想续作——整合进来。Varda 用了一个微软类比:v1 是 Windows 95(UX 革命),v2 的内核是 NT(安全架构)。两者约一个月前合并,现在 release 的是 NT 4 阶段,正在朝 Windows 2000 和 XP 努力。
GitHub 仓库的代码贡献记录显示核心团队规模不大但集中:Kenton Varda(376 次提交)、Phillip Jones(85 次)、bjesus(62 次),以及若干来自 Cloudflare 内部的其他贡献者。自 5 月起,Cloudflare 内部已有数千名员工——跨越工程、销售、市场等各个职能——每天都在使用这个平台。
Cursor 和 Claude Code 没解决的那个问题
把 Cloudflare OS 和现有的 AI 编码/agent 工具放在一起比较,差异点很清楚。
Cursor 和 Claude Code 的沙箱模式本质上是在一个会话或工作区范围内限制文件系统和命令执行。它们能阻止 agent 删你的 ~/.ssh,但你没法给 agent 一个文档编辑器,保证它不会把文档内容泄漏出去——因为没有那个层面的隔离。这些工具的设计前提是一个人在一个会话里干活,而不是"一个组织里几百人每人每天创建几十个 AI 生成的小应用"。
Docker 沙箱更接近全隔离,但每个容器启动和资源开销太大,撑不起"每个文档一个实例"的细粒度要求。
Jason Kincaid(前 TechCrunch 记者、前 Cloudflare 员工,22.5K 粉丝)在引述推文中写道:"Kenton is an engineer's engineer. If anyone can solve for the dizzying complexity of AI sandboxing + access control + custom applications — this is the team to do it."
争议也存在。@mycoliza(oxidecomputer,22.5K 粉丝)的评论只有一句"not an operating system",获得了 92 个赞和 5 条回复。@pgattic1 更是直接喊话:"STOP CALLING RANDOM THINGS OPERATING SYSTEMS"。但 Cloudflare OS 的 README 对命名有认真的辩护:它不是传统计算机操作系统,而是"公司的操作系统"和"AI 工作负载的操作系统"——类比非常具体,从 kernel 到 device driver 到 shell 到 process 都有对应。
也有人看到了更大的图景。Steve Farnworth(前 Spotify 产品经理)写道:"this is basically how I've been imagining 'the death of SaaS'." Robert Chandler(Wordware 创始人兼 CTO)则表示:"Very bullish on this," 并透露他的公司也在同样的基础设施原语上构建平台。
不是所有反馈都是正面的。@jjjrmy 抱怨产品体验"可能是他用过最差的东西"——概念 cool 但产品团队搞砸了。考虑到项目明确标注 "early access" 且坦承 "still has many rough edges",这种反馈并不意外。
SaaS 不会死,但它的统治可能就此松动
Cloudflare OS 不会明天就让 Salesforce、Figma 或 Notion 关门。它是一个开源项目,标记为早期版本,没有托管的在线版本,需要你自己部署。Kenton Varda 在推文中坦诚:"We weren't quite ready to launch this yet."
但开源本身就是一个声明。Varda 的解释很直接:"If we didn't, someone else would just slop-clone it." 更深层的原因是:Cloudflare 认为每个公司都会想运行自己的实例,连接自己的内部服务,做自己的定制。Cloudflare OS 是 Cloudflare 运行的实例,但"你的实例才是你的 AI 操作系统"。
这个判断值得认真对待。如果 AI 真的让"每个人都修改自己的软件"从疯狂变成了日常——如果那个 Sandstorm 十年前押注的世界终于到来了——那么我们今天熟悉的 SaaS 模式确实会出现裂缝。不是被替代,而是被补充:那些不需要全公司统一标准化的工作,那些"我就想要一个小工具帮我做这件事"的场景,那些安全团队不敢给 API 密钥但又确实需要这个功能的时刻。
Kenton Varda 等了十年。AI 终于来了。
参考链接:
- (Apache 2.0)