# qqbot **Repository Path**: daoges_x/qqbot ## Basic Information - **Project Name**: qqbot - **Description**: qqbot - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-14 - **Last Updated**: 2026-03-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 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: ``` json { "channels": { "qqbot": { "enabled": true, "appId": "你的AppID", "clientSecret": "你的AppSecret" } } } ``` ## 语音能力配置(可选) STT 和 TTS 各支持两级配置,插件会按优先级依次查找,找到有效配置即停止。每一级的 `baseUrl` / `apiKey` 均可从 `models.providers` 自动继承。 ### 配置优先级总览 | 能力 | 优先级 1(插件专属) | 优先级 2(框架级回退) | |------|---------------------|----------------------| | STT | `channels.qqbot.stt` | `tools.media.audio.models[0]` | | TTS | `channels.qqbot.tts` | `messages.tts` | 每一级中,`baseUrl` 和 `apiKey` 的解析顺序:**本级直接配置 → `models.providers.` 继承**。两者必须同时有值,该级配置才生效。 ### STT(语音转文字)— 自动转录用户发来的语音消息 **方式一**(插件专属,优先级最高):在 `channels.qqbot.stt` 下配置: ``` json { "channels": { "qqbot": { "stt": { "provider": "your-provider", "model": "your-stt-model" } } } } ``` **方式二**(框架级回退):在 `tools.media.audio.models` 中添加音频模型条目。当 `channels.qqbot.stt` 未配置时,插件会自动读取这里的第一个条目: ``` json { "tools": { "media": { "audio": { "models": [ { "provider": "your-provider", "model": "your-stt-model", "baseUrl": "https://your-provider-api-base-url" } ] } } } } ``` - `provider` — 引用 `models.providers` 中的 key,继承 `baseUrl` 和 `apiKey` - `model` — STT 模型名称 - `baseUrl` / `apiKey` — 可选,写在本级则覆盖 provider 默认值 - `enabled` — 设为 `false` 可禁用 - 配置后,用户发来的语音消息会自动转换(SILK→WAV)并转录为文字 ### TTS(文字转语音)— 机器人发送语音消息 **方式一**(插件专属,优先级最高):在 `channels.qqbot.tts` 下配置: ``` json { "channels": { "qqbot": { "tts": { "provider": "your-provider", "model": "your-tts-model", "voice": "your-voice" } } } } ``` **方式二**(框架级回退):在 `messages.tts` 下配置。当 `channels.qqbot.tts` 未配置时,插件会自动读取这里的配置: ``` json { "messages": { "tts": { "provider": "your-provider", "your-provider": { "apiKey": "your-api-key", "model": "your-tts-model", "voice": "your-voice" } } } } ``` > 注意:`messages.tts` 的 provider 子配置放在 `messages.tts.` 下(如 `messages.tts.your-provider`),结构与方式一略有不同。 - `provider` — 引用 `models.providers` 中的 key,继承 `baseUrl` 和 `apiKey` - `model` — TTS 模型名称 - `voice` — 语音音色 - `baseUrl` / `apiKey` — 可选,写在本级则覆盖 provider 默认值 - `enabled` — 设为 `false` 可禁用(默认:`true`);`messages.tts` 中对应字段为 `auto: "disabled"` - 配置后,AI 可使用 `` 标签通过兼容的 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 bash ./upgrade-and-run.sh ``` 不传 `--appid` / `--secret` 参数时,脚本会自动读取 `~/.openclaw/openclaw.json`(或 `~/.clawdbot/clawdbot.json`)中已有的通道配置,无需每次升级都重新输入凭据。 首次配置或需要覆盖时: ```bash bash ./upgrade-and-run.sh --appid YOUR_APPID --secret YOUR_SECRET ``` 完整选项: | 选项 | 说明 | |---|---| | `--appid ` | QQ 机器人 AppID | | `--secret ` | QQ 机器人 AppSecret | | `--markdown ` | 是否启用 Markdown 消息格式(默认: no) | | `-h, --help` | 显示帮助 | 也支持环境变量:`QQBOT_APPID`、`QQBOT_SECRET`、`QQBOT_TOKEN`(AppID:Secret)。 ## 使用 pull-latest.sh(Git 源码更新) 从 GitHub 拉取最新源码,安装依赖并重启: ```bash bash ./pull-latest.sh ``` 如果插件目录已有 `.git` 仓库,会执行增量 `git pull`;否则从头克隆。已有的通道配置会自动备份和恢复。 ```bash bash ./pull-latest.sh --branch main # 指定分支(默认 main) bash ./pull-latest.sh --force # 跳过交互,强制更新 bash ./pull-latest.sh --repo # 使用其他仓库地址 ``` ## 使用源码升级(手动) ``` 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 [英文](README.md)