企微智能机器人消息推送
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_c14d983d/wecom-aibot-send 到当前 AI 助手。
技能介绍
解决什么问题
企业微信的「智能机器人」(aibot)和常见的群机器人 webhook 不是一回事:它没有 URL 可 POST,消息要主动发出去,就必须走 WebSocket 长连接 并完成 bot_id/secret 鉴权,还必须指定目标会话 ID。换句话说,脚本里拿不到一个地址就能随便发消息,缺少一个能把长连接、鉴权和会话寻址封装起来的接入层。这个技能补上的就是这一层:让 agent 或定时任务用几行命令完成一次主动推送。
如何工作
技能提供两条脚本路径:
scripts/send.js:已知目标会话时直接推送。群聊填WECOM_CHAT_ID为群 chatid,单聊填对方 userid。scripts/capture.js:不知道会话 ID 时先监听。在目标会话触发一次事件(群里 @ 机器人,或单聊里发条消息),脚本捕获chatid/userid后实时返回,并默认回推一条消息验证通道;也可设WECOM_DISABLE_ECHO=1只打印 ID 不发送。
消息正文来自命令行参数、WECOM_MSG 或 WECOM_MSG_FILE,优先级前者更高;格式由 WECOM_MSG_TYPE 控制,默认 markdown。连接网关为 wss://openws.work.weixin.qq.com,SDK 建连后自动执行 aibot_subscribe 鉴权,成功后触发 authenticated 事件。SDK 已打包在 node_modules/ 里,脚本通过相对路径加载。
适用边界与注意点
- 凭证只通过环境变量传入,不要写进脚本、配置文件或聊天记录。
- 捕获到的会话 ID 属于敏感信息,只在运行时打印到控制台,不落盘、不写记忆;需要复用时由用户当场记录,之后改用
send.js。 errcode非 0 或收不到消息,通常是WECOM_CHAT_ID类型填错——群聊填群 chatid 而非群名,单聊填对方 userid 而非机器人自己。先用capture.js拿到准确 ID。- 鉴权失败先检查
WECOM_BOT_ID/WECOM_BOT_SECRET是否完整、有无多余空格;authenticated一直不触发,确认网络能连通 wss 网关(需出网)。 - 监听默认 60 秒超时(可调
WECOM_CAPTURE_TIMEOUT),触发不了就重跑,无需改配置。
使用场景
- 运维需要把线上告警即时发到企业微信群,但没有现成 webhook,要用智能机器人主动推到指定群 chatid。
- 值班同事要在每日定时任务里把天气播报推送到团队群,先捕获群 chatid,再用 send.js 定时发送。
- 客服负责人想把业务系统状态变化以 markdown 卡片推到单聊,需指定对方 userid 并验证回推是否成功。
- 团队想让 agent 在任务完成后主动通知群聊,但只知道群名,先用 capture.js 捕获准确 chatid。
适合人员
- 负责服务器监控的运维工程师:告警发生时要第一时间推送到企业微信值班群。
- 管理每日早报和天气播报的团队负责人:需要把定时生成的内容稳定发到固定群或单聊。
- 给企业微信接入 AI 助手的研发:要让 agent 完成任务后主动回消息,但会话 ID 还未知。
- 处理工单或客服系统的技术支持:希望把业务状态变更实时告知相关同事,并验证消息是否送达。