Install
openclaw skills install wechat-push-skill微信主动推送 — 让本地 Agent 主动推送消息到用户手机微信(绕过 24h 客服窗口限制)。当用户提到 微信主动推送、推微信消息、push 微信、给用户发微信、绕过 24h 限制、推送失败排查、推送假成功、ret=-2、errcode=-14、session timeout 时触发。涵盖:openclaw message send CLI 通道、4 个自动化 cron、bot 账号活跃度探测、5 跳链路自检、假成功/假活 6 种故障模式库。
openclaw skills install wechat-push-skill装上就能用:
wechat-push "消息"→ 用户手机微信收到
一个让本地 Agent 主动向用户手机微信推送消息的工程化方案。绕过微信官方的"24 小时客服窗口"限制(用户必须先发消息、Agent 才能在 24 小时内回复),实现真正的"主动告知"。
openclaw message send —— 裸 curl ilink 在 macOS 上 99% 不通*@im.bot.json,按 mtime 选最近的Sent via + exit 0 双条件 = 真成功;只看 HTTP 200 = 假成功① 触发层(cron / Agent / 健康检查 / 手动)
↓
② 推送脚本 wechat-push.py
↓
③ 通道选择 → openclaw message send CLI
↓
④ OpenClaw 微信插件(node 进程,长连接常驻)
↓
⑤ ilink 服务端 → POST /ilink/bot/sendmessage
↓
⑥ 用户手机微信
详见 references/protocol-notes.md。
# 一键安装
bash ~/.openclaw/skills/wechat-push-skill/install.sh
# 安装过程中会:
# 1. 检查 openclaw CLI
# 2. 探测活跃 bot 账号
# 3. 引导配置 openid
# 4. 链接命令到 ~/.local/bin
# 5. 跑一次 verify 验证链路
# 推一条消息
wechat-push "你好"
# 推给指定 openid(临时覆盖配置)
wechat-push --to oXXXXXXXXXXXXXXXXX@im.wechat "你好"
# 静默推送(不响通知,用于探活)
wechat-push --silent "probe test"
# 预演:只打印将使用的 openid/account,不发送
wechat-push --dry-run "你好"
# 链路 5 跳自检
wechat-push-verify
# 故障排查
wechat-push-doctor
wechat-push-skill/
├── SKILL.md ← 你正在看
├── README.md ← 公开说明(中英)
├── install.sh ← 一键安装
├── bin/
│ ├── wechat-push ← 主命令
│ ├── wechat-push-verify ← 链路自检
│ └── wechat-push-doctor ← 故障排查
├── lib/
│ ├── wechat_push.py ← 推送核心
│ ├── ilink_probe.sh ← 探活
│ └── (config 自动生成在 ~/.config/wechat-push/)
├── templates/
│ └── config.example ← openid 配置模板
└── references/
├── protocol-notes.md ← ilink 协议关键点
└── troubleshooting.md ← 6 种故障模式库
安装后可加这些 cron 自动化推送:
| cron | 频率 | 作用 |
|---|---|---|
wechat-monitor-5min | 5m | 看 Mac mini 微信插件状态 |
ilink-probe-15min | 15m | silent 探活,状态变 DOWN 时主动告警 |
daily-morning-briefing | 0 8 * * * | 早报(C 档详细版) |
daily-evening-summary | 0 21 * * * | 晚报 |
# 加探活 cron(最常用)
openclaw cron add ilink-probe-15min \
--every "15m" --session main \
--system-event "触发 ilink 探活,跑 wechat-push-skill 的 ilink_probe.sh"
| 现象 | 根因 | 修法 |
|---|---|---|
| 脚本说 SUCCESS,用户没收到 | 假成功(只看 HTTP 200) | 用本 skill v2,校验 Sent via |
errcode=-14, "session timeout" | bot session 被微信踢 | 换活跃账号 / 重新扫码 |
ret=-2 / HTTP 000 裸 curl | 裸 ilink 网络层不通 | 必须走 openclaw message send |
getupdates 有响应,sendmessage 推不出 | 半活状态 | plugin 内部状态不同步,重启 plugin |
| 推了 8 次后突然全失败 | bot session 静默被踢 | 等几小时自动恢复 / 重新扫码 |
| 推一次 silent 成功,推非 silent 失败 | openid 不对 | 确认 --to 是目标 openid |
详见 references/troubleshooting.md。
装完跑 wechat-push-verify,所有 5 跳都 ✅ OK = 装成功。
推一条测试消息 wechat-push "test from skill",用户手机微信实际收到 = 真成功。脚本 exit 0 只能说明命令层通过,不能替代手机端确认。
lib/wechat_push.py(~180 行)lib/ilink_probe.shinstall.shREADME.mdreferences/protocol-notes.mdreferences/troubleshooting.md