恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
【全网首发!】让你的 QQ 和微信个人小号秒变 AI 助手 — OpenClaw IM Manager 开源实战
首页
资讯中心
/
【全网首发!】让你的 QQ 和微信个人小号秒变 AI 助手 — OpenClaw IM Manager 开源实战
【全网首发!】让你的 QQ 和微信个人小号秒变 AI 助手 — OpenClaw IM Manager 开源实战
发布时间:2026/10/9 18:44:15
1. 从零理解 OpenClaw IM ManagerQQ 微信个人号接入 AI 的完整路径OpenClaw IM Manager 是一个把 QQ、微信个人号变成 AI 助手的开源整合项目它本身不实现任何聊天协议而是用 Docker Compose 把 NapCatQQ 的 OneBot11 实现、wechatbot-webhook微信 Web 协议桥接和一套可视化管理后台编排在一起再统一接到 OpenClaw 的 AI 引擎上。简单说你扫码登录小号后台就能看到好友和群消息AI 按你配置的模型自动回复。它适合想自建 IM 机器人、又不想从零写协议适配的开发者尤其是已经用过 Docker、对 OneBot 生态有基本概念的人。我先把整个数据流讲清楚后面配置才不会迷路。QQ 侧NapCat 以 OneBot11 协议通过 WebSocket 把消息推给主容器openclaw-qq主容器里的 Express 后端解析事件、调用 AI、再把回复通过 WebSocket 发回 NapCat最终由 QQ 发出。微信侧openclaw-wechat容器跑 wechatbot-webhook收到消息后通过 HTTP 回调打到主容器的/api/wechat/callback主容器处理完再调用 wechatbot-webhook 的发送接口。两个容器在同一个 Docker 网络里用服务名互相访问所以docker-compose.yml里的网络配置和回调地址必须对得上否则就是「QQ 能回、微信没反应」这类典型故障。模型能力这块OpenClaw 支持任意兼容 OpenAI 协议的服务。为了让 Key 和通道统一管理我建议用 TaoToken 作为统一入口一个 Key 就能切换 GPT、Claude 等模型不用在多个平台之间来回改配置。它的 API 地址是https://taotoken.net/api兼容 OpenAI 的/v1/chat/completions格式填进 OpenClaw 的模型配置即可。这样你后面调试模型时只改 Model ID 就能换模型Base URL 和 Key 都不用动。需要提前说清楚风险用第三方客户端登录 QQ、微信可能违反腾讯服务协议存在封号可能务必用小号测试别拿主力号。项目采用 CC BY-NC-SA 4.0禁止商用。这些不是吓唬人是真实存在的边界自己心里有数再动手。环境准备上你需要一台能跑 Docker 的机器Linux、macOS、Windows 都行建议 2 核 4G 起步因为两个容器加后台还是有点内存开销的。端口方面默认后台在 6199NapCat 的 WebSocket 端口和 wechatbot-webhook 的端口在 compose 文件里映射注意别和宿主机已有服务冲突。下面我从安装 Docker 开始一步步带你走完部署、绑定、验证的全过程。2. TaoToken 前置准备统一 Key 与 API 通道接入模型能力在动 Docker 之前先把模型通道准备好否则后面 OpenClaw 配好了也没法回消息。这一步的核心是拿到一个能用的 API Key并确认 Base URL 和 Model ID 三件套。我用 TaoToken 来做统一入口原因是它兼容 OpenAI 协议OpenClaw 里配置项直接照填就行而且换模型只改一个字段。先注册并创建 Key。打开https://taotoken.net/api-keys这是 deep link直接进 Key 管理页登录后新建一个 API Key复制保存。这个 Key 就是后面 OpenClaw 配置里的apiKey。注意 Key 只在创建时完整显示一次丢了就重新建一个。接着确认 Base URL。TaoToken 的 API 根地址是https://taotoken.net/api注意不要加多余的路径OpenClaw 或 OpenAI SDK 会自动拼/v1/chat/completions。如果你在别的工具里看到有人写https://taotoken.net/api/v1那是把版本号也带上了两种写法在不同客户端里表现不一样OpenClaw 这边建议就用根地址https://taotoken.net/api让它自己拼。Model ID 怎么选OpenClaw 的模型配置里有一个model字段填你想用的模型标识。比如你想用 Claude 系列做长文本回复就填对应的模型名想用 GPT 系列做通用对话就填 GPT 的模型名。具体可用列表可以在https://taotoken.net/models查看模型对话页或者在控制台里看当前 Key 支持的模型。我实测下来先用一个通用对话模型跑通链路再换更强的模型做效果调优这样排错成本最低。为了让你有个直观对照我把 OpenClaw 模型配置里会用到的字段和 TaoToken 的对应关系列一下OpenClaw 配置字段填写内容说明baseURL / apiBasehttps://taotoken.net/api统一 API 根地址apiKey你在 api-keys 页创建的 Key只显示一次注意保存model模型 ID如 claude 或 gpt 系列换模型只改这里provideropenai 兼容因为走 OpenAI 协议如果你用的是 Claude Code 这类工具做辅助开发TaoToken 也提供了对应的接入文档在https://taotoken.net/doc可以查到不同客户端的配置方式。不过本篇重点是 OpenClaw IM ManagerClaude Code 只是顺带提一句别跑偏。这里有个容易踩的坑有人把 Key 直接写进docker-compose.yml的环境变量里然后提交到 Git结果 Key 泄露。正确做法是写进.env文件并且把.env加进.gitignore。OpenClaw 的配置脚本setup-openclaw.sh会读取环境变量所以你在.env里定义OPENAI_API_KEY之类的变量脚本会帮你注入到 OpenClaw 配置里。具体变量名以项目.env.example为准别自己臆造。还有一点TaoToken 的 Key 是统一通道意味着你 QQ 和微信两个通道共用同一个 Key 和 Base URL不需要为每个通道单独申请。这正好契合 OpenClaw IM Manager「双通道统一 AI 引擎」的设计配置一次两边都生效。下面进入 Docker 部署环节。3. 可复制配置Docker Compose 部署与 IM 通道绑定这一节是全文最核心的部分我给你一份可以直接复制修改的配置并解释每个关键字段。先克隆项目git clone https://github.com/zhaoxinyi02/openclaw-im-manager.git cd openclaw-im-manager cp .env.example .env然后编辑.env这是主配置文件。下面是我整理的一份可复制片段字段名和项目保持一致# 管理后台登录密码自己设一个强密码 ADMIN_TOKENchange_me_to_a_strong_token # QQ 相关 QQ_ACCOUNT你的小号QQ号 OWNER_QQ你的主人QQ号 # 微信容器 Token两个容器要一致 WECHAT_TOKENopenclaw-wechat # 模型通道TaoToken 统一入口 OPENAI_API_KEY你在taotoken创建的Key OPENAI_BASE_URLhttps://taotoken.net/api OPENAI_MODEL你的模型ID注意WECHAT_TOKEN这个值它同时出现在主容器和微信容器的配置里必须一致否则微信回调会被拒绝。项目里微信容器有个坑wechatbot-webhook 内部的preStart.js读的是容器内部.env的LOCAL_LOGIN_API_TOKEN而不是 Docker 环境变量。所以docker-compose.yml里要覆盖 entrypoint在启动前把 Token 写进内部.env。这段配置直接抄wechat: image: dannicool/docker-wechatbot-webhook entrypoint: /bin/sh command: - -c - | WTOKEN$${LOGIN_API_TOKEN:-openclaw-wechat} if [ -f .env ]; then sed -i s|^LOCAL_LOGIN_API_TOKEN.*|LOCAL_LOGIN_API_TOKEN$$WTOKEN| .env grep -q ^LOCAL_LOGIN_API_TOKEN .env || echo LOCAL_LOGIN_API_TOKEN$$WTOKEN .env fi exec npm start environment: - LOGIN_API_TOKEN${WECHAT_TOKEN} - RECVD_MSG_APIhttp://openclaw-qq:6199/api/wechat/callback这里RECVD_MSG_API指向主容器的服务名openclaw-qq和端口 6199两个容器在同一 Docker 网络里所以用服务名能解析。如果你改了主容器服务名或端口这里要同步改否则微信消息回调不到表现为「微信登录成功但发消息没反应」。启动容器docker compose up -d启动后跑配置脚本把 OpenClaw 的频道和模型配置写好chmod x setup-openclaw.sh ./setup-openclaw.shWindows 下用powershell -File setup-openclaw.ps1。脚本会读取.env里的模型配置写入 OpenClaw 的频道配置。跑完后建议重启一下 OpenClaw 网关让配置生效。关于 OpenClaw 本身的安装如果你机器上还没装先执行curl -fsSL https://get.openclaw.ai | bash openclaw onboard openclaw gateway startonboard是交互式的按提示走完即可。装好后gateway start启动网关IM Manager 通过它来调用模型。配置里还有一个关键点QQ 侧 NapCat 的 WebSocket 地址。主容器openclaw-qq里已经内置了 NapCat默认监听在容器内部端口通过 compose 映射出来。你不需要手动改 NapCat 配置只要保证.env里的QQ_ACCOUNT填对登录时扫码的号就是这个。如果你要改 WebSocket 端口记得主容器的 OneBot 连接配置也要同步改否则 QQ 消息推不过来。到这里Docker 部署和通道绑定就完成了。下一步是登录和验证别急着庆祝真正的坑都在验证环节。4. 验证请求与成功结果扫码登录到 AI 自动回复部署完先确认容器状态docker compose ps两个容器都应该是Up状态。如果openclaw-wechat反复重启多半是 entrypoint 那段脚本写错了用docker compose logs -f wechat看报错。然后浏览器访问http://你的服务器IP:6199输入.env里的ADMIN_TOKEN登录。进去后左侧菜单能看到「QQ 登录」和「微信登录」。QQ 登录点「QQ 登录」支持扫码、快速登录、账密三种。建议扫码用手机 QQ 扫后台显示的二维码。扫码成功后仪表盘上 QQ 通道会变成已连接群列表和好友列表开始加载。如果提示登录失败先检查小号有没有开设备锁或者换快速登录试试。微信登录点「微信登录」用手机微信扫码。注意部分微信号没有网页版权限会提示不支持网页版登录这种情况换一个较早注册的微信号试。扫码成功后微信通道状态变绿。两个通道都连上后做一次端到端验证。用另一个号不是登录的这个小号给 QQ 小号发一条消息比如「你好」。如果配置正确几秒内会收到 AI 回复。微信同理用另一个微信号给登录的微信小号发消息看是否自动回复。如果没回复按这个顺序排查。第一看仪表盘的实时事件流有没有收到消息事件。如果事件流里没有说明协议层没推上来检查 NapCat 或 wechatbot-webhook 的连接状态。第二如果事件流有消息但没回复说明 AI 调用失败去看主容器日志docker compose logs -f openclaw-qq重点看有没有 401、连接超时、或者reading choices之类的报错。401 通常是 Key 不对或 Base URL 写错reading choices多半是模型返回结构不符合预期检查 Model ID 是否正确。你也可以直接在后台的「OpenClaw」页面在线编辑模型配置改完保存后发一条测试消息看是否生效。这个页面很适合调模型不用重启容器。验证成功的标志很明确仪表盘双通道在线事件流有消息记录另一个号收到 AI 回复。到这一步你的 QQ 和微信小号就已经是 AI 助手了。下面把常见报错集中讲一遍方便你对号入座。5. 本篇常见错排查401、local proxy failed、reading choices、OAuth这一节我按真实报错来组织每个都给出定位方法和修复动作。401 Unauthorized最常见。出现在主容器日志里说明调用模型时鉴权失败。检查三件事.env里的OPENAI_API_KEY是不是复制完整有没有多余空格OPENAI_BASE_URL是不是https://taotoken.net/api别写成带/v1的Key 是不是已经失效或被删。改完.env后要docker compose up -d重建容器光重启不一定读到新环境变量。local proxy failed / connection refused这个报错通常出现在容器内访问外部 API 时。原因是容器网络出不去或者 DNS 解析失败。先在容器里测一下docker compose exec openclaw-qq sh -c curl -I https://taotoken.net/api如果 curl 不通检查宿主机网络和 Docker 的 DNS 配置。注意不要用任何网络代理工具直接保证容器能正常访问公网即可。如果宿主机本身网络受限容器自然也出不去。reading choices / undefined is not an object这个报错说明模型返回的 JSON 结构和 OpenClaw 预期的不一致。常见原因是 Model ID 填错或者 Base URL 指向了一个不兼容 OpenAI 格式的端点。确认OPENAI_BASE_URL是https://taotoken.net/apiOPENAI_MODEL填的是有效模型 ID。改完在后台 OpenClaw 页面保存再发测试消息。OAuth / 登录态失效QQ 侧表现为扫码后很快掉线微信侧表现为登录后收不到消息。QQ 掉线多半是账号风控或设备锁换小号或关设备锁。微信收不到消息先确认RECVD_MSG_API指向的地址能从微信容器访问到主容器docker compose exec wechat sh -c curl -I http://openclaw-qq:6199/api/wechat/callback如果这里不通说明两个容器不在同一网络或者服务名写错。检查docker-compose.yml里两个服务是否在同一个networks下。微信 Token 不匹配表现为微信回调返回 403。原因是微信容器内部.env的LOCAL_LOGIN_API_TOKEN和主容器配置的WECHAT_TOKEN不一致。用第 3 节那段 entrypoint 覆盖脚本确保启动时把 Token 写进内部.env。改完docker compose up -d重建微信容器。QQ 消息能收不能发事件流有消息但回复发不出去。检查 NapCat 的 WebSocket 连接是否双向正常主容器日志里有没有发送失败的记录。有时候是 OneBot 的send_msg接口调用参数不对确认主容器版本和 NapCat 版本匹配。排查时记住一个原则先看仪表盘事件流判断消息有没有进来再看主容器日志判断 AI 有没有被调用最后看发送日志判断回复有没有出去。三段式定位基本能覆盖九成问题。6. 语义一致 CTA把统一通道用起来链路跑通之后你会发现真正省事的地方在于模型通道统一。QQ 和微信两个通道共用同一个 Key 和 Base URL换模型只改一个 Model ID不用在两个容器里分别配置。如果你后面要长期跑编码类或 Agent 类任务可以了解下 Coding Plan它更适合持续性的开发场景如果只是想验证某个模型效果直接在模型对话页试就行。具体入口我整理一下按需取用创建和管理 Keyhttps://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentapi_keys接入文档各客户端配置方式https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentdoc模型对话验证模型效果https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentmodels控制台https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentconsoleCoding Plan长期编码/Agenthttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentcoding_plan最后说个实操细节OpenClaw IM Manager 的模型配置改完后建议在后台发一条测试消息确认生效再去看 QQ 和微信的实际回复。因为后台的测试走的是同一条通道能快速区分是模型问题还是 IM 通道问题。这个习惯能帮你省下大量排查时间。