
1. 多 QQ 机器人共用一个 OpenClaw 实例Key 和端点到底怎么摆如果你正在用 OpenClaw 跑多智能体又想同时挂两个甚至更多 QQ 机器人大概率会撞上同一个问题每个机器人一套 API Key、一套端点、一套模型配置改一个参数要翻好几个文件跑起来还容易串号。我最近在做的场景就是「一个 OpenClaw 实例 两个 QQ 机器人账号 两个独立智能体」一个负责工作群答疑一个负责个人号闲聊两边的工作空间、身份文件、模型通道都要隔离。OpenClaw 本身的多智能体能力是够用的它用agentId区分智能体用accountId区分渠道账号再用bindings把两者绑起来。真正麻烦的是模型侧默认每个智能体各自读一份模型配置如果你有 3 个机器人、3 个智能体就要维护 3 份 Key 和 Base URL。一旦要换模型或者换通道就是体力活。这篇要解决的就是这件事用 TaoToken 的统一 Key 和统一 API 通道把多个 QQ 机器人的模型鉴权收敛到一处OpenClaw 侧只保留智能体与账号的绑定关系。你会看到完整的openclaw.json配置片段、QQ 机器人接入命令、绑定验证输出以及几个我实际踩过的报错。适合已经在用 OpenClaw、准备上多机器人或者被多份 Key 管理烦到的人。先说清楚 TaoToken 在这里的角色它是一个兼容 OpenAI 风格接口的模型调用通道提供统一的 Base URL 和 API KeyOpenClaw 里所有智能体都指向同一个端点即可。官网入口是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 地址是 https://taotoken.net/api 注意 API 地址不带 UTM 参数配置里填这个。2. 前置准备TaoToken Key、OpenClaw 版本与 QQ 机器人账号动手之前把三样东西备齐后面配置会顺很多。第一是 TaoToken 的 API Key。登录后进控制台在 API Keys 页面创建一个复制出来先存好。这个 Key 后面会写进 OpenClaw 的模型配置里所有智能体共用。控制台地址https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API Keys 页面https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。第二是 OpenClaw 本体。确认版本不要太旧多智能体和 bindings 是较新版本才稳定的能力。终端里跑openclaw --version我这边实测的是 2026.3.24 这个版本输出里会带一段「Half butler, half debugger, full crustacean.」的标语看到这行说明版本没问题。如果版本偏低先升级再继续。第三是 QQ 机器人账号。你需要先在 QQ 开放平台创建机器人应用拿到每个机器人的 token。注意这里是「每个机器人一个 token」不是每个智能体一个。工作号和个人号分别建应用、分别拿 token后面用--account参数区分。关于模型侧TaoToken 支持多种模型 ID你在 OpenClaw 里填的model字段要和 TaoToken 侧可用的模型名一致。我下面示例里用的是zai/glm-5-turbo这种带前缀的写法实际以你控制台里能选到的模型 ID 为准。如果你不确定该用哪个模型可以先去模型对话页面试一下https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 在网页里发一条消息确认通道通不通再回来配 OpenClaw。还有一个容易忽略的点OpenClaw 的配置目录默认在~/.openclaw/主配置文件是~/.openclaw/openclaw.json智能体工作空间在~/.openclaw/workspace和~/.openclaw/workspace-agentId。多智能体场景下每个 agent 有独立的 agent 目录比如~/.openclaw/agents/work/agent/。这些路径后面改配置时会反复用到先有个印象。3. 可复制配置openclaw.json 多智能体 TaoToken 统一通道这一节是核心直接给可复制的配置。先创建智能体再挂 QQ 机器人账号最后写 bindings 和模型通道。3.1 创建隔离智能体用智能体向导加一个新智能体比如叫 workopenclaw agents add work首次安装时默认会有一个accountId为default、agentId为main的智能体这个不用动作为个人号或默认号使用。work 这个智能体是新增的用来接工作机器人。3.2 添加多个 QQ 机器人账号如果你有多个 QQ 机器人账号分别用不同的accountId添加# 添加工作机器人账号 openclaw channels add --channel qqbot --account work --token 工作机器人token # 添加个人机器人账号 openclaw channels add --channel qqbot --account personal --token 个人机器人token注意--account后面的值就是accountId它会出现在 bindings 的 match 条件里。默认那个账号的accountId是default不用重复添加。3.3 写 bindings 绑定智能体与账号编辑~/.openclaw/openclaw.json在bindings数组里加规则。下面这段可以直接复制把 agentId 和 accountId 换成你自己的{ bindings: [ { agentId: work, match: { channel: qqbot, accountId: work } }, { agentId: main, match: { channel: qqbot, accountId: default } }, { agentId: main, match: { channel: qqbot, accountId: personal } } ] }这段配置的意思是work账号的消息路由到work智能体default和personal账号的消息都路由到main智能体。你可以按需调整比如给 personal 也单独建一个智能体。3.4 统一模型通道指向 TaoToken关键一步来了。在openclaw.json的模型配置部分把 Base URL 指向 TaoToken 的 API 地址Key 填你创建的那个统一 Key。不同版本的 OpenClaw 模型配置字段名可能略有差异核心是三个值Base URL、API Key、Model ID。{ models: { default: { provider: openai-compatible, baseUrl: https://taotoken.net/api, apiKey: sk-你的TaoToken统一Key, model: zai/glm-5-turbo } } }如果你的 OpenClaw 版本支持按智能体覆盖模型也可以只在 default 里写一份所有智能体继承。这样无论你有几个 QQ 机器人、几个智能体模型鉴权只有这一处换 Key 只改一行。三件套对照一下避免填错配置项填写值说明Base URLhttps://taotoken.net/api不带 UTM固定路径API Keysk-开头的一串控制台 API Keys 页面创建Model ID如 zai/glm-5-turbo以控制台可用模型为准注意Base URL 末尾不要多加/v1或斜杠OpenClaw 会自己拼接路径。多写一层容易 404。4. 验证请求agents list 输出与消息分发实测配置写完先别急着发消息用命令验证绑定关系是否正确。4.1 查看智能体绑定状态openclaw agents list --bindings正常输出类似这样 OpenClaw 2026.3.24 (cff6dc9) — Half butler, half debugger, full crustacean. Agents: - main (default) Identity: 夜晓 (Dawn) (IDENTITY.md) Workspace: ~/.openclaw/workspace Agent dir: ~/.openclaw/agents/main/agent/ Model: zai/glm-5-turbo Routing rules: 1 Routing rules: - qqbot accountIddefault - work Workspace: ~/.openclaw/workspace-work Agent dir: ~/.openclaw/agents/work/agent/ Model: zai/glm-5-turbo Routing rules: 1 Routing rules: - qqbot accountIdwork看到每个智能体下面挂着对应的qqbot accountIdxxx说明 bindings 生效了。如果某个智能体下面没有 routing rules或者规则挂错了账号回去检查openclaw.json里的 match 条件。4.2 验证模型通道在正式让机器人回消息之前先确认 TaoToken 通道是通的。最直接的方式是用 curl 打一次curl https://taotoken.net/api/chat/completions \ -H Authorization: Bearer sk-你的TaoToken统一Key \ -H Content-Type: application/json \ -d { model: zai/glm-5-turbo, messages: [{role: user, content: ping}] }返回里有choices数组和内容就说明 Key 和端点都没问题。如果这里就报错先解决通道问题别往下走。4.3 实测消息分发两个 QQ 机器人分别给 OpenClaw 发一条消息观察日志。工作号的消息应该进work智能体个人号的消息进main智能体。你可以看 OpenClaw 的运行日志或者直接看两个智能体工作空间里有没有生成对应的会话文件。我实测下来accountId隔离是可靠的default 账号的消息进 mainwork 账号的消息进 work两边的工作空间和身份文件互不干扰。这意味着你可以给工作机器人配一套严肃的提示词和知识库给个人机器人配一套轻松的共用同一个模型通道但行为完全分开。5. 常见报错排查401、local proxy failed、reading choices多机器人 统一通道的组合踩坑点集中在鉴权和路由两块。下面几个是我实际遇到过的。5.1 401 Unauthorized最常见。原因通常是 Key 填错、Key 被删、或者 Base URL 和 Key 不匹配。先确认openclaw.json里的apiKey和你在 TaoToken 控制台创建的一致注意别把前后空格带进去。然后确认baseUrl是https://taotoken.net/api没有多余路径。如果 Key 刚创建等几秒再试有时候有短暂生效延迟。5.2 local proxy failed这个报错一般出现在 OpenClaw 尝试走本地代理转发模型请求时。检查你的环境变量里有没有残留的代理设置比如HTTP_PROXY、HTTPS_PROXY。如果有先清掉再启动 OpenClaw。另外确认本机网络能正常访问https://taotoken.net/api用前面的 curl 命令测一下最直接。5.3 reading choices 相关报错类似cannot read property choices of undefined或者reading choices说明请求发出去了但返回结构不对。常见原因是模型 ID 写错TaoToken 侧没有这个模型返回了错误对象而不是正常的 completions 结构。回去核对model字段和控制台里可用的模型 ID 完全一致。另一个可能是 Base URL 多写了/v1导致路径拼接错误。5.4 OAuth 相关报错如果你在配置里混用了 OAuth 方式的鉴权可能会看到 OAuth 报错。OpenClaw 接 TaoToken 用的是 API Key 方式不需要 OAuth 流程。检查配置里有没有多余的 OAuth 字段删掉只保留apiKey。5.5 消息路由错乱如果工作号的消息跑到了 main 智能体或者两个机器人互相串消息八成是 bindings 的 match 条件写错了。重点检查accountId是否和channels add时用的--account值一致大小写敏感。用openclaw agents list --bindings再确认一遍每个智能体挂的账号。提示改完openclaw.json记得重启 OpenClaw 进程配置不会热加载。重启后再跑一次agents list --bindings确认。6. 把多机器人鉴权收敛到一处后续维护省一半事整套配下来OpenClaw 侧你只需要维护一份模型配置所有 QQ 机器人、所有智能体都走 TaoToken 的统一 Key 和统一端点。新增一个机器人时流程就是三步channels add加账号、openclaw.json加一条 binding、重启。模型侧完全不用动。如果你后面要跑更重的编码类智能体或者长时间在线的 Agent可以考虑用 Coding Plan 把额度固定下来入口在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。接入过程中遇到鉴权或路由问题先看接入文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 再对照 API Keys 页面 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 确认 Key 状态。想先验证模型通不通模型对话页面 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 最快。最后留一个我踩过的坑openclaw.json是 JSON 格式不支持注释也不允许尾随逗号。加 binding 的时候如果手抖多写一个逗号OpenClaw 启动会直接报解析错误而且报错信息不一定指向具体行号。改完用python -m json.tool ~/.openclaw/openclaw.json校验一下能省不少排查时间。