在开始今天的正文之前,有必要先做一些背景说明,以帮助大家更好地理解后续的操作。
关于容器与项目更名
不知道大家有没有注意到, ClawdBot 这个项目在短时间内经历了多次更名。先是改为了 MoltBot,而当前最新的正式名称是 OpenClaw。
由于代码仓库名称的变更,你可能无法直接在 ghcr.io 的页面上通过搜索找到新的镜像入口。不过别担心,镜像实际上是存在的。你可以在浏览器中直接访问 https://ghcr.io/openclaw/openclaw 来查看所有可用的版本。

从上图可以看到多个标签,其中:
main:通常代表最新的开发版本;
latest:则应该是相对稳定的发布版本。
为了让大家能顺利过渡,这里提供一个更新后的 Docker Compose 配置文件示例。请注意,这里为了最大程度地与之前的文章保持一致,我们主要修改了镜像名称和容器内的挂载路径。
version: '3.8'
services:
moltbot-gateway:
image: ghcr.io/openclaw/openclaw:main
container_name: moltbot-gateway
restart: unless-stopped
ports:
- "18789:18789"
volumes:
# 旧路径注释掉
# - ./config:/home/node/.clawdbot
# - ./config:/home/node/.moltbot
# 使用新的配置路径
- ./config:/home/node/.openclaw
- ./data:/home/node/clawd
environment:
- HTTP_PROXY=http://192.168.0.206:2081
- HTTPS_PROXY=http://192.168.0.206:2081
- NO_PROXY="localhost,127.0.0.1,::1"
shm_size: 2g # 必须加,至少 1g,推荐 2g 或更大
# privileged: true # 可选2:如果仍报权限问题,临时加这个(不推荐长期用)
# cap_add:
# - SYS_ADMIN # 可选1:解决部分沙箱问题和安装skill权限不足
command: node /app/dist/index.js gateway --port 18789
moltbot-cli:
image: ghcr.io/openclaw/openclaw:main
container_name: moltbot-cli
network_mode: "service:moltbot-gateway" # ← 关键:共享 gateway 容器的网络栈和端口
volumes:
# - ./config:/home/node/.clawdbot
# - ./config:/home/node/.moltbot
- ./config:/home/node/.openclaw
- ./data:/home/node/clawd
entrypoint: ["node", "dist/index.js"]
一个非常重要的前置步骤:在启动更新后的服务之前,请确保将你 config 目录下的 moltbot.json 配置文件重命名为 openclaw.json。如果没有进行这一步,服务可能会持续提示 Missing config. Run openclaw setup or set gateway.mode=local (or pass --allow-unconfigured). 错误。
当然,如果你的 config 目录下还没有任何配置文件,无论是 moltbot.json 还是 openclaw.json,都需要先运行 onboarding 向导来完成初始设置。这引出了下一个需要勘误的点。
上期教程勘误
在上一篇关于 Docker方式安装你的私人AI电脑助手Moltbot 的文章中,启动 onboarding 向导的命令被写作:
# 运行设置
docker compose run --rm -it moltbot-cli onboard
但经过实践验证,正确的命令应该是下面这个(与截图一致):
# 运行设置
docker-compose run --rm moltbot-cli onboard

接下来,让我们进入今天的核心主题:如何为你的 OpenClaw 接入 QQ 机器人。
QQ Bot 插件简介
什么是 qqbot?
qqbot 全称是 QQ Bot Channel Plugin for Moltbot,是 QQ 开放平台 Bot API 的 OpenClaw(原 Clawdbot/Moltbot) 渠道插件,支持 C2C 私聊、群聊 @ 消息、频道消息。
功能特性
- 多场景支持:
C2C 单聊、QQ 群 @ 消息、频道公开消息、频道私信。
- 自动重连:
WebSocket 断连后自动重连,支持 Session Resume。
- 消息去重:自动管理
msg_seq,支持对同一消息多次回复。
- 系统提示词:可配置自定义系统提示词注入到
AI 请求。
- 错误提示:
AI 无响应时自动提示用户检查配置。
- 易于安装与配置:提供交互式配置方式和命令行配置选项,简化设置过程。
安装与配置 QQ 插件
步骤一:安装 QQ 插件
首先,进入你的 OpenClaw (moltbot) 项目目录,并检查现有插件列表。
# 进入 moltbot 目录
cd /volume1/docker/moltbot
# 延长超时时间(如果你的机器性能比较弱,可以设置的再大一点)
export COMPOSE_HTTP_TIMEOUT=600
# 查看当前所有插件
docker-compose run --rm moltbot-cli plugins list

接下来,我们需要获取 QQ 插件。访问该插件的 GitHub 仓库:https://github.com/sliverp/qqbot,下载其源代码(通常选择 Download ZIP)。

下载完成后,将解压的文件夹(例如 qqbot-main)放入你 Docker Compose 配置中映射的 data 目录下。

这个目录对应到容器内部路径为 /home/node/clawd/qqbot-main。确认目录内容包含 index.ts, package.json 等必要文件。

现在,执行安装命令:
# 安装 QQ 插件
docker-compose run --rm moltbot-cli plugins install /home/node/clawd/qqbot-main/.

安装完成后,再次列出插件以确认安装成功。你应该能看到 QQ Bot 插件的状态变为 loaded。
# 查看当前所有插件
docker-compose run --rm moltbot-cli plugins list

步骤二:配置 QQ 机器人凭证
插件安装好了,但要让它工作起来,我们还需要从 QQ 开放平台获取必要的身份凭证。
-
注册与审核:访问 QQ 开放平台,完成开发者注册和企业或个人主体信息认证。

-
创建应用:注意选择创建“机器人”应用,而不是小程序或小游戏。

-
获取凭证:进入应用的“开发管理”页面,这里你可以找到至关重要的 AppID 和 AppSecret(在配置中可能被称为 ClientSecret)。请妥善保管这些信息。

-
组成Token:在 OpenClaw 的配置中,所需的 Token 格式为 AppID:AppSecret。例如,如果你的 AppID 是 102146862,AppSecret 是 Xjv7JVhu7KXkxANbp3HVjxCRgvAPeuAQ,那么 Token 就是 102146862:Xjv7JVhu7KXkxANbp3HVjxCRgvAPeuAQ。
-
配置IP白名单(重要):由于我们的机器人服务通常部署在家庭 NAS 或自有服务器上,需要将服务器的公网 IP 地址添加到 QQ 开放平台的 IP 白名单中。你可以访问 https://myip.ipip.net 来获取你当前的公网 IP。
步骤三:将凭证添加到 OpenClaw
拿到凭证后,我们有几种方式将其配置到 OpenClaw 中。
方式一:交互式配置(推荐新手)
这是最直观的方式,系统会通过问答引导你完成配置。
# 选择 qqbot,按提示输入 Token
docker-compose run --rm moltbot-cli channels add
执行命令后,你会看到当前已配置和未配置的通道状态。

在接下来的选项中,使用方向键选中 QQ Bot (支持 QQ 群聊和私聊)。

然后,根据提示依次输入你从 QQ 开放平台获取的 AppID 和 ClientSecret(即 AppSecret)。


方式二:命令行一键配置
如果你已经准备好 Token,可以直接通过一条命令完成配置,效率更高。
# 命令行配置(将AppID和AppSecret替换成你自己的)
docker-compose run --rm moltbot-cli channels add --channel qqbot --token “AppID:AppSecret”
# 具体示例(仅作格式参考,请勿直接使用)
docker-compose run --rm moltbot-cli channels add --channel qqbot --token “102146862:xxxxxxxx”

方式三:手动编辑配置文件
对于熟悉 OpenClaw 配置结构的用户,直接编辑 config 目录下的 openclaw.json(或 moltbot.json)文件是最灵活的方式。你需要找到或添加 qqbot 配置段。
| 配置项 |
类型 |
必填 |
说明 |
appId |
string |
是 |
QQ 机器人 AppID |
clientSecret |
string |
是* |
AppSecret,与 clientSecretFile 二选一 |
clientSecretFile |
string |
是* |
AppSecret 文件路径 |
enabled |
boolean |
否 |
是否启用,默认 true |
name |
string |
否 |
账户显示名称 |
systemPrompt |
string |
否 |
自定义系统提示词 |
下面是一个配置示例,你可以将其整合到你的配置文件的 channels 部分:
{
“channels”: {
“qqbot”: {
“enabled”: true,
“appId”: “你的AppID”,
“clientSecret”: “你的AppSecret”,
“systemPrompt”: “你是老苏的AI助手”
}
}
}

使用你的 QQ 机器人
配置完成后,重启你的 OpenClaw 服务以使配置生效。
docker-compose down
docker-compose up -d
接下来,为了让你的个人QQ号能够与机器人测试交互,你需要将机器人添加到“沙箱”。回到 QQ 开放平台的机器人管理后台,在“沙箱配置”页面,找到“添加成员”旁边的二维码,使用你的 QQ 扫码,即可将机器人添加为好友或拉入测试群。

添加成功后,现在你就可以像与普通好友聊天一样,向你的机器人提问了!

小结与相关资源
至此,你已经成功在 Docker 环境中部署了 OpenClaw,并通过安装插件的方式为其接入了 QQ 机器人通道。这个过程涉及了容器管理、插件安装、第三方平台(QQ开放平台)对接等多个环节,是一次不错的全栈实践。
如果你在配置过程中遇到问题,或者在探索 Node.js 生态的其他有趣玩法,欢迎到 云栈社区 的相关板块进行交流讨论。那里聚集了许多热衷于 后端 & 架构 和 数据库/中间件 实践的开发者。
本文参考文档: