logo
0
0
WeChat Login
rianli<rianli@tencent.com>
refactor: pull-latest.sh 改为 Git 源码更新,优化交互提示

QQ

QQ 是一款覆盖广泛用户群体的即时通讯平台,提供文字、语音、图片、文件等多种沟通能力,并支持群聊、频道等协作场景,适用于个人交流与团队协同。

该接入方式可将 OpenClaw 与 QQ Bot 进行连接,通过平台的长连接事件订阅机制接收消息与事件回调,从而在不对外暴露公网 Webhook 地址的情况下实现稳定、安全的消息收发与自动化能力集成。

步骤1:安装QQ Bot插件

OpenClaw plugins命令安装

openclaw plugins install @sliverp/qqbot@latest

使用源码安装:

git clone https://github.com/sliverp/qqbot.git && cd qqbot openclaw plugins install .

步骤2:创建QQ Bot

1.注册QQ开放平台

前往腾讯QQ开放平台官网,默认无法使用您的QQ账号直接登录,需要新注册QQ开放平台账号。 1

首次注册之后,可以按照QQ开放平台的指引设置超级管理员。

2 手机QQ扫码成功后,继续下一步填写主体相关信息。

此处以“个人”为例,按照指引依次输入姓名、身份证号、手机号、验证码,点击继续进入下一步人脸认证。 3

使用手机QQ扫码进行人脸认证。 4

人脸识别审核通过后,即可登录进入QQ开放平台。 5

2.创建一个QQBot机器人

在QQ开放平台的QQ机器人页面,可以创建机器人。 6 7

QQ机器人创建完成之后,可选择机器人点击进入管理页面。 8

在QQ机器人管理页面获取当前机器人的AppID和AppSecret,复制并将其保存到个人记事本或备忘录中(请注意数据安全,勿泄露),后续在“步骤3中配置OpenClaw“中需要使用。

注意:出于安全考虑,QQ机器人的AppSecret不支持明文保存,首次查看或忘记AppSecret需要重新生成。 9 10

3.沙箱配置

在QQ机器人的“开发管理”页面,在“沙箱配置”中,设置单独聊天(选择“在消息列表配置”)。

您可以按照自己的使用场景进行配置,也可以完成后续步骤之后再回到本步骤进行操作。

⚠️ 注意: 此处已创建的QQ机器人无需进行发布上架对所有QQ用户公开使用,在开发者私人的(沙箱)调试下使用体验即可。 QQ开放平台不支持机器人的“在QQ群配置”操作,只支持单独和QQ机器人聊天。 11

注意:选择“在消息列表配置”时,需要先添加成员,再通过该成员的QQ扫码来添加机器人。 12 此处注意添加成员成功之后,还需要使用QQ扫码添加

13 此时您的QQ账号添加机器人之后,还不能与该机器人正常进行对话,会提示“该机器人去火星了,稍后再试吧”,因为QQ机器人此时尚未与OpenClaw应用打通。

您需要继续后面的步骤,为OpenClaw应用配置QQ机器人的AppID和AppSecret。

14

(可选)您也可以参考前述步骤添加更多成员:首先在成员管理页面中添加新成员,然后在沙箱配置页面中添加成员,之后新成员即可通过QQ扫码添加该QQ机器人。 15 16 17

步骤3: 配置OpenClaw

方式一: 通过Wizard配置(推荐)

添加qqbot channel 并将步骤2中获取的AppID和AppSecret

openclaw channels add --channel qqbot --token "AppID:AppSecret"

方式二:通过配置文件配置

编辑 ~/.openclaw/openclaw.json:

{ "channels": { "qqbot": { "enabled": true, "appId": "你的AppID", "clientSecret": "你的AppSecret" } } }

语音能力配置(可选)

STT 和 TTS 各支持两级配置,插件会按优先级依次查找,找到有效配置即停止。每一级的 baseUrl / apiKey 均可从 models.providers 自动继承。

配置优先级总览

能力优先级 1(插件专属)优先级 2(框架级回退)
STTchannels.qqbot.stttools.media.audio.models[0]
TTSchannels.qqbot.ttsmessages.tts

每一级中,baseUrlapiKey 的解析顺序:本级直接配置 → models.providers.<provider> 继承。两者必须同时有值,该级配置才生效。

STT(语音转文字)— 自动转录用户发来的语音消息

方式一(插件专属,优先级最高):在 channels.qqbot.stt 下配置:

{ "channels": { "qqbot": { "stt": { "provider": "your-provider", "model": "your-stt-model" } } } }

方式二(框架级回退):在 tools.media.audio.models 中添加音频模型条目。当 channels.qqbot.stt 未配置时,插件会自动读取这里的第一个条目:

{ "tools": { "media": { "audio": { "models": [ { "provider": "your-provider", "model": "your-stt-model", "baseUrl": "https://your-provider-api-base-url" } ] } } } }
  • provider — 引用 models.providers 中的 key,继承 baseUrlapiKey
  • model — STT 模型名称
  • baseUrl / apiKey — 可选,写在本级则覆盖 provider 默认值
  • enabled — 设为 false 可禁用
  • 配置后,用户发来的语音消息会自动转换(SILK→WAV)并转录为文字

TTS(文字转语音)— 机器人发送语音消息

方式一(插件专属,优先级最高):在 channels.qqbot.tts 下配置:

{ "channels": { "qqbot": { "tts": { "provider": "your-provider", "model": "your-tts-model", "voice": "your-voice" } } } }

方式二(框架级回退):在 messages.tts 下配置。当 channels.qqbot.tts 未配置时,插件会自动读取这里的配置:

{ "messages": { "tts": { "provider": "your-provider", "your-provider": { "apiKey": "your-api-key", "model": "your-tts-model", "voice": "your-voice" } } } }

注意:messages.tts 的 provider 子配置放在 messages.tts.<provider> 下(如 messages.tts.your-provider),结构与方式一略有不同。

  • provider — 引用 models.providers 中的 key,继承 baseUrlapiKey
  • model — TTS 模型名称
  • voice — 语音音色
  • baseUrl / apiKey — 可选,写在本级则覆盖 provider 默认值
  • enabled — 设为 false 可禁用(默认:true);messages.tts 中对应字段为 auto: "disabled"
  • 配置后,AI 可使用 <qqvoice> 标签通过兼容的 TTS API 生成并发送语音消息

步骤4:启动与测试

1.启动gateway

openclaw gateway

2.在QQ中与QQbot 对话

18

升级

使用 openclaw/npm 升级(推荐)

仅适用于通过 openclaw plugins install 安装的场景

openclaw plugins upgrade @sliverp/qqbot@latest

使用 npx 升级

npx -y @sliverp/qqbot@latest upgrade

使用 upgrade-and-run.sh 一键升级

bash ./upgrade-and-run.sh

不传 --appid / --secret 参数时,脚本会自动读取 ~/.openclaw/openclaw.json(或 ~/.clawdbot/clawdbot.json)中已有的通道配置,无需每次升级都重新输入凭据。

首次配置或需要覆盖时:

bash ./upgrade-and-run.sh --appid YOUR_APPID --secret YOUR_SECRET

完整选项:

选项说明
--appid <id>QQ 机器人 AppID
--secret <secret>QQ 机器人 AppSecret
--markdown <yes|no>是否启用 Markdown 消息格式(默认: no)
-h, --help显示帮助

也支持环境变量:QQBOT_APPIDQQBOT_SECRETQQBOT_TOKEN(AppID:Secret)。

使用 pull-latest.sh(Git 源码更新)

从 GitHub 拉取最新源码,安装依赖并重启:

bash ./pull-latest.sh

如果插件目录已有 .git 仓库,会执行增量 git pull;否则从头克隆。已有的通道配置会自动备份和恢复。

bash ./pull-latest.sh --branch main # 指定分支(默认 main) bash ./pull-latest.sh --force # 跳过交互,强制更新 bash ./pull-latest.sh --repo <git-url> # 使用其他仓库地址

使用源码升级(手动)

git clone https://github.com/sliverp/qqbot.git && cd qqbot # 运行升级脚本 bash ./scripts/upgrade.sh # 重新安装 openclaw plugins install . # 重新配置 openclaw channels add --channel qqbot --token "AppID:AppSecret" # 重启 gateway openclaw gateway restart

其他语言 README

英文