产品发布 · 小互解读

Cloudflare 开源自家内部 AI 办公平台 Cloudflare OS:一个专门给全公司员工用的「AI 办公操作系统」

全体员工用了三个月的东西整个开源,最值钱的是那套安全设计,审批可以晚点再给,Agent 不用停下来等你。
一分钟速览
  • Cloudflare 把自家全员用了三个月的 AI 办公平台整个开源了,代码全在 GitHub 上,你自己的服务器也能跑。
  • 真正新的东西在安全层:它记着 Agent 读过哪些数据,你分享产物时按这个查对方有没有资格看,不是查他能调哪些工具。
  • 还有一招是冲着「跳过权限确认」去的:Agent 要建 issue,系统先编一个假的还给它让它接着跑,你回来一次性盖章。这招的代价写在源码注释里。
⚑ 这是 Cloudflare 自己发的产品公告。文中的使用规模、省下的工时都是他们自己的口径,工时那个数字原文标了「估计」。机制部分我把开源仓库拉下来对着源码核过,博客写得含糊的地方以代码为准,出入都在正文里说明。
是什么

Cloudflare OS 是什么

Cloudflare 今天把自己内部用的 AI 办公平台 Cloudflare OS 整个开源了,Apache 2.0 许可,代码全在 GitHub 上,你可以部署到自己的 Cloudflare 账户,也可以整套跑在自己的服务器上。这不是又一个「聊天框加连接器」,它是一套已经在自家几千号人身上跑了三个月的完整方案,专门治「我想让 AI 碰公司真实系统,但不敢把密钥发出去」这个死结。

简单说,它把三样东西装在了一起:

Agent 工作区
预装了你们公司自己的术语、流程和做事方法。里头带一个隔离的运行环境,Agent 能直接写代码、直接跑。
安全治理框架
管着「谁能碰哪些数据」。这块是这次最值得看的部分,也是别人抄不走的部分。
应用平台
人人能改。Agent 造出来的应用,别人拿到之后可以自己让 AI 接着改。

它为什么会存在,后面讲 Gatekeeper 的时候有个很具体的故事。

打开来看,就是浏览器里一个聊天框,跟别的 AI 工具没两样。区别在于聊完之后东西往哪儿去,一段对话可以变成一份文档、一个应用、或者一条自己接着跑下去的工作流。

一句话 「帮我把这事办了」 一份文档 / 幻灯片 还连着实时数据,能导出 一个能用的应用 有界面、有后端、能多人一起用 一条工作流 定时跑,或者被事件触发 三种产物都装在 同一个工作区里 彼此能互相调用
本站画的示意图:一段对话在 Cloudflare OS 里能落成三种东西,而不是只给你一段回复。

四类用途,官方点名的场景

第一类是查东西。让工作区去研究一个话题,它能调用公司的上下文和你给它的资源。这里有个细节值得说:Agent 是写代码去搜、去筛、去连表、去算,而不是把整个数据集一股脑塞进模型的上下文窗口里。数据集稍微大一点,后一种做法要么装不下,要么费用高得没法接受。

第二类是做文档、幻灯片、表格。做出来的东西不必是死的静态文件,它可以一直连着数据源,源头变了它跟着变,同时还能导出成常见格式或者送进 Google Drive 这类地方。

第三类是做团队用的应用。当一份文档或者一张表格装不下要干的事,Agent 就给你造一个应用出来,有自己的界面、自己的逻辑、自己的状态,能连公司资源,能多人一起用。

第四类是把重复的工作做成确定性工作流。这条最实在:很多工作本质上就是一串固定步骤,中间只有一两个地方需要判断力。这种工作没必要每次都开一整个 Agent 会话从头烧 token,能确定的步骤走代码,只在真需要判断的那一步喊模型。做好之后能手动跑、能定时跑,也能被外部系统里的事件触发。

Cloudflare OS 首页:左侧导航列着工作区、蓝图、产物、定时任务、上下文与技能,中间是一个输入框
官方首页截图。左边一栏从上到下是工作区、蓝图、产物、定时任务、上下文与技能;下面「最近的工作区」里堆着「功能需求工作流」「自动邮件 Agent」「Q3 计划文档」这些真实条目,底下写着「显示全部(171)」。中间四张上手卡就是官方给的场景实例:给一对一会议做份预读、从表格或 CSV 里找趋势和建议、新邮件到了触发一个 Agent、做个小工具或看板。输入框右下角是模型选择器。来源:Cloudflare 博客。

不过官方博客那张是空工作区,看不出干起活来什么样。开源仓库里那张信息量大得多:

Q3 规划工作区:左边是对话,右边是生成出来的六页幻灯片,正显示第五页
开源仓库里的工作区截图。左边对话里 Agent 汇报它做了六页幻灯片、每页讲什么,还提醒「每个数字都是我编的,见真人之前记得换掉」;右边是渲染出来的第 5 页,三列写着七、八、九月各交付什么、每个月的验收点是什么。三个地方值得注意:右上角挂着 $1.73,这个工作区到这一刻花了多少钱是当面写着的;上方有 Slides / Code / Connections 三个页签,产物、生成它的代码、它连着哪些资源,都能翻开看;输入框右下角的模型选到了 Claude Opus 5。来源:cloudflare/cloudflare-os 仓库。
机制

每个「文件」都是一个独立应用,自己的沙箱、自己的数据库

传统办公套件给你固定的几种文件:文档、表格、幻灯片。Cloudflare OS 把这个前提掀了,每个「文件」都可以是它自己的一个完整应用,由 Agent 为你一个人、一个项目、一个团队现写的。

仓库里管这东西叫 gadget(小玩意儿),对外的博客里翻译成了「app」,指的是同一样东西。它不是原型,不是那种得导出去另找地方部署的半成品:每一个都是完整的全栈应用,有前端代码、有后端代码、有接口、有存得住的状态。默认私有,能像文档一样分享出去。

它怎么做到「每人一份」还不烧钱,靠的是三块拼图:

拼图干什么用什么时候有的
Dynamic Worker
动态 Worker
装应用的后端代码。本质是个轻量的隔离环境,按需加载,不用的时候不占资源,所以不需要给每个应用配一台服务器或者容器在那儿干等着2026 年 3 月
Durable Object Facet
持久对象分面
给这个应用一个属于它自己的 SQLite 数据库,跟平台运行时的库是分开的。这就是每个「文件」能有独立状态的原因2026 年 4 月
Cap'n Web RPC
Cloudflare 开源的远程调用系统
前后端之间说话用的。前端调后端的方法,写起来跟调一个本地函数一样已开源

前两块都是 Cloudflare 今年春天才加进 Workers 运行时的新特性。仓库 README 里点破了它们的来历:这几个特性就是为了做 Cloudflare OS 才专门加进运行时的,而且后面还有更多。

选了 Cap'n Web 之后,白捡了一个能力

第三块拼图带来一个副作用,也是这套设计最漂亮的地方。因为前端必须通过一套规规矩矩的方法接口去调后端,所以这套接口天然也能被 Agent 直接调

你为自己写的那个小工具,Agent 在你不在的时候能拿去替你干活。不用另外写一个 MCP 服务器,不用再接一层 Agent 循环,白送的。官方架构图上把这句话印在了正中间:whatever the UI can do, the agent can do,界面能干的,Agent 都能干。

应用架构图:Agent 会话和浏览器客户端从上方接入同一条 Application API,下面是 Dynamic Worker 和 Durable Object Facet,最底下三个带类型的资源绑定
官方架构图。上面两个入口,Agent 会话(写这个应用,然后调它)和浏览器客户端(沙箱框,自己没有网络),都通过 Cap'n Web 接到中间同一条 Application API 上。往下是按需加载的应用服务端:左半是 Dynamic Worker(轻量隔离环境,没有闲置资源),右半是 Durable Object Facet(自己的 SQLite,跟运行时分开)。最底下三个方框是这套设计的权限粒度:env.PROJECT 只给一个仓库、只给 issue;env.CALENDAR 能读,要写得先审批;env.WAREHOUSE 某些列是打了码的。图上原话:granted per resource, never a credential(按资源发放,从不发凭据)。来源:Cloudflare 博客。
分享

分享有两种:一起用同一个应用,或者给对方一份代码让他自己改

第一种是分享应用本身:大家进的是同一个应用、同一个 SQLite 库,谁改了别人实时看得见,跟在 Google Docs 里协作一样。

第二种是分享蓝图(blueprint):对方拿到的是一份代码副本,自己生成一个全新的应用。原来那个应用的数据、对话历史、凭据、连着的资源,一样都不跟过去。两个人从此各跑各的。

左边你和同事连到同一个应用共享一个数据库,右边一个蓝图分裂成 A 队和 B 队各自独立的两个应用
官方对比图。左边「分享应用」是实时协作:一个应用、一个 SQLite 库、一套连接的资源。右边「分享蓝图」只交出代码和结构,A 队和 B 队各拿一份,各自有自己的状态、自己的资源,各自按自己的需要改。来源:Cloudflare 博客。

第二种才是关键。它意味着别人拿到你的应用之后可以自己让 AI 去改,而不是给你提个需求、然后排进你的待办队列里等着。

仓库 README 把这件事拔得更高。过去 25 年 SaaS 的逻辑是:我把软件跑在我的服务器上,你连过来用;你缺个功能,得来求我排期。蓝图这套更像手机 App 和 PC 软件,每个用户跑自己那一份,缺什么自己让 AI 加。README 的说法是,AI 一方面让个人开发者能造出比过去多得多的东西,另一方面个人维护一个在线服务仍然很难,而蓝图正好把「维护服务」这件事从等式里消掉了。

安全

Gatekeeper:Agent 一开始什么都碰不到,批准之后拿到的也不是密钥

今年 2 月前后,Cloudflare 一个销售部门的同事找到公司 CIO 要 API 密钥,要好几把。这人用 AI 攒了个自称能改造整个市场团队的「超级应用」,就差临门一脚:需要十来个公司核心业务系统的生产环境权限,外加一条部署管线的管理员权限。

这就是所有公司推 AI 都会撞上的那堵墙。AI 在公司里如果碰不到大家干活用的那些系统,它基本没用;可要让它碰,就得发密钥,而密钥这东西权限一给就是一大片、有效期还特别长,收不回来也审计不清。

MCP 已经算是往前走了一步:Agent 不直接拿密钥,MCP 服务器替它拿着,只暴露一组定义好的工具。但博客把 MCP 的盲区点得很准:

MCP 只告诉我们这个 Agent 能哪些工具,不告诉我们它到底看到过哪些底层资源。

Cloudflare 博客《Cloudflare OS:一个面向 Agent、应用与工作的开放平台》

Agent 完全可以把好几个系统里的信息拼起来,送到一个管得没那么严的地方去,或者通过它做出来的应用和产物,泄露给根本没资格看原始数据的人。所以授权这件事不能只管「进门」,还得管数据接下来能流到哪儿

Gatekeeper 就是为这个设计的。它是一个夹在 Cloudflare OS 和某个外部服务中间的 Worker,一个服务配一个,懂那个服务的接口、资源和能做的操作。它干四件事:拿着凭据、执行策略、记录读过什么、拦下所有对外有副作用的动作。

打个比方

像公司前台。外人不能自己进办公区,所有事都得在前台办;前台替你保管钥匙,办了什么全登记在册,涉及对外的事还得先请示一声。

第一层:起步权限是零,批了也只给一张门禁卡

进 Cloudflare OS 这道门由 Cloudflare Access 管。进来以后,每个 Agent、每个应用初始权限是零。Agent 可以开口申请某个具体资源的访问权,你批或者不批。批了之后,它写的代码里拿到的是这么个东西:

const issues = await env.PROJECT.listIssues({
  teamId: "ENG",
  state: "open",
});

env.PROJECT 代表的是「在某条策略下使用某个具体资源」的一张通行证原文叫 capability(能力)。它跟密钥的区别在于:密钥是一串谁拿到谁就能用的字符,通行证是一个对象,能干什么早就框死在里面了,也没法复制出去给别人。凭据本身跟 Agent 和它写的代码是完全隔离的,代码从头到尾摸不到密钥。

而且口子可以切得非常细。博客举的例子:把整个 GitHub 账号给 Agent 显然太宽了,Gatekeeper 可以只给它一个仓库、只让它读 issue 不让读源码、把某些字段打上码、加个速率限制,还可以规定合并 PR 之前必须人工点头。

底下还有两道墙:应用的服务端代码跑在 Dynamic Worker 里,全局出网被关掉了;前端代码跑在浏览器的沙箱 iframe 里。两边都只能顺着你明确给的通行证出去,别的路一条没有。

Gatekeeper 结构图:Agent 或应用通过带类型的 RPC 通行证接进 Gatekeeper,Gatekeeper 拿着凭据,分读取和动作两栏,右侧连着由人批准或拒绝,下方连着业务系统
官方 Gatekeeper 图。上面是 Agent 或应用,通过一张带类型的 RPC 通行证接进来;中间橙色那块是 Gatekeeper,右上角写着「holds the credential」(凭据在它手上)。左栏是读取的流程:核准资源 → 调服务 → 记一笔观察记录。右栏是动作的流程:执行策略 → 模拟结果 → 排队等审批 → 批了才真正执行,右边接着「你」,由你批准或拒绝。最底下才是真正的业务系统。图里那句 simulate the result(模拟结果)在博客正文里一个字没解释,它是这次最实用的一个设计,后面专门讲。来源:Cloudflare 博客。
核心机制

系统记着 Agent 读过什么,别人来看之前先查他有没有资格读这些

光管住第一次读取还不够。博客举了个例子,一看就懂:Agent 读了数据仓库里一张敏感的表,拿它做了个实时看板。分享这个看板,不能变成一条绕过权限、把那张表分享出去的路。

Cloudflare OS 的做法是,把 Agent 读过的每一个资源都记下来。这些「观察记录」跟着 Agent 和它的产物一起走。等到别人想打开这个工作区、想跟这个 Agent 对话、或者想看它产出的东西时,各个 Gatekeeper 会去核对一件事:这个人有没有资格直接读它读过的那些东西。有就放行,没有就拦。

观察记录判定图:工作区读过营收表、支持工单、团队日历,有人来看时先问他能不能读,分头去三个 Gatekeeper 核对,最后放行或拒绝
官方图。上面橙色框是 Agent 工作区,里面躺着它读过的三样东西:营收表、支持工单、团队日历,右上角标着 observations stay attached to the agent and its work(观察记录跟着 Agent 和它的产物走)。有人要看的时候,先过「他能读吗」这道判定,再分头去仓库、GitHub、日历三个 Gatekeeper 各自核对,最后汇总成放行或拒绝。来源:Cloudflare 博客。

仓库里的实现比博客说的狠

博客只说了「会核对」。开源仓库的 docs/observers.md 里,这套机制的完整样子是这样的,有三条博客没提:

一、对方得先接上他自己的账号。你把应用分享给同事,他打开的时候,得为这个应用依赖的每一个服务选一个他自己的账号(他自己的 Google、他自己的 GitHub)。系统拿他的身份去问 Gatekeeper:这些东西他能读吗?不能,就直接拒绝打开。他要是不肯选账号,也是拒绝。

二、通过之后他被登记成一个「观察者」,然后你的应用能力就被压住了。从他成为观察者那一刻起,这个应用再想读任何观察者没资格看的东西,那次读取会被当场拦下、抛出异常。你把应用分享给一位权限比你低的同事之后,你自己这个应用的读取范围就被压到跟他一样宽。想解开,只有一条路,把他的访问权撤掉。

三、他每次打开都要重新核一遍。防的是「上个月他还有权限,这个月调岗了」这种情况。

对照旧办法

这套机制之前,系统里只有一个叫 prohibitAllSharing 的粗暴开关:只要某个 Gatekeeper 把一次读取标成最高敏感级,这个应用就彻底不能分享给任何人,并且直接进「锁死」状态,不能再做任何动作,也不能再联网。文档里自己承认那是个权宜之计,因为它表达不了「这份数据可以分享,但只能给同样有权限的人」这层意思。

同一份观察记录还有第二个用处:管出网。读过敏感数据之后,Agent 再想往某些地方写数据、拉新的协作者进来、把任务交给另一个 Agent、或者发一个对外请求,都可能被禁掉。读什么,决定了接下来能做什么。

核心机制

审批可以晚点再给:Gatekeeper 先编一个假 issue,让 Agent 一路跑完

凡是用过带权限确认的 Agent 工具的人,都熟悉下面这个场景。

传统的「人在环里」审批是同步的:Agent 要干一件有副作用的事,就停下来等你点确认。你给它派个任务,转身去接杯咖啡,回来发现它卡在第一步的审批弹窗上,一步没往前走。于是大家纷纷投降,把 Agent 设成全部自动批准,或者干脆加上跳过权限确认的参数。README 里直接把那个参数名点出来了:--dangerously-skip-permissions。这显然不安全,但比干等着强。

Gatekeeper 的解法是:动作不真做,但假装做完了。

Agent 说「建一个 issue」,Gatekeeper 不去 GitHub 建,而是把这个动作排进审批队列,同时编一个临时的假 issue 还给 Agent,让它以为建好了、可以接着往下干。给这个 issue 打标签、加评论、在别的地方引用它,全都行,Agent 一路跑到底不停顿。等你什么时候方便了,回来一次性看这一批动作,整批批准,或者一条条批,也可以拒。

以前 · 停下来等你点确认 建 issue 要审批 卡住了 等你回来 打标签 加评论 发通知 后面这些一个都没动 Cloudflare OS · 先给个假的,接着跑 建 issue #~1 给它打标签 #~1 给它加评论 #~1 在别处引用 #~1 跑完 全程没停,Agent 手里的 issue 编号是编的(#~ 开头一眼能认出来) 你回来了 四个动作摆在一起,整批盖章或者一条条批;批到哪条,哪条才真的发生
本站画的示意图,机制来自开源仓库的接口注释与 GitHub Gatekeeper 实现。

去源码里验了一遍:createIssue 确实先排队,再返回一个临时 ID

我把仓库拉下来翻了 GitHub Gatekeeper 的实现。createIssue 这个方法确实是先把动作扔进 submitActionForApproval 排队,然后立刻返回一个带着 provisionalId(临时 ID)的 issue 对象给调用方。代码里还能看到临时编号的渲染格式,#~1 这种带波浪线的假编号,跟真编号一眼能分开。

接口注释里写明了设计意图:

建议 Gatekeeper 把尚未批准的动作「模拟」出来,也就是说,会话接口应该表现得像所有动作都已经生效了一样。这样应用就能继续干活,还能接着往下排更多依赖它的动作。

cloudflare-os 仓库 · packages/workshop-shared/src/gatekeeper.ts

代价也在注释里写着,三条

一、模拟是「建议」不是「强制」。紧跟着上面那段,注释补了一句:没有严格要求 Gatekeeper 必须做模拟,哪些动作值得模拟,由写这个 Gatekeeper 的人自己拿捏。所以不同服务的体验会不一样。

二、拒绝一个已经被模拟过的动作,可能得重启整个应用。因为状态已经顺着假结果往前跑了一截,回滚不干净会把 Agent 搞糊涂。接口里专门留了个 restart 标志干这事。代码里还有一段处理连锁反应的逻辑:你要是把「建 issue」这一步拒了,所有依赖这个 issue 的后续动作会跟着一起被拒。

三、撤销是选做的。Gatekeeper 可以不实现撤销,那样系统只能提示你自己手动去撤。注释里的说法是「高质量的 Gatekeeper 应该基本都实现它」,反过来读就是,现在不一定都实现了。

成本

用哪个模型、谁花了多少钱,都从同一个网关过

所有的推理调用统一走 Cloudflare AI Gateway。好处是有一个地方能决定哪些模型可用、哪类任务派给哪个模型。

理由很实在:不是每个任务都值得上最贵的模型。每天早上帮你总结一遍未读邮件,用不着顶配的前沿模型。CIO 那篇说得更直白,不能让员工每小时花 20 美元去总结一遍收件箱。

每一次请求都会记到具体是谁、哪个团队、哪个工作区发起的。管理员能看见钱花在哪儿、设预算和速率上限、还能规定超限之后怎么办。

AI Gateway 分流图:所有模型调用先过网关,网关按身份、预算、缓存做判断,再分给前沿模型、均衡模型、小模型
官方图。左边是 Agent 和应用发出的每一次模型调用,都带着「谁发起的」这个信息。中间 AI Gateway 依次做五件事:核身份、套预算、能命中缓存就直接给缓存、挑模型、出错了自动降级。右边分成三档去处:前沿模型接最难的推理、均衡模型接大部分任务、小模型接量大又便宜的那些。图上标着「any provider, including Workers AI」(任何供应商,Workers AI 也算)。来源:Cloudflare 博客。

仓库里内置支持的四家

供应商默认推荐列表里挂了哪些
AnthropicClaude Opus 5、Claude Sonnet 5、Claude Haiku 4.5
OpenAIGPT 5.6 的 Sol、Luna、Terra 三档
GoogleGemini 3.6 Flash
Cloudflare Workers AIKimi K2.7 Code、GLM 5.2

另外还留着本地 ollama 的口子。代码里有条待办注释挺有意思:他们想把 Claude Fable 也加进来,但得先做一个管理员开关,因为不少公司出于零数据留存的政策不让用;后面还补了一句「拿它来搭这些小应用本来也有点大材小用」。

托管版还有一层计费设计:每个用户每天有一份免费额度,默认 100 次模型调用。用完之后,要么连上自己的 Cloudflare 账户、拿自己的 AI Gateway 余额付(余额得在 2 美元以上),要么就被挡住。自己部署的话,这一层默认是关的,不受限制。

数据

Cloudflare 内部这三个月:最近 30 天建了 4000 多个应用,也堆出一批废的

Cloudflare OS 的第一个版本在 2026 年 5 月开放给了全体员工。到今天开源,中间跑了三个月。

4000+
最近 30 天里员工建出来的应用和工具
1 万+ 小时
同期销售团队省下的时间,Cloudflare 自己的估算
上千人
每周在用的员工数,工作日的日活一直在涨
5 月
第一版全员开放的时间,三个月后开源第二版

省下来的时间原本花在什么上?CIO 点名的是地盘划分和方案撰写这类原来靠手工的销售工作。

先讲翻车的那一次

一开始,他们给非技术岗位的同事发的就是同一套工具,只是界面友好了一点。结果他自己总结成了这么一句:

如果你给每个人一个特别擅长写代码的工作区,你最后会得到远超需要的代码。

Sam Rhea,Cloudflare CIO

冒出来的是一大堆「找不到问题去解决」的 vibe coding 应用。这也是第二版为什么要往确定性工作流那个方向走:并非每件工作都需要一个会写代码的 Agent。

CIO 自己那个例子,把三代做法摆在一起看

他每天早上要看 IT 帮助台的工单队列和几个服务指标。

阶段怎么干的代价
手工时代从工单系统导出 CSV,扔进 Google Sheets 画图,再一条条点开夜里新进的工单费时间,还在系统之外造了一份重复数据
第一版跑一个技能文件,连着工单系统的 MCP 服务器安全了、手工少了,但每天早上都在烧掉几千 token,重新生成一份内容基本没变的报告
第二版让 Agent 把这份看板写成代码,配一个 Gatekeeper 管着到数据集的连接每次加载这份初始报告,烧掉的 token 是零

最后那个「零」要看清前提:它成立是因为看板已经被写成了代码、数据靠 Gatekeeper 直连取回、加载的时候根本不经过模型。不是「用了 Cloudflare OS 就不烧 token」,他需要 AI 的地方(比如给新工单起草回复)照样嵌在应用里,那部分照样烧。

同一家公司的另一条线,站内解读过
Cloudflare 编码工程实践:统一编码「规则库」让 Codex 监工,四个月拦下 1.6 万次代码合并
这次 CIO 提到的工程线做法,用一套内部规则库让 Agent 去审每一次合并请求、审技术设计、审故障报告,站内那篇讲的就是它,本文不重复展开。
方法

他们怎么找出该自动化什么:让全公司把不想干的工作发到一个「魔法邮箱」

这一段跟产品本身没关系,但我觉得是这次最能直接抄走的东西。

问题是这样的:你想知道公司里哪些工作值得自动化,直接问大家「你想自动化什么」,得到的答案往往没法用。Cloudflare 的做法是换个问法,他们告诉全公司,把你不想干的工作发到这个「魔法 AI 邮箱」,它会把你要的结果发回来。

邮箱背后其实没有什么自动系统,是一小队真人拿着 AI 工具在那儿一件件干。

妙就妙在人的心理。CIO 的原话是:不知道为什么,人们不太愿意把自己的 vibe coding 点子发给一个他们以为是自动系统的东西,但特别愿意把自己不想干的工作扔过去。

几百场、然后几千场会话跑下来,他们手工分拣这些请求,慢慢看出规律:哪些请求反复出现、需要连哪些数据、大家最后要的是什么形式的产物。看清楚之后,反过来做成技能文件和上下文文件,把数据源接好,把输出格式定死。攒够了,才上平台让大家自助。

这件事他们自己形容是「很痛苦」,一直很想停掉,硬撑到素材够了为止。

五条原则里最硬的一条

他们在动手之前定了五条原则,其中第五条是:用 AI 的时候,你对业务系统的权限不能比平时更大。而且,你分享出去的 Agent,它给别人的访问权限,应该按那个人的权限算,不是按你的算。

前面 Gatekeeper 和观察记录那整套机制,就是从这一句话长出来的。

局限

动手之前该知道的:这是早期版本,Gatekeeper 还得自己写

下面这几条大多来自仓库而不是发布博客,但它们决定你现在要不要动手。

一、README 自己挂着「早期访问」的警告。这个仓库其实是第二版,是吸取第一版教训后的完全重写。原话是:非常能打,但还有很多毛边;我们知道,正在修。

二、给一个服务写 Gatekeeper 是实打实的工程量。仓库里带了 16 个,覆盖 Google、GitHub、Slack、Notion、Linear、Confluence、Supabase、Home Assistant 这些常见服务。我数了一下各自的代码行数:

Google
7425 行
GitHub
5427 行
Home Assistant
4638 行
Notion
4073 行
Confluence
3394 行
Linear
3209 行
Slack
2137 行
MCP 桥接
544 行
16 个里挑了 8 个。行数是我在仓库里数的(各包 src/ 下的 TypeScript 源码,不含类型声明文件)。

也就是说,你们公司那些没有现成 Gatekeeper 的自研系统,得有人一个个写,而且看这个量级,不是一下午能搞定的事。好消息是仓库带了 MCP 和 MCP Portal 两个桥接包,已经有的 MCP 服务器可以直接接进来,只不过那样就只有 MCP 那一层的管控力度,享受不到 Gatekeeper 那套细粒度策略。

三、不收外部代码贡献。贡献指南里的理由值得一读:

AI 已经让写代码变得容易了。今天真正难的是审代码、保证质量、让产品保持连贯。这么看的话,外部的代码贡献是把这份工作里简单的那一半「捐」给我们,同时制造更多难的那一半。

cloudflare-os 仓库 · CONTRIBUTING.md

他们只收小的、能一眼验证的修复;超过十来行的会被直接关掉并附上这条规矩。有大想法可以去开个讨论帖。

四、自己拿 workerd 部署在自有服务器上,文档还标着「即将推出」。技术上跑得通,本地开发模式底下用的就是 workerd,但工具和文档还没齐,现在想这么干只能自己啃底层配置。

官方给的下一步是三件:把 Cloudflare OS 做成 Cloudflare 控制台里的托管产品、给开发工作流加上容器、把工作区接进 Slack 之类的聊天工具。

上手

怎么试:本地一条命令,或者一键部署到自己的 Cloudflare 账户

最省事的是本地跑一遍:装好 pnpm,执行 pnpm run-local,然后打开 localhost:8787。整套东西会在你机器上跑起来,数据落在本地的 .wrangler 目录里。这个模式不是给生产环境用的,但看清楚它到底是个什么产品足够了。

想部署到自己的 Cloudflare 账户,有个在线流程:os.cloudflare.app/deploy。要是打算改得深一点,走 cloudflare-os-starter 这个示例仓库,它是照 Cloudflare 内部部署方式做的,特点是消费核心而不给核心打补丁,配置、自定义界面、内部集成、数据分析、部署管线全放在这一层,核心升级的时候不打架。

README 里给了几条试玩的提示词,照抄过来:

  • 「给我明天见客户的会议做套幻灯片。」(会用到内置的幻灯片蓝图)
  • 「做个协作白板应用。」(从零现造一个)
  • 「做个井字棋游戏。」然后接一句「我执 X 你执 O,我下完第一步了,该你了。」
  • 「给这个 GitHub 仓库做个 issue 看板。」(要先配好 GitHub 那个 Gatekeeper)
  • 「把这份 Google 文档里的错别字改掉。」(要先配好 Google 那个 Gatekeeper)

不想自己折腾的话,Cloudflare 的两家战略合作伙伴 Presidio 和 Happy Cog 提供落地服务,帮着接内部系统、攒公司的上下文和技能库、配安全和成本策略。

🧰 上手卡 · Cloudflare OS
价格开源免费,Apache 2.0 许可。托管版每天默认给 100 次免费模型调用,用完之后走你自己的 Cloudflare AI Gateway 余额(余额需在 2 美元以上);自己部署不受这个限制。
门槛本地试玩装个 pnpm 跑一条命令就行。真要接公司系统,现成 16 个 Gatekeeper 之外的自研系统得自己写,或者用 MCP 桥接包接已有的 MCP 服务器。
来源
Cloudflare OS:一个面向 Agent、应用与工作的开放平台Phillip Jones、Dan Carter,Cloudflare 博客·原文·2026-08-05
本站说明
五张机制图和一张首页截图来自 Cloudflare 博客;工作区截图来自 cloudflare-os 仓库 docs/images。「三种产物」示意图和「同步 / 异步审批」对照图是本站画的。观察者机制的三条细节、模拟审批的实现与三条代价、16 个 Gatekeeper 的代码行数、内置模型清单、免费额度规则,都出自我拉下来的开源仓库源码与文档,不来自发布博客。使用规模与省下的工时是 Cloudflare 自评口径,工时为其估算值。