Moltworker让开发者自托管个人AI Agent,支持灵活定制和本地部署,无需依赖第三方平台。
编者按:自 2026 年 1 月 30 日起,Moltbot 已更名为 OpenClaw。
本周,互联网上突然涌现出一大批购买 Mac mini 的人,他们准备用它运行 Moltbot(原名 Clawdbot)。Moltbot 是一个开源、自托管的 AI Agent,旨在充当个人助理。它在用户自己的硬件后台运行,拥有数量可观且仍在不断增长的集成列表,覆盖聊天应用、AI 模型和其他流行工具,还可以远程控制。Moltbot 能帮你处理财务、管理社交媒体、安排日程——这一切都可以通过你最喜欢的即时通信应用完成。
但如果你不想购买新的专用硬件呢?如果你仍然希望在网上高效、安全地运行 Moltbot 呢?来认识一下 Moltworker:它由一个中间件 Worker 和一组适配脚本组成,可以让 Moltbot 运行在 Cloudflare 的 Sandbox SDK 和 Developer Platform API 之上。
Cloudflare Workers 对 Node.js 的兼容性从未像现在这样完善。过去,为了让某些 package 能够运行,我们不得不模拟一些 API;如今,Workers Runtime 已经原生支持这些 API。
这改变了我们在 Cloudflare Workers 上构建工具的方式。我们最初实现 Playwright 时——它是一个流行的 Web 测试与自动化框架,运行在 Browser Rendering 上——不得不依赖 memfs。这种做法并不理想,因为 memfs 不仅是一种权宜之计和外部依赖,还迫使我们的实现逐渐偏离 Playwright 官方代码库。好在随着 Node.js 兼容性的提升,我们已经能够原生使用 node:fs,降低了复杂度和维护成本,也让升级到最新版本的 Playwright 变得更加容易。
我们原生支持的 Node.js API 仍在不断增加。博客文章《A year of improving Node.js compatibility in Cloudflare Workers》概述了我们目前所处的位置,以及正在推进的工作。
我们也在量化这项进展。最近,我们做了一项实验:选取 1,000 个最流行的 NPM package,安装它们,然后放手让 AI 尝试在 Cloudflare Workers 中运行这些 package,风格就像让 Ralph Wiggum 当“软件工程师”。结果出乎意料地好。排除不适用的构建工具、CLI 工具和只能在浏览器中运行的 package,真正无法运行的只有 15 个,也就是 1.5%。
下面这张图展示了我们的 Node.js API 支持随时间的变化:
我们还整理了一个页面,展示这次 NPM package 支持情况内部实验的结果,方便你自行查看。
Moltbot 不一定需要 Workers 提供大量 Node.js 兼容能力,因为它的大部分代码无论如何都会在容器中运行。不过,我们认为有必要强调一下:通过原生 API,我们已经能支持如此多的 package。这一点很重要,因为当我们从零开始构建新的 AI Agent 应用时,实际上可以把大量逻辑直接运行在 Workers 中,让它们离用户更近。
这个故事的另一个重要部分是,我们 Developer Platform 上的产品和 API 已经丰富到这样的程度:任何人都可以在 Cloudflare 上构建并运行任何类型的应用,即便是最复杂、要求最高的应用也不例外。而且,任何应用只要部署到我们的 Developer Platform 上,就能立即受益于我们安全、可扩展的全球网络。
这些产品和服务为我们提供了着手实施所需的基础。首先,我们现在有了 Sandboxes,它能在隔离环境中安全运行不受信任的代码,为服务提供运行场所。其次,我们现在有了 Browser Rendering,可以通过编程方式控制无头浏览器实例并与之交互。最后,我们还有 R2,可以持久化存储对象。有了这些构建模块,我们便可以开始适配 Moltbot。
运行在 Workers 上的 Moltbot,也就是 Moltworker,由一个入口 Worker 和隔离环境共同构成。这个入口 Worker 充当 API 路由器,以及 Cloudflare API 与隔离环境之间的代理,二者都受到 Cloudflare Access 的保护。它还提供管理 UI,并连接到运行标准 Moltbot Gateway Runtime 及其集成的 Sandbox 容器,同时使用 R2 实现持久化存储。
Moltworker 的高层架构图。
Cloudflare AI Gateway 充当 AI 应用与各类主流 AI provider 之间的代理,让客户能够集中查看并控制从中经过的请求。
最近,我们宣布支持 Bring Your Own Key(BYOK)。借助这一功能,你不再需要在每次请求中以明文形式传递 provider secret,而是可以由我们集中管理这些 secret,并在你的 Gateway 配置中使用它们。
还有一种更好的选择:使用 Unified Billing,这样从端到端都无须管理 AI provider 的 secret。在这种情况下,你只需为账户充值 credits,然后通过 AI Gateway 直接使用任何受支持的 provider。费用由 Cloudflare 支付,我们再从你的账户中扣除相应 credits。
要让 Moltbot 使用 AI Gateway,我们首先创建一个新的 Gateway 实例,然后为它启用 Anthropic provider。接着,我们可以添加自己的 Claude key,或者购买 credits 来使用 Unified Billing。最后只需要设置 ANTHROPIC_BASE_URL 环境变量,让 Moltbot 使用 AI Gateway endpoint。就这么简单,无须修改任何代码。
一旦 Moltbot 开始使用 AI Gateway,你就能完整查看成本,并获得日志和分析数据,帮助你了解 AI Agent 是如何使用 AI provider 的。
需要说明的是,Anthropic 只是其中一种选择;Moltbot 支持其他 AI provider,AI Gateway 同样如此。使用 AI Gateway 的优势在于:如果任何 provider 推出了更好的模型,你都不必替换 AI Agent 配置中的 key 并重新部署,只需在 Gateway 配置中切换模型即可。不仅如此,你还可以指定备用模型或备用 provider,以便在请求失败时自动接管,确保可靠性。
去年,我们预见到 AI Agent 在隔离环境中安全运行不受信任代码的需求会日益增长,因此发布了 Sandbox SDK。这个 SDK 构建在 Cloudflare Containers 之上,提供了一套简单的 API,用于执行命令、管理文件、运行后台进程和暴露服务——而这一切都可以直接从 Workers 应用中完成。
简单来说,你不必直接处理更底层的 Container API。Sandbox SDK 为安全执行代码提供了对开发者友好的 API,并帮你处理容器生命周期、网络、文件系统和进程管理等复杂问题。你只需要几行 TypeScript,就可以专注于构建自己的应用逻辑。下面是一个例子:
import { getSandbox } from '@cloudflare/sandbox';
export { Sandbox } from '@cloudflare/sandbox';
export default {
async fetch(request: Request, env: Env): Promise<Response> {
const sandbox = getSandbox(env.Sandbox, 'user-123');
// Create a project structure
await sandbox.mkdir('/workspace/project/src', { recursive: true });
// Check node version
const version = await sandbox.exec('node -v');
// Run some python code
const ctx = await sandbox.createCodeContext({ language: 'python' });
await sandbox.runCode('import math; radius = 5', { context: ctx });
const result = await sandbox.runCode('math.pi * radius ** 2', { context: ctx });
return Response.json({ version, result });
}
};
这与 Moltbot 的需求完美契合。我们不再是在本地 Mac mini 上运行 Docker,而是在 Containers 上运行 Docker,通过 Sandbox SDK 向隔离环境发送命令,再通过回调连接到入口 Worker,从而在两个系统之间有效建立一条双向通信通道。
在本地计算机或 VPS 上运行服务的好处之一,是天然就能获得持久化存储。然而,容器本质上是临时的,这意味着容器一旦被删除,其中生成的数据也会随之丢失。不过不用担心,Sandbox SDK 提供了 sandbox.mountBucket(),你可以用它在容器启动时自动把 R2 bucket 挂载成一个文件系统分区。
有了一个保证不受容器生命周期影响的本地目录之后,我们就可以让 Moltbot 使用它来存储 session memory 文件、对话以及其他需要持久保存的资源。
AI Agent 高度依赖对 Web 的浏览,而 Web 有时并没有那么结构化。Moltbot 使用专用的 Chromium 实例执行操作、浏览网页、填写表单、截取快照,以及处理其他需要 Web 浏览器的任务。当然,我们也可以在 Sandboxes 上运行 Chromium,但如果能简化流程,直接使用 API,岂不是更好?
借助 Cloudflare 的 Browser Rendering,你可以通过编程方式控制运行在我们边缘网络中的大规模无头浏览器实例,并与它们交互。我们支持 Puppeteer、Stagehand、Playwright 等流行 package,让开发者只需进行极少量的代码修改就能接入。我们甚至还为 AI 提供 MCP 支持。
为了让 Browser Rendering 与 Moltbot 协同工作,我们做了两件事:
首先,我们建立了一个轻量的 CDP proxy。CDP 是用于操控基于 Chromium 的浏览器的协议。这个 proxy 从 Sandbox 容器连接到 Moltbot Worker,再通过 Puppeteer API 连接到 Browser Rendering。
然后,我们会在 Sandbox 启动时,将一个 Browser Rendering skill 注入 Runtime。
从 Moltbot Runtime 的角度来看,它只需要连接一个本地 CDP port,就能执行浏览器任务。
接下来,我们希望保护 API 和 Admin UI,防止未经授权的访问。从零开始实现身份验证很困难,通常也属于那种没必要重复造轮子、更不值得亲自处理的工作。Zero Trust Access 让应用保护变得异常简单:你只需为 endpoint 定义具体策略和登录方式即可。
Moltworker 应用的 Zero Trust Access 登录方式配置。
endpoint 受到保护后,Cloudflare 会替你处理身份验证,并自动在发往 origin endpoint 的每个请求中附带 JWT token。然后,你可以验证这个 JWT 来获得额外保护,确保请求确实来自 Access,而不是恶意第三方。
与 AI Gateway 类似,一旦所有 API 都置于 Access 之后,你就能获得出色的可观测性,了解用户是谁,以及他们正在使用你的 Moltbot 实例做什么。
下面进入演示环节。我们搭建了一个 Slack 实例,用来体验自己运行在 Workers 上的 Moltbot。以下是我们用它完成的一些有趣任务。
在这段聊天中,我们要求 Moltbot 使用 Google Maps 找出伦敦 Cloudflare 办公室与里斯本 Cloudflare 办公室之间的最短路线,并把截图发送到 Slack channel。它通过一系列步骤调用 Browser Rendering、浏览 Google Maps,完成得相当不错。此外,当我们第二次向它提出请求时,也可以看看 Moltbot 的 memory 是如何发挥作用的。
今天我们想吃点亚洲菜,让 Moltbot 来帮帮忙。
毕竟,我们也是用眼睛吃饭的。
再发挥一点创意:让 Moltbot 制作一个浏览我们开发者文档的视频。可以看到,它下载并运行了 ffmpeg,用浏览器中捕获的画面帧生成视频。
我们已经将实现开源,并发布在 https://github.com/cloudflare/moltworker。现在,你就可以在 Workers 上部署并运行自己的 Moltbot。
README 会引导你完成必要的配置步骤。你需要一个 Cloudflare 账户,以及 Workers Paid plan,才能使用 Sandbox Containers。不过,其他所有产品要么完全免费,例如 AI Gateway;要么提供了相当慷慨的免费额度,足以让你开始使用,并在合理限制内扩展规模。
需要注意的是,Moltworker 是一个概念验证项目,而不是 Cloudflare 产品。我们的目标,是展示 Developer Platform 中一些最令人兴奋的功能:它们可以高效、安全地运行 AI Agent 和无人监督的代码,在利用全球网络优势的同时,还能获得出色的可观测性。
欢迎为我们的 GitHub repository 贡献代码,也可以 fork 它。接下来一段时间里,我们会持续关注该 repository 并提供支持。与此同时,我们也在考虑向官方项目的 upstream 贡献 Cloudflare skills。
希望你喜欢这次实验,也希望我们已经成功说服你:Cloudflare 是运行 AI 应用和 Agent 的理想之地。我们一直在不懈努力,尝试预判未来并推出相应功能。例如,使用 Agents SDK,你可以在几分钟内构建自己的第一个 Agent;使用 Sandboxes,你可以在隔离环境中运行任意代码,无须处理容器生命周期带来的复杂问题;还有 AI Search——Cloudflare 托管的向量搜索服务。以上只是其中几个例子。
Cloudflare 现在提供了一套完整的 AI 开发工具箱,包括 inference、storage API、database、面向有状态 workflow 的 durable execution,以及内置 AI 能力。这些构建模块组合在一起,让开发者能够在我们的全球边缘网络上构建并运行哪怕要求最高的 AI 应用。
如果你对 AI 充满热情,并希望帮助我们打造下一代产品和 API,我们正在招聘。