乐于分享
好东西不私藏

微信联通精简版 OpenClaw后秒变龙虾神器

微信联通精简版 OpenClaw后秒变龙虾神器

当我们决定让 AI 直接在微信里对话时,面前有两条路:要么通过企业微信插件,可以移步之前文章持证上岗!如何在微信里驯养一只 OpenClaw 龙虾,要么站在巨人肩膀上。这次我们选后者 -- 微信官方WeixinClawBot插件(微信官方连龙虾插件),结合 OpenClaw 这个开源 AI Agent 框架,但只取其中最核心的微信通道模块,在一个云端沙盒里跑起来。

这篇文章记录了整个搭建过程、踩过的每一个坑,以及最终形成的架构方法论。如果你也想让 AI 住进微信,让它真正成为你生产力的助手,这份避坑指南或许能帮你少走几天弯路。

一、为什么选择 OpenClaw

OpenClaw 是一个 TypeScript 编写的 AI Agent 框架,它的核心价值在于把「AI 大脑」和「通信管道」彻底解耦:

Gateway:WebSocket 服务器(默认端口 18789),负责消息路由
Channel Plugin:可插拔的通信通道,微信、飞书、企业微信各是一个独立插件
Agent:内嵌的 AI Agent,负责理解意图、调用工具、生成回复
Provider:大模型接入层,支持 Anthropic、OpenAI、OpenRouter 等

关键优势:安装一个 npm 包 + 扫个码,微信就通了。不需要你去逆向微信协议,不需要企业微信的复杂审批。

二、整体架构设计

最终跑通的架构是这样的:

这个架构有一个关键设计:翻译代理层。因为 OpenClaw 的 Anthropic Provider 使用 Anthropic Messages API 格式,而我们的 AI Gateway 是 OpenAI Chat Completions 兼容格式,中间需要一层协议翻译。

三、搭建步骤(精简版)

第一步:安装 OpenClaw

npm install -g openclaw

OpenClaw 安装后,配置文件位于 ~/.openclaw/openclaw.json,这是整个系统的神经中枢。为了后续提升响应速度,将不相关的文件及代码删除,从原始 10,200 文件精简到 4 个文件, 千余行代码, 1 个 npm 依赖,只保留微信相关的模块即可。

第二步:安装微信插件

npx -y @tencent-weixin/openclaw-weixin-cli@latest install

这条命令会把 @tencent-weixin/openclaw-weixin@2.0.1 安装到 ~/.openclaw/extensions/openclaw-weixin/

第三步:配置 openclaw.json

{"agents":{"defaults":{"model":{"primary":"anthropic/claude-sonnet-4-6"}}},"models":{"providers":{"anthropic":{"baseUrl":"http://127.0.0.1:18800","apiKey":"proxy-key","models":[]}}},"gateway":{"mode":"local","auth":{"mode":"token","token":"your-token-here"}},"plugins":{"entries":{"openclaw-weixin":{"enabled":true}}}}

注意 models 数组必须存在(即使为空),否则启动会报验证错误。

第四步:编写翻译代理

这是整个项目最核心的创造性工作。翻译代理需要完成:

接收 Anthropic Messages API 格式的请求
转换 为 OpenAI Chat Completions 格式
注入 自定义工具(生图、生视频、发公众号文章)
执行 工具调用循环
将结果转回 Anthropic SSE 流式格式

关键代码片段 -- 模型名映射:

functionmapModel(model) {   return"anthropic/" + model     .replace("claude-sonnet-4-6""claude-sonnet-4.6")     .replace("claude-opus-4-6""claude-opus-4.6"); }

OpenClaw 用连字符格式 (claude-sonnet-4-6),而 AI Gateway 用点号格式 (claude-sonnet-4.6),这个细节会让你调试半天。

第五步:扫码登录

npx openclaw channels login openclaw-weixin

会弹出一个腾讯 iLink Bot 的二维码,用微信扫描即可。二维码有效期约 60 秒,动作要快。

第六步:启动 Gateway

npx openclaw gateway run

看到 [weixin] config cached for xxx@im.wechat 就说明微信通道已连接成功。点击后扫码后就可以使用openclaw。

四、七个必踩的坑和解决方案

坑 1:models 字段缺失导致启动失败

现象:Gateway 启动报 models.providers.anthropic.models: expected array

原因:OpenClaw 的配置校验严格要求 models 字段为数组类型

解法:加上 "models": [],即使你不需要声明任何模型

坑 2:Provider Base URL 可能不被识别

现象:配置了 "baseUrl": "http://127.0.0.1:18800",但请求仍然打到了真正的 Anthropic API

原因:OpenClaw 某些 Provider 的 Base URL 可能是硬编码的(OpenRouter Provider 就是如此)

解法:同时设置环境变量 ANTHROPIC_BASE_URL=http://127.0.0.1:18800,配置和环境变量双保险

坑 3:流式响应格式不匹配

现象:Gateway 报 LLM request timed out 或 request ended without sending any chunks

原因:OpenClaw 默认发送流式请求(stream: true),但代理只处理了非流式场景

解法:代理必须实现完整的 Anthropic SSE 协议,包括 message_startcontent_block_startcontent_block_deltacontent_block_stopmessage_deltamessage_stop 六种事件类型

坑 4:QR 码 60 秒超时

现象:CLI 输出 QR 码太慢,还没来得及扫就过期了

原因:在云端沙盒中,CLI 的 stdout 可能有缓冲延迟

解法:写一个 Web Server 包装登录流程,把 QR URL 实时暴露为 HTTP 接口,用浏览器访问扫码

坑 5:auth-profiles.json 格式

现象:401 invalid x-api-key 或 Missing Authentication header

原因:OpenClaw 的认证解析顺序是 auth-profiles.json > 环境变量 > openclaw.json,格式必须严格匹配

正确格式

{"version":1,"profiles":{"anthropic:default":{"type":"api_key","provider":"anthropic","key":"your-key-here"}}}

坑 6:进程在沙盒中被杀

现象:Gateway 和代理过一段时间就静默退出,微信机器人无响应

原因:后台进程在沙盒环境中不稳定,bash 级别的 supervisor 脚本自身也可能被杀

解法:将服务注册到系统级 supervisord,利用 autorestart=true + startretries=999 实现真正的进程保活

[program:openclaw_gateway]command=bash -c "sleep 5 && exec npx openclaw gateway run"autorestart=truestartretries=999

坑 7:LLM 调用了不存在的工具

现象:代理日志出现 unknown tool: message_user

原因:LLM 会「创造性地」调用它认为应该存在的工具,比如 message_usersend_message 等

解法:在工具调用循环中过滤只处理已知工具,未知工具返回错误提示而不是崩溃

constKNOWN_TOOLS = ["generate_image""generate_video""publish_wechat_article"]; const knownTools = toolCalls.filter(tc =>KNOWN_TOOLS.includes(tc.function.name));

五、翻译代理的设计哲学

翻译代理是这个项目最有价值的部分。它的设计原则是:

不只是翻译,更是增强。

原始的 OpenClaw + Anthropic 组合只能做纯文本对话。通过翻译代理层,我们注入了三个工具:

1.generate_image:调用 Nano Banana 2 (Gemini Flash Image) 生成图片
2.generate_video:调用 Veo 3.1 生成短视频
3.publish_wechat_article:一键发布图文并茂的公众号文章

代理内部实现了完整的工具调用循环:LLM 请求 → 检测工具调用 → 执行工具 → 将结果喂回 LLM → 再次请求(最多 5 轮),直到 LLM 给出最终文本回复。

媒体内容通过 MEDIA:url 指令嵌入到文本回复中,OpenClaw Gateway 会识别这个指令,自动将图片/视频作为富媒体消息发送到微信。

六、方法论总结

核心原则:最小化依赖,最大化控制

1.不要 clone 整个 10,000+ 文件的 OpenClaw 仓库,只用 npm 安装运行时能跑起来的核心文件
2.不要尝试修改 OpenClaw 内部代码,通过翻译代理层实现所有定制
3.不要依赖单一认证方式,配置文件 + 环境变量 + auth-profiles 三路并行

架构决策树

最终成果

用户在微信中发消息,AI 在 3-5 秒内回复
支持文本对话、AI 生图、AI 生视频、一键发公众号文章
全部运行在一个云端沙盒中,无需自建服务器
通过 supervisord 实现进程自动保活

这个项目证明了一件事:站在开源框架的肩膀上,加上一层翻译代理,就能把 AI 的能力无缝注入到任何 IM 平台中。 关键不是写多少代码,而是理解每一层的协议边界,然后在正确的位置做正确的事。


我是 Jason,来自「SuperAI编程。想用OpenClaw玩更有趣的项目么?来和我们一起玩吧人均产能翻百倍!我们团队用AI疯狂“量产”了300+款产品欢迎通过下面微信加入我们SuperAI编程交流群,这里已经聚集了一大波爱玩、爱聊、爱新鲜事的小伙伴。

如果本文内容对您有启发,欢迎点个【赞】、【在看】或【转发】支持一下;也可以通过下面微信七索要详细操作步骤,并能第一时间收到更多实战案例。