一、为什么要把 QClaw 搬上云?

OpenClaw(社区俗称 龙虾)爆火之后,大家最常见的两种玩法是:

  • 本机安装(Windows / macOS):门槛不高,但占资源、容易和主力电脑环境打架,还要考虑数据安全;
  • 云端部署(轻量服务器 / 自建机房):7×24 小时在线,但要一定运维和命令行能力。

腾讯现在已经把围绕 OpenClaw 的整套【养虾套餐】拼齐:

  • QClaw:腾讯电脑管家团队基于 OpenClaw 打造的本地 AI Agent 助手,本地运行、微信直连,开箱即用;
  • 腾讯云 Lighthouse:面向开发者的轻量云服务器,提供 OpenClaw 一键部署模板,几分钟就能在云上养一只 云端虾;
  • 腾讯云桌面:提供 预装 OpenClaw 镜像 的云桌面,7×24 小时在线、安全隔离、本地一样的 GUI 体验。

这篇文章把这三个产品串起来一起玩。

  • Lighthouse腾讯云桌面 托管 龙虾,7×24 小时在线,变成真正的云端数字员工;
  • QClaw 做本地入口和微信入口,把手机、PC 统统连进来;既能在 PC 上用,又能通过腾讯云桌面远程访问。

打通 本地虾 + 云端虾 + 云桌面虾 三位一体。

二、整体架构

先简单分工一下:

组件 角色定位 主要能力
QClaw(本地) 随身助手 本地运行,微信/QQ/企微直连,零配置,一键安装
Lighthouse 云端虾 7×24 小时在线 OpenClaw 一键部署、成本低、可接入 QQ/企微/钉钉/飞书 等主流 IM
腾讯云桌面云桌面虾 安全隔离、带 GUI 的 云电脑 预装 OpenClaw 镜像,双系统 GUI、安全隔离,7×24 小时在线

在这里插入图片描述

要构建的,是一个云端龙虾工作站。

白天在办公室用腾讯云桌面 + QClaw 办公,晚上关电脑下班后,手机微信一句话,云端龙虾继续在 Lighthouse / 云桌面上干活;查看结果,连上云桌面,一边看报表/代码,一边让龙虾讲解。

满足:

  • 永不掉线:个人电脑可以休眠/关机,云端龙虾还是在线执行定时任务;
  • 本地电脑只作为入口,真正的数据处理在云上隔离环境完成;
  • 微信、PC 客户端 都能直接跟龙虾对话、操控;
  • 后续可以接入更多 IM(QQ、企微、钉钉、飞书)和更多模型。

三、基础产品能力

(1)QClaw:基于 OpenClaw 的本地化 AI Agent 助手。

官方定位:本地运行的 AI Agent 助手,腾讯电脑管家团队基于 OpenClaw 开源生态深度封装,称为 【小龙虾 AI】 。

支持:

  • 一键安装:20 秒完成安装,三步上手,不用手动配置环境;
  • 本地隐私安全:模型推理、数据处理都限定在本机,不上云;
  • 微信直连:扫描绑定后,可在微信里发指令远程控制本机文档、代码等;
  • Skills 丰富:接入 ClawHub/GitHub 等平台,技能数超过 5000 个。

(2)腾讯云 Lighthouse:OpenClaw 一键部署的云端虾。

腾讯云在 Lighthouse 提供 OpenClaw 应用模板,实现秒级部署:

目标:云端 全天在线 的龙虾,免去本地高权限带来的风险;

优势

  • 一键部署 OpenClaw,预置依赖环境;
  • 支持国内外多个地域;
  • 支持主流 IM 通道接入(QQ、企微、飞书、钉钉、Telegram、Discord 等);
  • 控制台内提供 OpenClaw 模型和通道的可视化配置面板。

(3)腾讯云桌面:预装 OpenClaw 的 云桌面虾房 。

腾讯云桌面现在提供 预装 OpenClaw 的镜像

  • 预装 OpenClaw:免去手工安装和环境配置,进入桌面后点点鼠标即可一键配置;
  • 云端运行,7×24 小时在线;
  • 云上环境和本地环境物理隔离,本地数据不会被龙虾直接触达;
  • 支持 Linux 和 Windows 双系统,完整桌面 GUI 体验;
  • 适用场景:个人私人 AI 助手、企业员工统一的 AI 助手桌面等。

四、整体架构设计

逻辑架构:

终端层

通道层

云端计算层

本地层

Windows

macOS

安装 QClaw

腾讯云 Lighthouse
部署 OpenClaw 云端龙虾

腾讯云桌面
预装 OpenClaw 镜像
可视化桌面 / 图形前端

微信 + QClaw
下发自然语言任务

通道模块接入
QQ / 企微 / 钉钉 / 飞书
自动回复/群聊机器人

PC 浏览器

手机微信

  1. 本地层:Windows / macOS 上安装 QClaw;
  2. 云端计算层
    • Lighthouse:部署 OpenClaw 作为云端龙虾;
    • 腾讯云桌面:预装 OpenClaw 镜像,作为可视化桌面和 图形前端;
  3. 通道层
    • 微信 + QClaw:下发自然语言任务;
    • QQ / 企微 / 钉钉 / 飞书:由 OpenClaw 通道模块接入,自动回复/群聊机器人;
  4. 终端层:PC 浏览器、手机微信远程连接腾讯云桌面。

自动生成日报 + 云端查看:

  1. 白天在腾讯云桌面里写代码/办公,OpenClaw 跟本地工具协作;

  2. 下班前在微信上对 QClaw 说一句:

    帮在云桌面上跑一遍今天的日报脚本,生成 PPT,做好后发给我。

  3. QClaw 把指令转给云端 OpenClaw / 云桌面实例:

    • 云桌面内运行 report_gen.py
    • 调用腾讯云存储 COS 保存结果,再通过微信发送链接给我;
  4. 晚上回家连接腾讯云桌面:打开 PPT,配合 QClaw 的讲解,浏览日报内容。

五、详细部署步骤

5.1、本地安装并绑定 QClaw

QClaw 的一大优势是 零配置,不用像搭建原版 OpenClaw 那样折腾 Node.js、Git 环境,一个安装包即可搞定。

Windows 安装步骤 :

  1. 双击下载好的 .exe 安装包。
  2. 在安装向导中,点击“安装”即可。

macOS 安装步骤:

  1. 双击下载好的 .dmg文件。
  2. 把 QClaw图标拖拽到 Applications文件夹。
  3. 拖拽完成即安装成功,在启动台或应用程序中即可找到。

安装完成后启动 QClaw,扫码绑定微信:

QClaw 界面查看预置 Skills(办公、文档、代码、整理文件等)。技能是 QClaw 实现各种操作的基础。安装完成后,基础技能包会自动启用。

到这里,就已经拥有一只本地小龙虾,可以先玩一玩:

5.2、基于 Lighthouse 一键部署「云端虾」

先买一个轻量应用服务器 Lighthouse:

在这里插入图片描述

然后点击 查看服务器 进入轻量云产品控制台界面,查看刚刚创建完成的服务器。

基于OpenClaw应用模版完成服务器创建后,OpenClaw也已经同步在服务器完成安装部署。轻量云控制台界面点击服务器实例卡片的“…”按钮,选择管理实例进入实例管理页面,进行后续的OpenClaw模型配置和通道配置操作。

进入“应用管理”页签,可以看到下面的界面:

接下来就可以在控制台界面进行OpenClaw的模型(Models)配置、通道(Channels)配置!

(1)OpenClaw配置面板选择腾讯云DeepSeek并选择模型版本,点击 一键添加并应用按钮。

(2)还要进行OpenClaw的通道配置,把OpenClaw接入各类聊天软件应用。我接入的是QQ,腾讯QQ开放平台官网用手机QQ扫描二维码进行注册/登录。

进入QQ机器人配置页,直接新建一个QQ机器人。 要记下 “AppID” 和 “AppSecret” 两个参数,最好保存到个人记事本或备忘录,后续步骤要用。

QQ软件可以看到新建的QQ机器人已经被添加至消息列表。

(3)进入“应用管理”页签,在“Channel配置”输入框,选择“QQ”并输入在前面步骤获取的QQ机器人App ID和App Secret,等个几十秒后页面提示“保存成功”即完成配置。

这里就初步完成OpenClaw配置,手机QQ和电脑版都可以开始跟已接入OpenClaw的QQ机器人进行聊天。

5.3、创建腾讯云桌面,选择预装 OpenClaw 镜像

腾讯云桌面有专门的 OpenClaw 预装镜像,流程:

(1)创建云桌面实例,选择预装 OpenClaw 镜像(官方给出的 OpenClaw 专属版)。

(2)Linux 操作系统云桌面,登录并打开云桌面后,在云桌面任务找到 OpenClaw 快速配置并打开。

(3)模型(Models)配置内,进行 OpenClaw 模型配置。

(4)通道(Channels)配置,我用QQ机器人接入,跟前面是一样的,这里就不再赘述了!配置消息通道后,就可以接收和回复 OpenClaw 消息。

腾讯云桌面的优点:

  • 预装 OpenClaw,免部署,可视化一键配置
  • 支持 Linux & Windows 双系统和 GUI,对不熟悉命令行的用户非常友好;
  • 云上 7×24 小时运行,提供每日自动备份、防误删、防误操作能力;
  • 云上和本地物理隔离

六、把 QClaw 接入云端虾 & 云桌面虾

用 QClaw 做入口,把云端 OpenClaw 当 后端。

整体逻辑:

  • QClaw:负责本地 UI + 微信入口,是 前端,也是统一指挥中心
  • Lighthouse 的 OpenClaw 实例:常驻 7×24 小时在线,是主力计算节点
  • 腾讯云桌面:提供图形桌面和安全隔离环境。

逻辑结构图:

HTTP / WebSocket 通信

手机微信/QClaw 小程序

本地 QClaw 客户端

Lighthouse 上的
OpenClaw 网关
(端口: 18789)

调用 技能(Skills)/脚本(scripts)

通过 IM 通道 与外部应用联动

QQ

企微

钉钉

...

腾讯云桌面 CVD

预装 OpenClaw 桌面环境

可远程桌面访问

可 VR 访问

6.1、让 QClaw 拿到可用的 OpenClaw Token

从 QClaw / WeChat 登录流程,拿到可复用的 access_token,用来后续从本地脚本直接调用 Lighthouse 的 OpenClaw HTTP 接口。

基于一个已经反向解析出来的 QClaw WeChat 客户端(photon-hq/qclaw-wechat-client)的协议说明,可以写一个只依赖 requests 的 Python 辅助工具。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
步骤:
1. 向 QClaw 后端请求一个微信登录 state(带 CSRF 防护)
2. 拼出扫码 URL
3. 用微信扫码登录后,后端会回调配置的 redirect_uri 携带 ?code=xxx
4. 拿 code + state 去换取 openclaw_channel_token
5. 再用 channel_token 换取真正的 access_token(JWT),后续 HTTP 调用都用它
"""

import requests

WX_API_BASE = "https://wechat.qclaw.qq.com"

def get_login_state(guid: str) -> str:
    resp = requests.get(
        f"{WX_API_BASE}/wx_login_state",
        headers={
            "X-Guid": guid,
            "X-Version": "1",
        },
        timeout=10,
    )
    resp.raise_for_status()
    data = resp.json()
    state = data.get("state")
    if not state:
        raise RuntimeError(f"get_login_state failed: {data}")
    return state

def build_qr_url(guid: str, state: str) -> str:
    # 实际 URL 以官方为准
    return f"https://open.qclaw.qq.com/wx_login?state={state}&guid={guid}"

def exchange_code_for_channel_token(guid: str, code: str, state: str) -> str:
    resp = requests.post(
        f"{WX_API_BASE}/wx_login",
        json={
            "guid": guid,
            "code": code,
            "state": state,
        },
        timeout=10,
    )
    resp.raise_for_status()
    data = resp.json()
    token = data.get("openclaw_channel_token")
    if not token:
        raise RuntimeError(f"wx_login failed: {data}")
    return token

def exchange_channel_token_for_access_token(guid: str, channel_token: str) -> str:
    resp = requests.post(
        f"{WX_API_BASE}/get_token",
        json={
            "channel_token": channel_token,
            "guid": guid,
        },
        timeout=10,
    )
    resp.raise_for_status()
    data = resp.json()
    access_token = data.get("access_token")
    if not access_token:
        raise RuntimeError(f"get_token failed: {data}")
    return access_token

if __name__ == "__main__":
    guid = "your-machine-guid"  # UUID,保持客户端一致

    # 1. 获取 state
    state = get_login_state(guid)
    print("登录 state:", state)

    # 2. 生成扫码 URL
    qr_url = build_qr_url(guid, state)
    print("浏览器打开下面的链接生成二维码,用微信扫码登录:")
    print(qr_url)

    # 3. 等待后端拿到 WeChat 回调的 code
    code = input("输入回调 URL 拿到的 code 参数:").strip()

    # 4. code -> openclaw_channel_token
    channel_token = exchange_code_for_channel_token(guid, code, state)
    print("openclaw_channel_token:", channel_token)

    # 5. channel_token -> access_token (JWT)
    access_token = exchange_channel_token_for_access_token(guid, channel_token)
    print("access_token(请妥善保存,用于后续 HTTP 调用):")
    print(access_token)

域名/路径会随着官方版本有轻微调整,要以官方文档/抓包结果为准。

可以把 access_token 写入到:

  • 环境变量:export OPENCLAW_TOKEN="..."
  • 或配置文件:~/.qclaw/openclaw_token.json

后面所有脚本 去 Lighthouse OpenClaw 的 HTTP 调用,都可以直接复用这个 Token。

6.2、 Lighthouse / 云桌面准备 日报脚本

云端创建脚本 /home/ubuntu/workspace/daily_report.py

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import datetime
from pathlib import Path
import json

def load_data() -> dict:
    """从数据库/日志读取统计数据,这里先用假数据代替。"""
    today = datetime.date.today().isoformat()
    return {
        "date": today,
        "new_users": 1234,
        "active_users": 5678,
        "bugs": 3,
        "revenue": 9876.54,
    }

def generate_report_md(data: dict) -> str:
    return f"""# 项目日报({data['date']})

## 1.

| 指标         | 数值        |
|--------------|-------------|
| 新注册用户   | {data['new_users']} |
| 活跃用户     | {data['active_users']} |
| 新增缺陷     | {data['bugs']}       |
| 当日收入     | {data['revenue']:.2f} 元 |

## 2. 分析与结论

- 新注册用户整体表现稳定;
- 活跃用户与昨日持平,后续可通过活动提升留存;
- 缺陷数控制在可接受范围,但需要重点排查高危缺陷。

## 3. 明日行动建议

1. 针对新用户设计一次功能引导/Push 活动;
2. 聚焦 Top N 高频缺陷模块排查与修复;
3. 对收入贡献最高的 3 个渠道进行投放加码复盘。
"""

def main():
    data = load_data()
    report = generate_report_md(data)
    out_dir = Path.home() / "reports"
    out_dir.mkdir(parents=True, exist_ok=True)
    out_path = out_dir / f"daily_report_{data['date']}.md"
    out_path.write_text(report, encoding="utf-8")
    # 脚本通过 stdout 把结果 JSON 返回给 OpenClaw 调用方
    print(json.dumps({
        "status": "success",
        "path": str(out_path),
        "date": data["date"],
    }, ensure_ascii=False))

if __name__ == "__main__":
    main()

给脚本加执行权限:

chmod +x /home/ubuntu/workspace/daily_report.py

6.3、本地用 Python + Token 远程调用 Lighthouse 的脚本

OpenClaw 网关默认提供一个通用的 Tools Invoke HTTP API: POST http://<Lighthouse 公网 IP>:18789/tools/invoke

请求体结构(官方文档有说明):

{
  "tool": "sessions_list",
  "action": "json",
  "args": {}
}

可以借此约定一个自定义的 scripts.run 工具:由 OpenClaw 后端解析 pathargs,在本机执行脚本。这里以社区常见的 scripts 工具为例,实际名称可按自己配置调整。

下面是本地可直接运行的 Python 调用脚本:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
从本地机器调用运行在 Lighthouse 的 OpenClaw Gateway,
触发远程执行 /home/ubuntu/workspace/daily_report.py,
把结果打印出来(后续可以改成推送微信、写入项目看板等)。
"""

import os
import json
import requests

LIGHTHOUSE_IP = os.environ.get("LH_IP", "<你的 Lighthouse 公网 IP>")
GATEWAY_PORT = int(os.environ.get("LH_PORT", "18789"))
OPENCLAW_TOKEN = os.environ.get("OPENCLAW_TOKEN")

def run_remote_daily_report(date: str | None = None) -> dict:
    if not OPENCLAW_TOKEN:
        raise RuntimeError("缺少 OPENCLAW_TOKEN 环境变量,请先获取并设置 access_token")

    url = f"http://{LIGHTHOUSE_IP}:{GATEWAY_PORT}/tools/invoke"
    payload = {
        "tool": "scripts",
        "action": "run",
        "args": {
            "path": "/home/ubuntu/workspace/daily_report.py",
            "args": {} if date is None else {"date": date},
        },
        "dryRun": False,
    }

    headers = {
        "Authorization": f"Bearer {OPENCLAW_TOKEN}",
        "Content-Type": "application/json",
    }

    resp = requests.post(url, json=payload, headers=headers, timeout=60)
    resp.raise_for_status()
    return resp.json()

if __name__ == "__main__":
    # 可选:指定日期生成指定日期的日报
    # today = datetime.date.today().isoformat()
    result = run_remote_daily_report()
    print("远程执行结果:")
    print(json.dumps(result, indent=2, ensure_ascii=False))

运行前只要在本地终端设置环境变量:

export LH_IP="自己的_Lighthouse_IP"
export OPENCLAW_TOKEN="上一步拿到的_access_token"
python3 run_remote_report.py

终端输出:

{
  "status": "ok",
  "tool": "scripts",
  "result": {
    "status": "success",
    "path": "/home/ubuntu/reports/daily_report_2026-03-30.md",
    "date": "2026-03-30"
  }
}

6.4、串回 QClaw / 微信入口

上面的 Python 调用脚本已经可以单独工作了。要切回 QClaw、微信,有两种做法:

(1)QClaw Skill -> HTTP Webhook -> 自己的后端 -> 调用上面的 Python 逻辑。

  • QClaw 的 Skill 配置增加一个 生成日报 技能;
  • 技能本质就是一个 HTTP POST 到自建的 Web 服务;
  • Web 服务里调用 run_remote_daily_report(),拿到结果后再通过微信回复用户。

(2)直接在本地机器用 QClaw 执行 Python 脚本。

  • QClaw 支持本地命令行/脚本执行的 Skill;
  • 命令:python3 /path/to/run_remote_report.py
  • 微信给 QClaw 发 生成日报 关键词,QClaw 在本机执行脚本,控制台输出再转成消息发回。

这样,整条链路就打通了:

微信/QQ -> QClaw -> HTTP 调用 Lighthouse/CVD OpenClaw -> 执行日报脚本 -> 结果回到微信/QQ。

七、结语

这套架构的潜力可不止作为个人助手。通过标准化的HTTP API和丰富的技能生态,可以集成到更复杂的企业流程:

  • 自动化运营:定时巡检、数据同步、报告生成。
  • 智能客服中台:用统一的OpenClaw网关,在QQ、企微、钉钉等提供一致的AI服务。
  • 研发辅助环境。

技术的价值在于解决真实问题。

如果你也搭好了自己的云端龙虾工作站,欢迎在评论区留言你的玩法,互相交流、互相抄作业,一起把龙虾玩出花来。
在这里插入图片描述

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐