
Cloudflare 技术团队最近也加入了 OpenClaw 的热潮,他们开源了一个名为 Moltworker 的项目,让我们能够快速地将 OpenClaw 部署到云端,实现一个真正开箱即用、无需购买独立服务器的 AI 助手方案。
项目地址:https://github.com/cloudflare/moltworker
这并非一个简单的套壳应用。它内置了基于 Cloudflare 的浏览器自动化能力,可以执行网页截图和数据抓取任务。更重要的是,它原生支持 R2 存储,实现了数据的持久化。这意味着即使容器重启,你的对话历史和已配对的设备信息也不会丢失。
它甚至还提供了一个完整的管理界面,你可以在这里查看 R2 备份状态、审批新设备的配对请求、重启网关进程。整个应用通过集成 Cloudflare Access 进行身份认证保护,安全性很高。

最吸引人的一点是,部署在 Cloudflare 上的应用可以直接访问外网,并且能做到 24 小时不间断运行。我个人还将 OpenClaw 的聊天频道接入了 Discord,体验下来,Discord 的交互流畅度比其他平台要好很多。
一、为什么选择 Cloudflare 方案?
简单来说,这是一个将 OpenClaw AI 助手部署到 Cloudflare Workers 平台的一站式方案,你无需再费心管理任何物理或虚拟服务器。

这个方案的核心优势体现在以下三个关键技术点上:
1. Sandbox 容器替代传统服务器
传统的部署方式需要你购买 VPS、安装 Docker 并自行维护系统。而 Moltworker 直接利用了 Cloudflare Workers 提供的轻量级容器环境。它的好处是能够自动扩缩容,冷启动后会保持常驻,同时成本极低,仅需每月 $5 起的 Workers Paid 订阅即可。
2. 三重认证保障安全
整个访问流程设计了三层安全验证:用户请求 → Cloudflare Access 登录 → 验证 Gateway Token → 管理员批准设备配对 → 开始聊天。这不是简单的单密码防护,而是多层把关,有效防止未授权访问。
3. 基于 R2 的备份与恢复方案
容器重启通常会导致数据丢失,但 Moltworker 设计了一套巧妙的机制:每 5 分钟自动将数据备份到 Cloudflare R2 对象存储,并在容器启动时从 R2 恢复。这种方法比直接修改代码去适配 R2 数据库要简单且有效得多。
二、详细部署步骤
1. 准备工作
想要顺利部署,以下几项缺一不可:
- 硬性门槛:你需要开通 Cloudflare 的 Workers Paid 订阅($5/月起)。免费版不支持运行 Sandbox 容器,这 5 美元是必要投入。
- 本地环境:电脑上需要安装 Node.js 18+ 和 Docker。因为 Moltworker 的部署脚本需要在本地构建和打包容器镜像。
- 账号与密钥:准备好你的 Cloudflare 账号,以及计划使用的 AI 模型的 API Key(如 DeepSeek、OpenRouter 等)。
2. 认识部署工具 Wrangler
Wrangler 是 Cloudflare Workers 的官方命令行工具,你可以把它看作是管理云端 Worker 的“遥控器”。Moltworker 涉及大量敏感配置(如 API Key、Bot Token 等),这些信息绝不能硬编码在项目里。通过 Wrangler,我们可以以加密 Secret 的形式安全地将这些配置注入到 Worker 运行时环境中。
安装非常简单:
npm i -D wrangler@latest
然后登录你的 Cloudflare 账号:
npx wrangler login
执行命令后会打开浏览器,点击“Allow”授权即可。

登录成功后,你的终端就具备了操作 Cloudflare 资源的能力,后续的部署、配置密钥、查看日志都将通过它完成。
3. 克隆项目并安装依赖
Moltworker 的代码托管在 GitHub,我们首先将其克隆到本地并安装项目依赖。
# 克隆项目
git clone git@github.com:cloudflare/moltworker.git
# 进入目录
cd moltworker
# 安装依赖
npm install
4. 创建并配置 Cloudflare AI Gateway
根据官方 Quick Start 指南,接下来需要配置 AI 模型的访问方式。最快的方式是直接使用 Anthropic API Key。如果你有 Anthropic 的密钥,可以直接设置并跳过本小节。
# 设置你的 Anthropic API Key(直接访问)
npx wrangler secret put ANTHROPIC_API_KEY
我选择使用 Cloudflare AI Gateway。理由很简单:它更省心,并且提供了一个可观测的控制面板,可以清晰看到每次调用的 Token 消耗和日志,方便成本管理。

第一步:在 Cloudflare 仪表盘创建新网关
在 Cloudflare 仪表盘的“计算和 AI”菜单下,找到“AI Gateway”入口。

点击“创建网关”,为你的网关起一个名字,例如 openclaw-gateway。

第二步:添加提供程序密钥
Cloudflare AI Gateway 支持众多模型提供商。这里以大家熟悉的 DeepSeek 为例。在网关的“提供程序密钥”页面,找到 DeepSeek,点击“+ Add”。

在弹出的窗口中填入你自己的 DeepSeek API Key。请注意,Gateway 本身只是一个代理和管控层,最终调用模型的还是你提供的这个密钥。

第三步:获取 Gateway 专属的访问令牌 (Token)
为了让我们的 Worker 能够访问这个 AI Gateway,需要创建一个用于身份验证的令牌。在网关的“概述”页面,找到“Create a token”区域。

点击后,输入令牌名称(如 openclaw)并创建。务必立即复制生成的令牌,此令牌只会显示一次。


第四步:在部署时注入密钥
回到终端,我们需要通过 Wrangler 将上一步获得的 Gateway 令牌和安全地设置到 Worker 环境中。
首先,设置 Gateway 的 API Key (即刚才复制的令牌):
# 设置用于访问 Cloudflare AI Gateway 的令牌
npx wrangler secret put AI_GATEWAY_API_KEY
执行命令时,粘贴你的令牌。系统会自动在 Cloudflare 上创建一个名为 moltbot-sandbox 的 Worker。


接着,设置 Gateway 的基础 URL (Base URL)。这个 URL 的格式取决于你选择的模型提供商。
# 设置 AI Gateway 的基础 URL
npx wrangler secret put AI_GATEWAY_BASE_URL
# 示例格式:https://gateway.ai.cloudflare.com/v1/你的账户ID/你的网关名/deepseek
执行命令时,填入对应格式的 URL。例如,如果你在网关里配置了 DeepSeek,URL 可能就是 https://gateway.ai.cloudflare.com/v1/YOUR_ACCOUNT_ID/openclaw-gateway/deepseek。

提示:AI Gateway 充当了“二传手”的角色。它使用你提供的 DeepSeek Key 去调用模型,但额外为你提供了缓存、限流、用量统计等高级功能。
5. 设置 OpenClaw 网关访问令牌
这是用于登录你的 OpenClaw AI 助手控制界面的安全凭证,非常重要,一旦泄露意味着他人可以控制你的助手。
生成并设置高强度 Token
不要使用简单密码,建议直接生成一个高强度随机字符串。
# 生成 32 字节(64 字符)的随机十六进制字符串
export MOLTBOT_GATEWAY_TOKEN=$(openssl rand -hex 32)
# 显示并复制保存好!
echo “你的 Gateway Token: $MOLTBOT_GATEWAY_TOKEN”
# 通过 Wrangler 设置到 Cloudflare Worker 环境
echo “$MOLTBOT_GATEWAY_TOKEN” | npx wrangler secret put MOLTBOT_GATEWAY_TOKEN
区分两个关键 Token
请务必分清以下两个 Token 的用途:
| Token |
用途 |
MOLTBOT_GATEWAY_TOKEN |
登录你的 AI 助手控制界面(在 URL 中携带) |
AI_GATEWAY_API_KEY |
连接 Cloudflare AI Gateway(用于调用模型) |
部署成功后,你需要通过以下格式的 URL 来访问控制台:
https://your-worker.workers.dev/?token=YOUR_GATEWAY_TOKEN
6. 配置 Cloudflare Access 进行访问控制
为了给管理后台再加一把锁,我们需要启用并配置 Cloudflare Access。
在 Worker 设置中启用 Access
- 进入 Cloudflare 仪表盘的 Workers & Pages。
- 点击进入刚才创建的
moltbot-sandbox Worker。
- 进入 设置 (Settings) -> 域和路由 (Domains & Routes)。
- 找到
workers.dev 域名行,点击右侧的 ... 菜单,选择 Enable Cloudflare Access。

获取并设置 Access 验证所需的信息
启用保护后,需要告诉 Worker 如何验证用户通过 Access 登录后获得的“通行证”(JWT Token)。我们需要两个值:团队域名 (Team Domain) 和应用程序受众标签 (AUD)。
# 设置你的 Cloudflare Access 团队域名 (例如:“myteam.cloudflareaccess.com”)
npx wrangler secret put CF_ACCESS_TEAM_DOMAIN
# 设置从 Access 应用程序中复制的 AUD 标签
npx wrangler secret put CF_ACCESS_AUD
通俗地理解:
CF_ACCESS_TEAM_DOMAIN:相当于“公安局总部地址”,告诉 Worker 该去哪个认证中心校验令牌。
CF_ACCESS_AUD:相当于“你的身份证号”,用于验证这个令牌是不是颁发给你这个特定应用的。
在哪里找到这两个值?
CF_ACCESS_TEAM_DOMAIN:在 Zero Trust Dashboard 的 Settings -> Team Name and Domain 部分找到。

CF_ACCESS_AUD:在 Zero Trust Dashboard -> Access -> Applications 中,点击你为 Worker 创建的应用,在配置页面找到“应用程序受众 (AUD) 标签”,复制那串 UUID。


7. 配置 R2 持久化存储
默认情况下,Cloudflare Workers 是无状态的,容器重启后所有数据(对话历史、配对信息)都会丢失。为了让 AI 助手拥有“长期记忆”,必须配置 R2 存储。
部署过程中通常会自动创建一个名为 moltbot-data 的 R2 存储桶。我们需要为 Worker 创建访问此存储桶的权限。
创建 R2 API 访问令牌
- 在 Cloudflare 仪表盘进入 R2。
- 在右侧找到并点击 Manage R2 API Tokens。

- 点击 创建 User API 令牌。

- 权限:选择 Object Read & Write(对象读写)。
- 范围:为了安全,建议指定存储桶。选择 Specific bucket,然后勾选
moltbot-data。

- 创建成功后,立即复制并保存好生成的
Access Key ID 和 Secret Access Key。它们只显示一次。

通过 Wrangler 配置存储密钥
回到终端,设置 3 个必要的密钥:
- 设置 R2 Access Key ID:
npx wrangler secret put R2_ACCESS_KEY_ID
- 设置 R2 Secret Access Key:
npx wrangler secret put R2_SECRET_ACCESS_KEY
- 设置 Cloudflare 账户 ID:
npx wrangler secret put CF_ACCOUNT_ID
账户 ID 可以在 Cloudflare 仪表盘首页,点击账户名右侧的 ...,选择 复制账户ID 获得。

8. 执行部署
所有配置完成后,运行部署命令:
npm run deploy
部署成功后,终端会输出你的 OpenClaw 应用的访问地址。

9. 首次访问与设备配对
使用部署成功后输出的地址,并在 URL 后附加你的 MOLTBOT_GATEWAY_TOKEN 进行访问:
https://your-worker.workers.dev/?token=YOUR_GATEWAY_TOKEN
首次访问时,浏览器会跳转到 Cloudflare Access 登录页,要求你输入邮箱(必须是你授权列表中的邮箱)并验证。

登录成功后,由于是首次冷启动,容器需要约 1-2 分钟进行初始化,请耐心等待。

加载完成后,你会看到 OpenClaw 的控制面板,但通常会提示需要配对。根据提示,访问 https://your-worker.workers.dev/_admin/ 进入 Moltbot Admin 管理后台。

在 Admin 后台的 “Pending Pairing Requests” 区域,批准你的设备连接请求。

批准后,返回主控制面板,现在应该可以看到连接状态变为 “Connected”,并可以开始使用了。

三、如何配置 AI 模型
由于我们无法通过 SSH 访问容器内部,因此不能使用命令行来修改配置。不过,我们可以直接在 OpenClaw 的网页控制面板中进行配置。
点击左侧导航栏的 Config,然后切换到 Raw 模式,即可直接编辑 JSON 格式的配置文件。默认的模型配置通常是针对 Anthropic 的,我们需要手动修改为我们实际使用的模型(如 DeepSeek)。

配置 DeepSeek 模型
请将以下配置中的 baseUrl 替换为你的 AI Gateway 中 DeepSeek 的地址,将 apiKey 替换为你创建的 Cloudflare AI Gateway 的 Token(注意:不是 DeepSeek 的原始 API Key)。
{
“models”: {
“providers”: {
“deepseek”: {
“baseUrl”: “https://gateway.ai.cloudflare.com/v1/你的账户ID/openclaw-gateway/deepseek”,
“apiKey”: “你的AI_GATEWAY_API_KEY”, // 这里是 Cloudflare Gateway 的 Token
“api”: “openai-completions”,
“models”: [
{
“id”: “deepseek-chat”,
“name”: “DeepSeek Chat”,
“reasoning”: false,
“input”: [“text”],
“cost”: {“input”: 0, “output”: 0, “cacheRead”: 0, “cacheWrite”: 0},
“contextWindow”: 200000,
“maxTokens”: 8192
}
]
}
}
}
}
另外,别忘了在 agents 部分将主模型设置为 DeepSeek:
{
“agents”: {
“defaults”: {
“model”: {
“primary”: “deepseek/deepseek-chat”
}
}
}
}
修改完成后,点击 Apply 或 Save 使配置立即生效。现在,你就可以在聊天窗口询问模型,它会正确地回答正在使用 DeepSeek。

因为所有请求都经过 AI Gateway,你可以在 Cloudflare 后台的网关日志中,清晰地看到每一次对话的 Token 消耗和详细信息,这对于监控和成本控制非常有用。

进阶:配置 OpenRouter 免费模型路由
如果你希望零成本运行,或者想体验多个不同的免费模型(如 Gemini、Kimi 等),可以通过 OpenRouter 的免费聚合网关来实现。
OpenRouter 提供了一个名为 “free” 的路由,可以自动在各种免费模型之间进行智能选择。

第一步:在 AI Gateway 中添加 OpenRouter 提供商
回到 Cloudflare AI Gateway 的 “提供程序密钥” 页面,找到 OpenRouter,点击 Add,填入你自己的 OpenRouter API Key (sk-or-xxxx)。这样 Gateway 才有权限代理你去调用 OpenRouter 的服务。

第二步:在 OpenClaw 配置中添加 OpenRouter
在 OpenClaw 的 Config -> Raw 编辑界面,在 providers 字段内追加 OpenRouter 的配置。
关键:这里的 apiKey 依然填写你之前创建的 Cloudflare AI Gateway Token,而不是 OpenRouter 的 API Key。baseUrl 也需要指向你在 Gateway 中为 OpenRouter 配置的端点。
{
“models”: {
“providers”: {
“openrouter”: {
“baseUrl”: “https://gateway.ai.cloudflare.com/v1/你的账户ID/openclaw-gateway/openrouter”,
“apiKey”: “你的AI_GATEWAY_API_KEY”, // 仍然是 Cloudflare Gateway 的 Token
“api”: “openai-completions”,
“models”: [
{
“id”: “openrouter/free”,
“name”: “Openrouter free”,
“reasoning”: false,
“input”: [“text”, “image”],
“cost”: {“input”: 0, “output”: 0, “cacheRead”: 0, “cacheWrite”: 0},
“contextWindow”: 200000,
“maxTokens”: 8192
}
]
}
}
}
}
配置完成后,你的 AI 助手就会通过 OpenRouter 的免费路由,在各种支持的模型间自动选择,实现真正的零成本运行。你可以在 AI Gateway 日志中看到模型被动态路由的痕迹。

四、如何配置聊天频道 (Chat Channel)
官方文档建议使用 wrangler secret put 命令来配置 Telegram、Discord 等聊天频道的 Bot Token。但我发现一个更便捷的方法:直接让 AI 助手在聊天对话中帮你配置。

例如,要配置 Discord 频道,你只需要在 OpenClaw 的聊天窗口中对它说:“我要增加一个 chat channel,类型是 Discord,它的 token 是 你的Discord_Bot_Token”。

稍等片刻,助手就会自动执行配置命令,修改底层配置文件,并重启网关以应用更改。

更棒的是,当 Discord Bot 上线后需要与用户进行配对(Pairing)时,你也不需要在后台手动点击批准。配对请求信息会直接显示在聊天窗口中,你可以直接在这里完成批准操作。

一切就绪后,你就可以直接在 Discord 服务器中 @你的 Bot,享受丝滑的聊天体验了。这种将复杂开源实战项目通过云原生平台简化的部署方式,极大降低了云栈社区开发者们的使用门槛。
