1. 家庭 AI 助手接 QQ 机器人,卡点其实在 Key 管理
OpenClaw 是一个可以跑在自己机器上的 AI 助手网关,它能接飞书、接 QQ 机器人、接各种聊天通道,把大模型的对话能力塞进你日常用的 IM 里。QQ 机器人接入 OpenClaw 这件事本身不复杂,官方插件几条命令就能装完,真正让人头疼的是后面那堆模型 Key:主模型一个 Key、备用模型一个 Key、语音转写一个 Key、图片理解又一个 Key,散落在openclaw.json、环境变量、插件配置里,改一次要翻五个文件。
这篇是「打造你的家庭 AI 助手」系列第三篇,聚焦家庭场景下把 QQ 机器人接进 OpenClaw 时的多模型 Key 管理问题。适合已经装好 OpenClaw、想让家里人在 QQ 里直接 @ 机器人问问题、但被一堆 API Key 配置绕晕的人。我会给出可复制的config.toml与settings.json骨架,演示用 TaoToken 统一 Key 和 API 通道完成接入,最后附一条消息回环验证动作,确认 QQ 机器人和 OpenClaw 真的连通了。
先说清楚一个前提:QQ 开放平台对机器人有 IP 白名单机制,家用宽带动态 IP 会导致频繁掉线。如果你只有家用宽带,建议先看系列第二篇的飞书方案;如果你有云服务器或固定 IP,那这篇的配置可以直接抄。
2. 为什么用 TaoToken 统一 Key,而不是每个模型单独配
OpenClaw 的模型调用走的是 OpenAI 兼容协议,这意味着任何提供兼容接口的服务都能接。问题在于,家庭 AI 助手往往不止用一个模型:日常闲聊用便宜的小模型,写代码切到强模型,图片理解再换一个多模态模型。如果每个都去对应平台注册、拿 Key、配额度,光是管理就够烦的。
TaoToken 在这里的角色是一个统一的 API 通道:你只需要一个 Key,就能在 OpenClaw 里切换不同模型,不用为每个模型单独维护凭证。对家庭场景来说,这解决了三个实际问题。
第一是配置收敛。OpenClaw 的config.toml里模型段只写一份base_url和api_key,换模型只改model字段,不用动 Key。第二是额度集中。家里人用机器人问问题,消耗都走同一个通道,月底看一个账单就行,不用在四五个平台之间对账。第三是接入简单。TaoToken 的接口地址是https://taotoken.net/api,兼容 OpenAI 的/v1/chat/completions,OpenClaw 原生支持这种格式,不需要写适配层。
需要提醒的是,TaoToken 是正规的 API 聚合通道,不是那种来路不明的中转。你拿到的 Key 在控制台里可以自己管理、自己轮换,接入文档也写得很清楚。下面所有配置里的 Key 都建议用环境变量注入,别硬编码进文件。
3. 前置准备:拿 Key、装插件、确认版本
动手之前先把三件事做完,后面配置才不会卡。
第一件,去 TaoToken 控制台创建一个 API Key。打开https://taotoken.net/api-keys,登录后点创建,复制那串以sk-开头的字符串。这个 Key 只显示一次,先存到密码管理器里。同时建议在控制台里看一眼可用模型列表,记下你打算用的模型名,比如gpt-4o-mini这类,后面config.toml要填。
第二件,确认 OpenClaw 已经装好并且能跑起来。在终端执行openclaw --version,能打印版本号就说明没问题。如果提示命令找不到,回到系列第一篇把安装补上。
第三件,安装 QQ Bot 插件。官方现在有专门的 OpenClaw 入口,命令是生成好的,直接复制:
openclaw plugins install @tencent-connect/openclaw-qqbot@latest装完之后用openclaw plugins list确认插件出现在列表里。这一步在小内存机器上可能要等一两分钟,别急着中断。
关于 QQ 开放平台那边的应用创建、AppID 和 AppSecret 获取、IP 白名单配置,流程和之前一样:登录 QQ 开放平台,进应用管理,创建机器人,拿到AppID和AppSecret,然后把你的服务器公网 IP 加进白名单。Token 的格式是AppID:AppSecret,中间用冒号连接。这部分平台界面可能会调整,以你看到的实际页面为准。
4. 可复制配置:config.toml 与 settings.json 骨架
OpenClaw 的配置分两块:模型和通道走config.toml,插件级参数走settings.json。下面两份骨架可以直接抄,把尖括号里的内容替换成你自己的。
先看config.toml,重点是[models.default]这一段,base_url指向 TaoToken 的 API 地址,api_key用环境变量引用:
# ~/.openclaw/config.toml [gateway] port = 18789 host = "0.0.0.0" [models.default] provider = "openai-compatible" base_url = "https://taotoken.net/api" api_key = "${TAOTOKEN_API_KEY}" model = "gpt-4o-mini" timeout = 60 [models.fallback] provider = "openai-compatible" base_url = "https://taotoken.net/api" api_key = "${TAOTOKEN_API_KEY}" model = "gpt-4o" timeout = 60 [channels.qqbot] enabled = true token = "${QQBOT_TOKEN}"这里有两个设计点值得说。一是default和fallback共用同一个base_url和api_key,只是model不同,这就是统一 Key 的好处:主模型挂了切备用,不用改凭证。二是api_key和token都写成${VAR}形式,OpenClaw 启动时会从环境变量读取,避免明文躺在文件里。
环境变量在~/.bashrc或~/.zshrc里加两行:
export TAOTOKEN_API_KEY="sk-你的TaoToken密钥" export QQBOT_TOKEN="你的AppID:你的AppSecret"改完执行source ~/.bashrc让它生效。注意QQBOT_TOKEN里那个冒号是必须的,格式错了插件会报鉴权失败。
再看settings.json,这个文件管插件级行为,路径通常在~/.openclaw/settings.json:
{ "plugins": { "qqbot": { "enabled": true, "requireMention": true, "replyWithMarkdown": true, "maxMessageLength": 2000, "timeout": 30 } }, "logging": { "level": "info", "file": "~/.openclaw/logs/gateway.log" } }requireMention设为true表示群里必须 @ 机器人才触发,避免它乱插话。replyWithMarkdown打开后,模型返回的 Markdown 会尽量渲染,代码块在 QQ 里显示更清楚。maxMessageLength是单条消息上限,超长内容 OpenClaw 会自动分段。
两份文件都改完,重启网关:
openclaw gateway restart想前台看日志就用openclaw gateway --port 18789 --verbose,调试阶段推荐这个,报错能第一时间看到。
5. 验证请求:一条消息回环确认连通
配置写完不代表通了,得做一次端到端验证。我习惯用「消息回环」这个动作:在 QQ 里给机器人发一条特定内容,看它能不能原样或按预期回过来。
第一步,在 QQ 开放平台把你的 QQ 号加为测试用户(沙箱模式下必须加,否则收不到消息)。然后在 QQ 里搜索你的机器人名称,发起私聊,或者把它拉进一个群。
第二步,私聊里直接发一句:
ping如果 OpenClaw 和模型都正常,几秒内会收到回复。想更明确地确认是模型在回而不是插件在回,发这个:
请回复:回环测试成功,当前模型是 gpt-4o-mini第三步,看网关日志确认请求真的走到了 TaoToken。前台运行时终端会打印类似这样的行:
[qqbot] received message from user=xxx content="请回复:回环测试成功..." [model] POST https://taotoken.net/api/v1/chat/completions model=gpt-4o-mini [model] response 200 tokens=42 [qqbot] sent reply to user=xxx看到POST https://taotoken.net/api/v1/chat/completions且返回 200,就说明 QQ 机器人 → OpenClaw → TaoToken → 模型 → 回 QQ 这条链路全通了。群聊里再 @ 机器人发一次同样的内容,确认requireMention生效。
如果想让验证更彻底,可以在 TaoToken 控制台的用量页面看这次请求有没有计费记录,有记录就百分百确认走的是你的 Key。
6. 本篇常见错排查
配置过程中最容易踩的坑集中在鉴权和网络两块,下面按现象给排查路径。
机器人显示离线。先查服务器公网 IP 是否还在 QQ 开放平台的白名单里,家用宽带 IP 变了就会掉。再确认openclaw gateway进程还在跑,ps aux | grep openclaw看一眼。最后检查QQBOT_TOKEN格式,必须是AppID:AppSecret,少冒号或多空格都会鉴权失败。
收不到群消息。九成是没 @ 机器人。确认settings.json里requireMention是true的情况下,群里必须 @ 才触发。另外确认你的 QQ 号已在沙箱测试用户列表里,没加的话平台不会把消息推给你。
模型报 401 或 403。这是 TaoToken Key 的问题。检查TAOTOKEN_API_KEY环境变量有没有生效,在终端echo $TAOTOKEN_API_KEY看输出。如果 Key 正确还报错,去控制台确认 Key 没过期、额度没用完。注意base_url结尾不要多加/v1,OpenClaw 会自己拼路径,写成https://taotoken.net/api就行。
模型报 404 model not found。config.toml里的model字段写错了,或者你用的模型名不在 TaoToken 支持列表里。去控制台模型列表核对一遍,名字要完全一致。
回复超时。把timeout从 60 调大,或者换一个响应更快的模型。家庭网络出口带宽小的时候,长回复容易超时,maxMessageLength调小一点也有帮助。
插件装完不生效。执行openclaw plugins list确认插件在列,然后openclaw gateway restart重启。有时候插件装了但网关没重载,配置不生效。
排查完这些,你的家庭 AI 助手基本就能在 QQ 里稳定跑了。家里人 @ 一下就能问问题,模型切换只改config.toml里一个字段,Key 始终是 TaoToken 那一个。想长期跑编码类或 Agent 类任务的话,可以看看 Coding Plan,额度模型更适合高频调用;单纯验证模型连通性,模型对话页面点几下就能测;接入细节和参数说明都在接入文档里。