openclaw-weixin本质是 OpenClaw 的一个 Channel 类型插件,必须挂载在 Gateway 上,通过 Gateway 的 HTTP JSON API 与微信后端交互,本身不具备独立运行能力。 更关键的是,OpenClaw Gateway 虽然能在 Termux 中启动,但微信相关的底层依赖、设备环境限制以及风控策略,导致该组合在 Android 环境下无法正常工作。
最终选择的替代方案
目标:让微信消息通过 weclaw 转发给 OpenClaw
OpenClaw:开源 AI 助手框架,支持多种聊天渠道。 weclaw:微信消息桥接工具,能把微信消息转发给 AI 代理。 目标架构:微信 → weclaw → OpenClaw → AI 回复 → weclaw → 微信。
第一阶段:信心满满的开始
# weclaw 调用脚本,传入消息内容./openclaw-wrapper.sh -p "你好" --session-id wechat-user
#!/bin/bashNODE_BIN=/data/data/com.termux/files/usr/bin/nodeENTRY_FILE=/data/data/com.termux/files/home/.npm-global/lib/node_modules/openclaw/dist/entry.js# 解析参数...# 调用 OpenClaw...OUTPUT=$($NODE_BIN "$ENTRY_FILE" "${ARGS[@]}" 2>&1)echo "$OUTPUT"
第二阶段:越陷越深
尝试 | 修改内容 | 结果 |
|---|---|---|
2 | 修复 Node 路径 | ❌ |
3 | 重新安装 openclaw | ❌ |
4 | 修改参数解析逻辑 | ❌ |
5 | 添加 | ❌ |
6 | 添加 | ❌ |
7 | 改用 | ❌ |
8 | 调整 | ❌ |
9 | 尝试 ACP 模式 | ❌ |
10 | 尝试 HTTP 模式 | ❌ |

第三阶段:关键转折点
# wrapper.log 显示:Output length: 10754JSON length: 9678Message: '你好。'Success, outputting message
脚本明明输出了 10KB 的内容,OpenClaw 也正常回复了!
脚本没问题 ✅ OpenClaw 没问题 ✅ 问题在 weclaw 读取输出的那一侧 ❓
第四阶段:跳出陷阱
AI 的分析路径:
查 weclaw 官方文档 → 发现 OpenClaw 的推荐接入模式是 HTTP,不是 CLI。
查 OpenClaw 文档 → 发现 /v1/chat/completions端点默认关闭,需手动启用。
修改配置 → 重启服务 → 5 分钟解决。
第五阶段:5 分钟解决方案
{"gateway": {"services": {"openai": {"enabled": true,"chatCompletions": {"enabled": true}}}}}
{"agent": {"type": "http","url": "http://localhost:3000/v1/chat/completions","headers": {"Content-Type": "application/json"}}}

复盘:为什么我花了 2.5 小时?
问题 | 表现 | 正确做法 |
|---|---|---|
过度聚焦最近报错 | 看到 | 跳出来看整体异常模式 |
未重视矛盾信号 | 脚本成功 vs weclaw 报空,未质疑方案本身 | 矛盾出现时立即停止当前方向 |
缺乏前置文档验证 | 直接动手写脚本 | 先查官方文档确认推荐方案 |
失败阈值未触发换向 | 同类错误出现 10+ 次 | 3 次失败后强制切换思路 |
5 条血泪教训
正确的排查路径(事后验证)
总耗时:5–10 分钟
写在最后
方向错了,努力白费。
夜雨聆风