@KentonVarda:今天我们发布 Cloudflare OS,一个带连接器的聊天机器人,和其他科技公司做的一样。只不过实际…
摘要
Cloudflare 正在发布 Cloudflare OS,一个基于 Cloudflare Workers 构建的开源 AI 生产力环境,具有称为 Gadgets 的细粒度沙箱化应用实例和称为 Gatekeepers 的安全框架。它复兴了 Sandstorm 安全模型,让非技术用户能够安全地修改和分享 AI 生成的应用。
查看缓存全文
缓存时间: 2026/08/05 18:31
今天我们要发布 Cloudflare OS,一个带连接器的聊天机器人,就跟其他所有科技公司做的一样。
但其实,它确实不一样。这是对我 10 年前创业项目 Sandstorm[.]io 的重制,只不过这次是构建在 Cloudflare Workers(我过去 9 年一直在打造的平台)之上,并且深度利用 AI。这差不多就是我秘密的 10 年大计的高潮。
这是一个完完全全的“个人应用 vibe coding 平台”,它的沙箱安全到你可以几乎为所欲为——AI 无法引入严重的安全漏洞。我们相信,一个公司的安全团队可以放心地让非技术用户去 vibe code,然后晚上睡个好觉。
这怎么可能?这就是 Sandstorm 的安全模型,重新审视后的版本。一个“Gadget”和 Sandstorm 的“Grain”是一回事:一个细粒度的应用实例。比如说,如果你有一个文档编辑器应用,每个文档都作为该应用的一个独立实例运行,各自在独立的沙箱中(一个“Gadget”)。
这意味着两件事,我认为这两件事都很重要:
- 平台可以管理所有访问控制,通过控制谁能访问这个 Gadget 来实现。Gadget 没有任何办法意外地把自己泄露给攻击者——即使是能访问基于同一个应用的其他 Gadget 的攻击者也不行。
- 既然每个人都在运行自己的代码副本,每个人都可以自由地修改自己的代码副本。
再想想第 2 点。
如果你正在使用的软件缺一个新功能,而你可以直接让你的 agent 把它加上,会怎样?
这在云端的“软件即服务”模式下是行不通的,因为你不是在运行自己的应用副本。
Sandstorm 10 年前试图改变这一点,但世界还没准备好,因为当时没有足够多的人有技能或耐心去真正修改自己的软件。AI 改变了这一切。现在你只需要吩咐 agent——那个你用来帮你与 Gadget 交互的 agent,同样也可以修改 Gadget 的代码。
而且这非常有趣。
cloudflare/cloudflare-os
源代码:https://github.com/cloudflare/cloudflare-os
Cloudflare OS:一个 AI 生产力环境
Cloudflare OS 是一个“操作系统”,专为 AI 生产力而设计,最初是为 Cloudflare 内部使用而开发的。Cloudflare 的很大一部分员工——从工程到销售以及所有中间岗位——每天都使用 Cloudflare OS 来帮助他们完成工作。
Cloudflare OS 中的一个 Q3 规划工作区,带有一套 AI 生成的幻灯片
这不是传统意义上的计算机操作系统。我们在两种意义上使用“操作系统”这个词:
- 一个供公司安全、高效地使用 AI 的“操作系统”,让安全团队能睡个好觉。
- 一个供 AI 工作负载使用的“操作系统”,类似于传统操作系统管理计算工作负载的意义。
Cloudflare OS 特别提供了三样东西:
- 一个 agent 聊天界面,你可以让 agent 执行任务,并且预载了关于你公司运作方式的知识。
- 沙箱化的应用开发,这样你可以让 agent 构建“gadget”(小型个人应用),并安全地与他人分享你构建的东西。
- 一个名为 Gatekeepers 的安全框架,为 agent 和应用都加上护栏,让非技术用户能安全地“尽情折腾”,而不会出任何坏事。
我们将 Cloudflare OS 开源,这样其他人可以复制它并根据自己的公司进行定制。这个想法不是让你的公司使用 Cloudflare OS,而是让你把它变成“你的公司 OS”。
快速开始
要在本地快速运行 Cloudflare OS,请安装 pnpm(https://pnpm.io/),然后运行:
pnpm run-local
然后访问:http://localhost:8787
这会在 wrangler 和 workerd 上于本地运行整个技术栈。这不适合生产环境使用,但能让你快速了解这个产品能做什么。
或者,你可以部署到自己的 Cloudflare 账户(https://os.cloudflare.app/deploy)。
(更多选项请参见本 README 末尾。)
可以试试什么
试试这些提示词:
- “为我和客户的即将到来的会议做一套幻灯片。”(这会使用内置的幻灯片 blueprint。)
- “做一个协作白板应用。”(这会从零开始创建一个新应用。)
- “做一个井字棋游戏。”然后说“我执 X,你执 O。我已经走了第一步。轮到你了。”
- “为这个 GitHub 仓库做一个 issue 看板。”(附加一个仓库;需要配置好 GitHub 集成。)
- “修正这个 Google Doc 里的拼写错误。”(附加一个文档;需要配置好 Google 集成。)
警告:早期访问
Cloudflare OS 正处于密集开发阶段。这个仓库实际上是第 2 版,是从第 1 版的经验教训出发、在全新基础上完全重写的结果。
截至 2026 年 8 月这个版本,Cloudflare OS v2 已经相当强大,但仍有许多粗糙之处。我们知道,也正在努力改进。目前,请把它看作一个“早期访问”版本。
概览:Cloudflare OS 到底是什么?
Gadgets:一种全新的软件思考方式
Cloudflare OS 不仅仅是一个带连接器的聊天框。整个系统围绕一种新的软件方法展开:每个用户都运行自己使用的生产力应用的一份副本。
当你在 Cloudflare OS 中创建一套幻灯片时,你并不是在调用云端运行的某个 SaaS 软件。系统会专门为你创建一个私有实例的幻灯片软件。我们称之为“gadget”。这个实例运行在与其他人的幻灯片完全隔离的沙箱中。
这带来了两个深远的影响:
- 幻灯片应用不可能存在一个把幻灯片泄露给攻击者的安全漏洞。Cloudflare OS 沙箱控制着对你应用私有实例的所有访问。
- 如果你愿意,你可以自由地修改代码。如果幻灯片应用缺少你需要的功能,你只需请你的 agent 加上它。而且因为第 1 点,这样做是完全安全的。
这是对过去 25 年云架构和“软件即服务”模式的重大背离,但我们认为 AI 已经改变了这个等式。当任何用户都能通过提示让 agent 添加他们需要的功能时,中心化的软件模式就不再合理了。
Gatekeepers:基于能力的安全层
Gatekeepers 就像超级增强版的 MCP 服务器。
当你把一个 agent 或 Gadget 引入到外部资源时,系统会创建一个 Gatekeeper 来管理该访问。Gatekeeper 是每个外部服务专属的一段软件,负责调节 Gadget 与该服务的连接。它:
- 为该服务提供一个干净的 Cap’n Web API(包装该服务原生提供的任何 API)。
- 处理授权(例如通过 OAuth)。
- 强制只允许访问用户原本意图访问的那一个特定资源,范围非常窄。
- 记录 Gadget(或 agent)执行的每一个操作,供你审查。
- 对于任何有副作用的操作,给人类用户一个批准或拒绝的机会(“人在回路中”)。
关于最后一点,Gatekeepers 实现了业内的一项重大进步。传统上,人在回路中的设置要求人类同步批准操作。当 agent 想做某事时,它必须停下来等待批准才能继续。这很烦人:你给 agent 布置了一个任务,然后走开去喝杯咖啡,回来却发现 agent 卡在第一步的批准上毫无进展。因此,人们常常妥协,把 agent 设置为“自动批准”,或者用 --dangerously-skip-permissions,这显然是不安全的。
Gatekeepers 提供了一种更好的方式:当 agent(或 Gadget)执行需要批准的操作时,Gatekeeper 会在本地模拟结果,让 agent 继续前进并排队更多操作。Gatekeeper 告诉 agent 操作已完成,如果 agent 试图读回结果,Gatekeeper 会给它模拟的结果。一旦 agent 完成工作,用户可以批量批准或拒绝这些操作,也可以逐个处理,但无论哪种方式,他们都可以稍后在自己方便的时候再处理。
在工程实现上,每个 Gatekeeper 都是一个独立的 Worker。未来,我们设想 Gatekeeper 服务可以独立于 OS 实例进行部署和维护,但细节还有待敲定。目前,我们在本仓库中提供了一些有趣的 Gatekeeper,你可以将它们与自己的 OS 实例一起部署。
想象一下办公套件
Cloudflare OS 的基本用户体验类似于在线办公套件,比如 Google Docs 或 MS Office。但想象一下,不是一组固定的文件类型(文档、表格、幻灯片),而是每个文件——或者说“Gadget”——都可能是它自己定制的应用程序,由 AI 编写,恰好满足你的需求。
就像办公文档一样,每个 gadget 默认是私有的,但也可以——安全地——共享,以便与你的团队或朋友协作。
就像办公文档一样,你可以有成千上万个。你可以一时兴起就创建它们。
就像办公文档一样,你可以从“模板”——也就是“Blueprints”——开始。但办公模板只是一些内容,而 Blueprint 定义的是一个完整的应用程序。
就像办公文档一样,你可以从自己的文档(Gadget)创建新模板(blueprint)并与他人共享。但当你这样做时,你共享的是一个完整应用的代码。
它确实可以说是一个操作系统
“OS”这个说法并不完全是营销话术。Cloudflare OS 在技术层面上确实与操作系统类似。
| 普通 OS | Cloudflare OS |
|---|---|
| 内核 | packages/workshop-backend |
| 设备驱动 | packages/gatekeeper-* |
| shell | packages/workshop-frontend |
| 进程 | gadgets |
| 可执行文件 | blueprints |
| 用户 | users |
| ACL | shared permissions |
| ??? | agents |
我们的“内核”在 workshop-backend 包里。这个后端确实做了很多类似于真实操作系统内核的事情:它把用户连接到程序和设备(我们称之为 Gadgets 和 Gatekeepers),同时通过沙箱化应用和实施访问控制来实现安全。
在这个类比中,Gatekeepers——把用户和 agent 连接到外部服务——就像驱动程序——把用户和程序连接到外部设备。
有一件事是传统操作系统如今并不真正管理的,但 Cloudflare OS 管理了:AI agent。如果你想一想,这其实是传统操作系统真正缺失的一项功能。我们相信,AI agent 不能简单地被当作普通用户来对待。它们必须对某个人类用户负责,同时又要有自己受限的权限。Agent 通过编写代码片段并即时执行来工作。对这一切来说,理想的安全模型是基于能力的安全,而不是访问控制列表。明白我的意思了吗?也许传统操作系统也应该给 AI agent 特殊待遇。
由 Workers 团队构建,跑在 Workers 之上
Cloudflare OS 构建在 Cloudflare Workers 之上(https://workers.cloudflare.com),特别重度使用了 Durable Objects(https://developers.cloudflare.com/durable-objects/)、Dynamic Workers(https://blog.cloudflare.com/dynamic-workers/)和 Facets(https://blog.cloudflare.com/durable-object-facets-dynamic-workers/)。每个工作区都是它自己的 Durable Object,每个 Gadget 都运行在一个 Dynamic Worker Facet 中,而 Gatekeepers 也会向每个工作区安装 facets 来管理对远程服务的访问。
事实上,Cloudflare OS 正是由构建 Workers 的那批人自己打造的。它使用了 Workers Runtime 的前沿特性——实际上,Dynamic Workers、Facets 以及若干其他特性被加入运行时,正是为了支持 Cloudflare OS,未来还会有更多。研究 Cloudflare OS 的源代码,是理解 Workers Runtime 团队认为 Workers 应该如何被使用的一个绝佳方式。
构建在 Workers 之上并不意味着 Cloudflare OS 只能跑在 Cloudflare 上。事实上,workerd——也就是 Cloudflare Workers Runtime——本身也是开源的(https://github.com/cloudflare/workerd),Cloudflare OS 可以完全运行在你自己服务器上的 workerd 之上。
功能特性
通用多用途 agent
Cloudflare OS 的编程 agent 实际上是一个完全多用途的 agent,可以执行任意任务;和其他流行的编程 agent 一样,你不一定非要拿它来写代码。你可以用它构建 Gadget,但也可以跳过 Gadget,直接让 agent 执行任务。Cloudflare OS agent 是一个 Code Mode(https://blog.cloudflare.com/code-mode/)agent——它通过编写并立即执行代码片段来完成任务。它可以借助 Gatekeepers 连接到外部资源(类似 MCP——见下文)。
用 AI 构建应用
虽然如果你愿意,也可以手写 Gadget 代码,但预期的使用方式是让 AI 来为你写代码。Cloudflare OS 内置了一个编程 agent,可以构建你要求的任何东西,为你测试它,并调试错误。
你可以选择自己的 LLM。Cloudflare OS 支持许多主流 AI 模型提供商和自托管模型,而且支持范围还在不断增加。
由于这个平台高度集成且简洁,即使使用相同的底层 AI 模型,Cloudflare OS 的编程 agent 往往比通用编程 agent 用更少的 token 表现更好、速度更快。
与 AI 协作
每一个用 Cloudflare OS 构建的应用都自动拥有一个对 agent 友好的 API。这意味着,在你让 AI 构建完应用之后,你还可以让 AI 在应用内部与你协作。无需构建 MCP 服务器,也无需集成自定义的 agent 循环。默认就有。
这之所以可行,是因为 Gadget 的客户端和服务端部分被要求必须通过 Cap’n Web RPC(https://github.com/cloudflare/capnweb)进行通信。这是双赢:
- Cap’n Web 的样板代码极少,这让 agent 很容易使用。你基本上只需在服务器上定义一个方法,然后从客户端调用它,就像本地调用一样。
- 同时,这意味着服务器必然会暴露一个易于理解的 API,可以直接被 agent 调用。AI Agent 框架使用 Code Mode(https://blog.cloudflare.com/code-mode/)进行工具调用,因此向 agent 直接暴露 Gadget 的 API 供其调用就变得非常简单。
实时多人协作
你可以像在典型的在线办公套件中共享文档一样共享你的 Gadget。你可以给特定用户授予访问权限,或者创建一个共享链接,让任何打开链接的人都能访问。而且就像那些在线办公套件一样,你可以实时看到协作者的操作。
这之所以可行,是因为每个 Gadget 都由一个 Durable Object(https://developers.cloudflare.com/durable-objects/)支撑,这是 Cloudflare 的有状态 serverless 原语,让实时多人协作变得很简单。简单到编程 agent 默认就会实现它,根本不用你要求。
Blueprints:分享你的代码
如果你创建了一个可能对他人有用的 Gadget,但不想分享 Gadget 本身,你可以分享一个 Blueprint,让别人能够创建他们自己的 Gadget 副本。一个 Blueprint 本质上就是代码的一份拷贝。
听起来可能很简单,但 Blueprints 是对云软件传统的一次重大改变。传统上,如果你创建了一个想分享给其他用户的 Web 应用,你会把应用托管在你的服务器上,然后用户连接到那里。Blueprints 更像移动应用和传统 PC 应用:每个用户都运行自己的一份软件副本。
在 AI 时代,这种改变至关重要。一方面,AI 让单个开发者能比以往构建更多东西,但要让一个人承担起为其他用户运行托管服务的所有支持、可用性、安全等义务,仍然很困难。与此同时,AI 可以轻松地为每个用户定制一份应用副本,处理好自定义部署甚至个人一次性定制。
而这一切都始于分享代码的能力。Blueprints 让这成为可能。
Gatekeepers:安全的连接器
如上所述,Gatekeepers 就像 MCP 服务器,但与外部服务的连接由一个安全层控制,该安全层会调解、记录并在需要时阻止每一个请求。Cloudflare OS 不会把 Gadget 和 agent 直接连接到外部服务(避免暴露密钥、令牌和凭据),而是先审查 Gadget 和 agent,然后创建一个独特的 Gatekeeper 实例,并为它配发一个按 Gadget 隔离的令牌。
关于 MCP 的说明
Cloudflare OS 把所有的 Gatekeepers 组合成一个虚拟的 MCP 服务器。这意味着 Gatekeepers 能与所有 MCP 客户端集成,包括 Claude Desktop、Cursor、Windsurf 等等。你不一定非要用 Cloudflare OS 内置的用户界面才能使用它的 Gatekeepers。也就是说,连接器是可扩展的:你可以通过 Gatekeeper 的 MCP 接口来使用它,也可以使用提供 GUI 的 gadget。
所以,如果你愿意,你可以在自己的机器上设置一个 Gatekeeper,从 MCP 客户端访问你的 Google Docs。
Cap’n Web API
除了上面提到的 MCP 接口之外,Gatekeepers 还暴露一个 Cap’n Web API 供 Cloudflare OS agent 使用。Cap’n Web API 是为“外部 AI”(例如 agent)设计的。MCP 需要工具模式来描述接口,而 Cap’n Web 则让外部 AI 可以检查 API 定义,并编写直接调用该 API 的代码(例如用 TypeScript)。由于 Cloudflare OS 使用的是 Code Mode 风格 agent,agent 可以编写一个小型 TypeScript 程序连接到 Gatekeeper,轻松完成复杂、多步骤的操作。
AI 驱动的安全:“Gatekeeper” 不只是个比喻
除了在 Cloudflare OS 和外部服务之间提供连接之外,Gatekeepers 还提供人在回路中的控制来保护你。不过,Cloudflare OS 用一种有趣的方式通过 AI 把这一点放大了:你可以给 Gatekeeper 挂上一个 guardrails LLM,它会检查每一个请求和响应。这个 guardrails LLM 会监视试图窃取机密信息、恶意提示词以及其他问题,并且可以阻止请求或提示用户批准。
可针对你的公司定制
由于 Gateway 是开源的,它是你构建自己公司专属 OS 的起点。这就是这项特性的价值所在:能够定制 Cloudflare OS,让它适配你公司的工作流程。
工作原理
-
Agents。 主要的 agent 系统采用“Code Mode”框架的形式,实现在
src/workshop/agent.ts中。要执行任务,该框架会请求外部 LLM 给出一个动作,然后使用“facets”在沙箱中执行 Rust、TypeScript 代码片段。(并且可以选择多个 agent 模型提供商。)我们发现这个框架简单、可靠且灵活。事实上,我们有个玩笑说我们不是 AI 公司,而是“面向 AI 的软件工程”公司。 -
Gatekeepers: 每个 Gatekeeper 实现为一个 facet,插入到每个独立工作区中。你可以用
wrangler tail打开某个用户的 Gatekeeper,观察它如何调解请求。Gatekeeper 日志可以在 Gatekeeper 的仪表盘中查看(通过 Cloudflare OS UI 的 Settings 访问)。 -
Gadgets: 每个 Gadget 实现为一个 Dynamic Worker Facet(https://developers.cloudflare.com/durable-objects/)
安全模型(请务必阅读!)
我们构建 Cloudflare OS 时秉持一个信念:云软件的标准安全模型——也就是“信任应用来实施访问控制”——从根本上就是有缺陷的。相反,Cloudflare OS 实现了一种基于能力的安全模型。
一个“能力”(capability)是对某个东西(比如文档、应用实例或服务器)的引用,再加上访问它的权限。在基于能力的系统中,要访问某样东西,你必须拥有一个授予你访问该东西权限的能力;如果你没有能力,你就无法访问它。不存在“糊涂代理”(confused deputy),不存在“权限提升”,不存在“跨租户访问”攻击,因为代码不可能调用一个没有被明确授予的能力。这解决了经典的“安全 vs. 便利”的取舍;事实上,它消除了整类安全漏洞。
基于能力的安全在云软件的语境中看起来很陌生,因为它从未被真正大规模部署过。(为什么?也许是因为在没有合适基础设施的情况下太难实现了。)Cloudflare OS 构建在一个非常适合基于能力的安全的云平台上:Workers Runtime 和 Durable Objects。通过使用加密令牌来实现基于能力的安全,Cloudflare OS 实现的安全模型与所有代码执行时所用的模型完全一致——没有“环境权威”(ambient authority)。
在这个模型下:每个 Gadget 都是一个独立的实例。攻击者控制了某个 Gadget 的代码,并不意味着他们能访问另一个 Gadget 的数据,也不意味着他们能访问网络。
每个用户都被授予访问自己工作区的能力。工作区是一个 Durable Object。每个工作区只包含它所承载的 gadgets 的数据和代码。
Cloudflare OS 实现了基于能力的安全,因此任何 Gadget 中的任何安全漏洞都无法被用来访问任何其他用户的数据。
另外请注意,我们对安全方面非常认真。本仓库默认的 Gatekeeper 配置是作为一个不错的实验起点,而不是一套完整的安全设置。在把 Cloudflare OS 用于生产环境之前,我们强烈建议你审查整个 Gatekeeper 设置和安全策略。
关于本仓库
整个代码库
从 src/workshop/* 目录开始。那里是这个 OS 的核心。
src/workshop/agent.ts—— agent 框架src/workshop/gatekeeper.ts—— 所有 Gatekeeper 的基类;外部资源访问和人在回路中的批准都在这里发生。src/workshop/backend.ts—— 后端服务器src/workshop/blueprint.ts—— Blueprint 发布 / 安装src/workshop/frontend.ts—— Web 前端src/workshop/capability.ts—— 系统之间能力的交接
packages/gatekeeper-* 目录包含 Gatekeeper 的实现。
运行 pnpm build 编译所有代码,运行 pnpm run-local 在本地运行整个技术栈。
文档遍布各处,包括 docs/ 目录和源代码中的大量注释。
Cloudflare OS 内部架构
Cloudflare OS v2 拥有干净模块化的架构。整体设计:
+-------------------+
| 用户界面 | (React 应用)
+-------------------+
|
v
+-------------------+
| workshop-backend | (后端服务器,以 Durable Object 运行)
+-------------------+
/ | \
v v v
+-----------+ +-----------+ +-----------+
| Gadget A | | Gadget B | | Gadget C | (gadgets 以 Dynamic Worker Facets 运行)
+-----------+ +-----------+ +-----------+
\ | /
v v v
+----------------------------+
| Gatekeeper 实例 | (同样是 Durable Objects / facets)
+----------------------------+
|
v
+----------------------------+
| 外部服务 | (Google、GitHub 等)
+----------------------------+
部署前须知
本仓库尚不适合生产环境,但可以通过 pnpm deploy 部署。它的定位是作为贵公司自己的 OS 部署的起点。如果你想在真正部署之前先看看 Cloudflare OS 的实际效果,请使用本地模式。
为你的公司部署需要:
- 为你想要通过 Gatekeepers 连接的每个外部服务设置 OAuth 应用 / API 密钥,再加上 AI 提供商的凭据。
- 处理贵公司的认证细节(例如
相似文章
Cloudflare OS:面向代理、应用和工作的开放平台
Cloudflare 正在开源 Cloudflare OS,这是一个开放平台,为每位员工提供基于公司上下文、技能和内部系统的 AI 代理和工作空间。
企业利用OpenAI在Cloudflare Agent Cloud中驱动智能代理工作流
Cloudflare与OpenAI合作,使OpenAI的前沿模型(包括GPT-5.4)可直接在Cloudflare Agent Cloud中访问,从而使企业能够大规模部署AI代理以执行实际任务。该集成还包括Codex工具,这些工具现已在Cloudflare Sandboxes中全面可用,并即将在Workers AI中提供。
@interjc: Cloudflare OS 看上去不错,把企业资源和任务串起来
Cloudflare OS 是一个开源平台,让公司内所有人都能构建应用、自动化工作并安全访问内部系统。
@geekbb: Cloudflare 出品,给 AI agent 配了一台"电脑" 给 Agent 一个永不消失的工作区。SQLite 存文件,三种环境(完整容器 / shell / JS)随时开,换环境不换文件。
Cloudflare Computer is a virtual filesystem inside a Durable Object that gives AI agents a persistent workspace, using SQLite for storage and pluggable runtimes (container, shell, JavaScript). It's a preview-only open-source package.
@kentcdodds: 我们拭目以待。#selfhealingsoftware
Kody是一个用于AI代理的开源框架,基于Cloudflare Workers和Model Context Protocol构建,为内存、密钥、代码和自动化提供可移植的解决方案。