Moltworker

10小时前发布 4 00

Moltworker是一个中间件 Worker 和适配脚本,允许在 Cloudflare 的 Sandbox SDK 和开发者平台 API 上运行 OpenClaw。

所在地:
美国
收录时间:
2026-01-31
其他站点:
MoltworkerMoltworker

在 Cloudflare Sandbox 容器中运行 OpenClaw(曾用名 MoltbotClawdbot)个人 AI 助手,无需本地专用硬件,即可获得一款全托管、始终在线的自托管 AI 工具。

前置说明

  1. 运行要求:需订阅 Cloudflare 每月 5 美元的 Workers 付费计划(Sandbox 容器功能专属)。
  2. 实验性声明:本项目为概念验证项目,并非 Cloudflare 官方支持产品,可能随时出现故障且不另行通知,使用风险需自行承担。
  3. 免费福利:项目用到的 Cloudflare Access、Browser Rendering、AI Gateway、R2 Storage 均提供免费额度,日常使用无需额外付费。
Moltworker

核心前提与准备

1. 必需条件(缺一不可)

  • Cloudflare Workers 付费计划(5 美元/月):用于启用 Sandbox 容器,是部署基础。
  • Anthropic API 密钥:用于调用 Claude 模型;若不想管理第三方密钥,可选择 Cloudflare AI Gateway 统一计费模式。

2. 什么是 OpenClaw?

OpenClaw 是一款采用网关架构的开源个人 AI 助手,支持多聊天平台对接,核心功能包括:

  • 基于 Web 的可视化控制界面,操作便捷。
  • 支持 Telegram、Discord、Slack 多通道消息交互。
  • 安全的设备配对机制,新设备连接需管理员显式批准。
  • 跨会话持久化对话,保留聊天历史与上下文记忆。
  • 可扩展的代理运行时,支持自定义工作空间与技能。

本项目将 OpenClaw 打包适配 Cloudflare Sandbox 容器,提供全托管部署方案,可选 R2 存储实现数据跨容器重启保留,无需用户自行维护服务器。

快速开始:一键部署核心步骤

部署前请确保已安装 Node.js 环境,且已登录 Cloudflare Wrangler 工具(npx wrangler login 完成授权)。

# 1. 克隆项目(若未克隆)并安装依赖
npm install

# 2. 配置核心密钥(二选一即可)
# 方案A:直接使用 Anthropic API(无需 AI Gateway)
npx wrangler secret put ANTHROPIC_API_KEY
# 执行后按照提示粘贴你的 Anthropic API 密钥

# 方案B:使用 Cloudflare AI Gateway(推荐,便于成本管控)
# npx wrangler secret put AI_GATEWAY_API_KEY
# npx wrangler secret put AI_GATEWAY_BASE_URL

# 3. 生成并配置网关令牌(远程访问控制界面必需,务必保存)
export MOLTBOT_GATEWAY_TOKEN=$(openssl rand -hex 32)
echo "你的网关令牌:$MOLTBOT_GATEWAY_TOKEN" # 复制该令牌备用
echo "$MOLTBOT_GATEWAY_TOKEN" | npx wrangler secret put MOLTBOT_GATEWAY_TOKEN

# 4. 部署项目到 Cloudflare Workers
npm run deploy

部署后首次访问

  1. 部署成功后,会得到一个 Worker 访问地址(格式:https://your-worker.workers.dev)。
  2. 拼接网关令牌访问控制界面:https://your-worker.workers.dev/?token=YOUR_GATEWAY_TOKEN(替换 YOUR_GATEWAY_TOKEN 为步骤 3 生成的令牌)。
  3. 注意:首次请求需 1-2 分钟完成容器冷启动,耐心等待即可;且在完成「管理界面设置」和「设备配对」前,控制界面无法正常使用。

关键配置:启用管理界面(必需)

管理界面(路径 /_admin/)用于设备配对、数据备份等核心操作,需通过 Cloudflare Access 保护,配置分为两步。

步骤 1:启用 Cloudflare Access 保护 Worker

简易方案(推荐,内置集成)

  1. 进入 Cloudflare 控制台 → 「Workers & Pages」仪表板。
  2. 选择你部署的 Moltworker 项目(如 moltbot-sandbox)。
  3. 进入「Settings」→「Domains & Routes」,找到 workers.dev 域名行,点击右侧三点菜单 →「Enable Cloudflare Access」。
  4. 点击「Manage Cloudflare Access」配置访问权限:添加你的邮箱到允许列表,或配置 Google、GitHub 等身份提供商。
  5. 复制「Application Audience (AUD)」标签(后续配置需用到),保存备用。

备选方案(手动创建 Access 应用,更多控制)

  1. 进入 Cloudflare Zero Trust 控制台 →「Access」→「Applications」→ 新建「Self-hosted」应用。
  2. 配置应用域名为你的 Worker URL(如 moltbot-sandbox.your-subdomain.workers.dev)。
  3. 添加保护路径:/_admin/*/api/*/debug/*(核心管理与接口路径)。
  4. 配置身份提供商,完成后复制「Application Audience (AUD)」标签备用。

步骤 2:设置 Access 密钥并重新部署

# 1. 配置 Cloudflare Access 团队域名(格式:myteam.cloudflareaccess.com)
npx wrangler secret put CF_ACCESS_TEAM_DOMAIN

# 2. 配置步骤 1 复制的 Application Audience (AUD)
npx wrangler secret put CF_ACCESS_AUD

# 3. 重新部署项目,使配置生效
npm run deploy

验证效果

访问 https://your-worker.workers.dev/_admin/,会跳转至 Cloudflare Access 登录页面,登录成功后即可进入管理界面。

可选配置:提升使用体验

1. 持久化存储(R2):防止数据丢失

默认情况下,容器重启后 OpenClaw 的配置、配对设备、对话历史会全部丢失,配置 R2 存储可实现数据持久化,推荐启用。

步骤 1:创建 R2 API 令牌

  1. 进入 Cloudflare 控制台 →「R2」→「Overview」→「Manage R2 API Tokens」。
  2. 新建令牌,权限选择「Object Read & Write」,指定存储桶为 moltbot-data(首次部署会自动创建)。
  3. 复制「Access Key ID」和「Secret Access Key」,保存备用。
  4. 复制你的 Cloudflare 账户 ID(控制台首页,账户名称右侧三点菜单 →「复制账户 ID」)。

步骤 2:配置 R2 密钥并重新部署

# 1. 配置 R2 访问密钥 ID
npx wrangler secret put R2_ACCESS_KEY_ID

# 2. 配置 R2 秘密访问密钥
npx wrangler secret put R2_SECRET_ACCESS_KEY

# 3. 配置 Cloudflare 账户 ID
npx wrangler secret put CF_ACCOUNT_ID

# 4. 重新部署
npm run deploy

工作原理

  • 容器启动时:自动从 R2 恢复备份数据到 OpenClaw 配置目录。
  • 运行期间:每 5 分钟自动同步数据到 R2,也可在管理界面手动触发「Backup Now」。
  • 容器重启后:自动加载 R2 中的最新备份,保留所有历史数据。

2. 容器生命周期:按需配置休眠(降低成本)

默认情况下,Sandbox 容器无限期保持活动(SANDBOX_SLEEP_AFTER=never),避免冷启动等待;若使用不频繁,可配置闲置休眠:

# 配置闲置超时时间(10m=10分钟,1h=1小时,支持多种格式)
npx wrangler secret put SANDBOX_SLEEP_AFTER
# 输入示例:10m

# 重新部署生效
npm run deploy

3. 多聊天通道对接(Telegram/Discord/Slack)

Telegram 对接

npx wrangler secret put TELEGRAM_BOT_TOKEN # 粘贴你的 Telegram 机器人令牌
npm run deploy

Discord 对接

npx wrangler secret put DISCORD_BOT_TOKEN # 粘贴你的 Discord 机器人令牌
npm run deploy

Slack 对接

npx wrangler secret put SLACK_BOT_TOKEN # 粘贴 Slack 机器人令牌
npx wrangler secret put SLACK_APP_TOKEN # 粘贴 Slack 应用令牌
npm run deploy

4. 浏览器自动化(CDP):实现网页截图/视频生成

项目内置 Chrome DevTools Protocol(CDP)填充程序,支持 OpenClaw 控制无头浏览器完成网页抓取、截图等任务,配置步骤如下:

# 1. 配置 CDP 身份验证密钥(自定义安全随机字符串)
npx wrangler secret put CDP_SECRET

# 2. 配置 Worker 公共 URL(格式:https://your-worker.workers.dev)
npx wrangler secret put WORKER_URL

# 3. 重新部署
npm run deploy

核心可用端点(需携带 CDP_SECRET 请求头验证)

端点功能描述
GET /cdp/json/version获取浏览器版本信息
GET /cdp/json/list列出可用浏览器目标
GET /cdp/json/new创建新的浏览器目标
WS /cdp/devtools/browser/{id}建立 CDP 命令 WebSocket 连接

5. Cloudflare AI Gateway:简化密钥管理与成本管控

通过 AI Gateway 路由 API 请求,可实现缓存、速率限制、成本跟踪,且无需手动维护第三方 API 密钥,配置步骤如下:

  1. 进入 Cloudflare 控制台 →「AI Gateway」→ 新建网关,添加目标提供商(如 Anthropic)。
  2. 复制网关端点 URL(格式:https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/anthropic)。
  3. 配置密钥并重新部署:
    # 配置 AI Gateway 提供商 API 密钥
    npx wrangler secret put AI_GATEWAY_API_KEY
    
    # 配置 AI Gateway 端点 URL
    npx wrangler secret put AI_GATEWAY_BASE_URL
    
    # 重新部署
    npm run deploy
    

说明:若同时配置了 AI_GATEWAY_* 和 ANTHROPIC_* 变量,AI_GATEWAY_* 优先级更高。

本地开发配置

本地开发时,创建 .dev.vars 文件(与项目根目录同级),添加以下配置可跳过生产环境的身份验证限制:

DEV_MODE=true               # 跳过 Cloudflare Access 验证与设备配对(仅本地开发)
DEBUG_ROUTES=true           # 启用 /debug/* 调试路由(可选)

启动本地开发环境:

npm run dev

注意:wrangler dev 对 Sandbox 代理 WebSocket 存在已知限制,HTTP 请求可正常运行,WebSocket 连接可能失败,完整功能需部署到 Cloudflare 验证。

核心功能使用

1. 设备配对(安全验证)

默认采用「设备配对」机制,新设备(浏览器、聊天机器人)连接流程:

  1. 设备发起连接请求,进入待定状态。
  2. 管理员登录 /_admin/ 管理界面,查看待配对设备列表。
  3. 单独或批量批准设备,批准后设备即可正常与 OpenClaw 交互。

2. 管理界面(/_admin/

核心功能:

  • 查看 R2 存储状态与上次备份时间,手动触发数据备份。
  • 重启 OpenClaw 网关进程,应用新配置。
  • 管理设备配对(批准待处理设备、查看已配对设备)。

3. 调试端点(/debug/*

启用 DEBUG_ROUTES=true 后,可访问以下调试接口(需 Cloudflare Access 验证):

  • GET /debug/processes:列出容器内所有运行进程。
  • GET /debug/logs?id=<process_id>:获取指定进程的运行日志。
  • GET /debug/version:获取容器与 OpenClaw 版本信息。

4. 内置技能(cloudflare-browser

容器预安装 cloudflare-browser 技能,支持浏览器自动化操作,核心用法:

# 网页截图(生成 output.png)
node /root/clawd/skills/cloudflare-browser/scripts/screenshot.js https://example.com output.png

# 多网页生成视频(生成 output.mp4,--scroll 开启页面滚动)
node /root/clawd/skills/cloudflare-browser/scripts/video.js "https://site1.com,https://site2.com" output.mp4 --scroll

所有密钥参考(快速查询)

密钥名称是否必需核心描述
AI_GATEWAY_API_KEY否*AI Gateway 提供商密钥(搭配 AI_GATEWAY_BASE_URL 使用)
AI_GATEWAY_BASE_URL否*AI Gateway 端点 URL(使用 AI Gateway 时必需)
ANTHROPIC_API_KEY否*Anthropic API 密钥(未配置 AI Gateway 时必需)
CF_ACCESS_TEAM_DOMAIN是*Cloudflare Access 团队域名(管理界面必需)
CF_ACCESS_AUD是*Cloudflare Access 应用 AUD 标签(管理界面必需)
MOLTBOT_GATEWAY_TOKEN网关访问令牌(控制界面必需,需保密)
R2_ACCESS_KEY_IDR2 访问密钥(持久化存储必需)
R2_SECRET_ACCESS_KEYR2 秘密密钥(持久化存储必需)
CF_ACCOUNT_IDCloudflare 账户 ID(持久化存储必需)
TELEGRAM_BOT_TOKENTelegram 机器人令牌(对接 Telegram 必需)
DISCORD_BOT_TOKENDiscord 机器人令牌(对接 Discord 必需)
SLACK_BOT_TOKENSlack 机器人令牌(对接 Slack 必需)
SLACK_APP_TOKENSlack 应用令牌(对接 Slack 必需)
CDP_SECRETCDP 身份验证密钥(浏览器自动化必需)
WORKER_URLWorker 公共 URL(浏览器自动化必需)

注:* 标记表示「二选一」或「特定功能必需」,具体参考前文配置说明。

安全考虑

Moltworker 采用三层身份验证机制,保障使用安全:

  1. Cloudflare Access:保护核心管理与接口路径,仅授权用户可访问。
  2. 网关令牌:控制界面访问必需,需妥善保管,避免泄露。
  3. 设备配对:所有交互设备需显式批准,防止未授权访问。

常见故障排除

  1. npm run dev 报 Unauthorized 错误:需在 Cloudflare 控制台启用「Containers」功能。
  2. 网关启动失败:通过 npx wrangler secret list 检查密钥配置,npx wrangler tail 查看运行日志。
  3. 配置更改不生效:编辑项目 Dockerfile 中的 # Build cache bust: 注释(修改任意字符),重新部署即可清除缓存。
  4. 首次请求缓慢:正常现象,容器冷启动需 1-2 分钟,后续请求会更快。
  5. R2 未挂载:检查 R2_ACCESS_KEY_IDR2_SECRET_ACCESS_KEYCF_ACCOUNT_ID 三个密钥是否配置完整(仅生产环境生效)。
  6. 管理界面访问被拒:验证 CF_ACCESS_TEAM_DOMAIN 和 CF_ACCESS_AUD 配置,以及 Cloudflare Access 应用的路径保护规则。
  7. 设备未出现在管理界面:设备列表加载需 10-15 秒(WebSocket 连接开销),耐心等待后刷新即可。

数据统计

相关导航

暂无评论

none
暂无评论...