360 Secure SkillHub
360 安全技能中心

Huo15 Wecom Plugin

这是OpenClaw的企业微信通道插件,默认采用响应快、免公网的Bot WebSocket模式,同时支持Agent自建应用主动推送、微信客服接收外部用户消息三通道。核心功能含加密媒体解密、Markdown富文本、多账号切换、流式回复,失败自动降级适配。适用于企微Bot/自建应用对接OpenClaw、微信客服收消息、图片文件双向传输场景,通过配置文件启用,消息自动路由至Agent,回复经对应通道返回。

zhaobod1
zhaobod1
热度 33.67
最近更新 2026-05-04 23:01:48
分类:开发依赖:第三方 API / 读写文件 / MCP 服务应用场景:API 集成 / 自动化脚本

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add huo15-wecom
Metadata
name
huo15-wecom
description
火一五·企业微信(WeCom)OpenClaw 插件 v2.8.21 — 默认走 Bot WebSocket(响应快、配置简单),自带加密媒体解密 / Agent 主动发消息 / 微信客服三通道接入 / 多账号切换。v2.8.21 重点:诊断与韧性增强(reply.ts MEDIA: parser 加 detected/warn log,gateway.log 可见;media.ts errcode 详细 log 含 86008 群权限识别;GUIDANCE 加✅/❌示例对比杜绝 LLM 把 MEDIA: 嵌入正文)。继承 v2.8.20 reply.ts MEDIA: parser、v2.8.19 outbound 路径、v2.8.18 ClawHub plugin tag、v2.8.17 长任务结果回流 + progressMode。Use when: 接企业微信、给企微 Bot/自建应用接 OpenClaw、用微信客服收外部用户消息、需要图片/文件双向、跨账号切换。Do NOT use for 个人微信(不同协议)。
version
2.8.21
homepage
https://cnb.cool/huo15/ai/huo15-wecom-plugin
metadata
{"openclaw":{"emoji":"🦜","requires":{"bins":[]}}}

火一五企业微信插件

@huo15/wecom 是 OpenClaw 的企业微信通道插件,fork 自 yanhaidao/wecom 并持续合并上游。默认 Bot WebSocket 模式,配置简单、响应快;同时支持 Agent 自建应用主动推送和微信客服三方通道。

三条消息通道

通道 用途 配置入口
Bot WebSocket 默认推荐,企业微信"智能机器人"WS 协议,免公网回调 channels.wecom.accounts.<id>.bot.ws
Agent 自建应用 走企微官方 API(CorpId/AgentId/Secret),支持主动推送给指定用户/群 channels.wecom.accounts.<id>.agent
微信客服 接管"客服会话",外部客户在微信/视频号里发给客服账号的消息 channels.wecom.accounts.<id>.kefu

三条通道可以单独启用或组合启用,多账号场景每个账号独立配置。

安装

# OpenClaw 内置安装(推荐)
openclaw plugins install @huo15/wecom

# 或者直接 npm
npm install @huo15/wecom

最小配置(Bot WS 模式)

# ~/.openclaw/openclaw.json 中
channels:
  wecom:
    enabled: true
    accounts:
      default:
        bot:
          ws:
            botId: "你的智能机器人 ID"
            secret: "WS 密钥"

启动后,Bot 收到的消息会自动路由到默认 Agent,回复也通过 WS 直接送回 — 不需要部署任何回调 endpoint。

关键能力

  • 加密媒体解密:图片/文件/语音 AES-256-CBC 解密直接拿 buffer,可让 Agent 直接读取(OCR / ASR / 文档解析)
  • Markdown V2:支持企微富文本(标题、表格、代码块、链接、引用),自动适配 chat 上下文
  • 图片回复:![alt](url) 自动抽离 + uploadMedia + replyMedia,COS/OSS 预签名 URL 失败时降级为占位文本(不让"链接已过期"漏到客户端)
  • 多账号切换:单实例支持多个企业、多个智能体并存,按 conversation 路由
  • 流式回复:placeholder + partial replyStream(最多 8 次中间更新)+ ack timeout watchdog 自动重连

v2.8.8 关键修复(WS BOT 图片)

  1. Reply 通道纠错:reply 上下文从 sendMediaMessage(主动推送)改用 replyMedia(被动回复,绑定 reqId)
  2. 入向多图:mixed 与 quote.mixed 类型从只取首张改为全部提取;首张挂 ctx.MediaPath,其余落盘 + info 日志
  3. Outbound fetch UA:从裸 fetch 切到 plugin-sdk fetchRemoteMedia,显式带 desktop User-Agent,避免部分 Tencent COS / 阿里 OSS bucket 拒绝 Node 默认 UA
  4. 解析可观测性:媒体类型消息但无 attachments 时记 warn 日志(含 msgid + body keys),便于 SDK 字段漂移排查

详见 changelog/v2.8.8.md。

安全实践

  • LLM 输出的 touser / chatid 经 resolveWecomTarget sanitizer,拒绝 @all / @everyone / * 等广播字面量(v2.8.1 SECURITY 修复)
  • 跨企业上下游消息走 upstream-delivery 通道,不与本企业 Agent API 混用
  • 微信客服 corpSecret 可与 Agent corpSecret 独立配置,权限隔离

不变的设计原则

  • Bot WS 优先:能用 WS 就不用 Agent API(少配置、低延迟)
  • 失败降级:WS reply ack timeout 自动 fallback 到 Agent API(保留消息可达性),watchdog 连续 8 次后触发 WS 重连
  • 不修改 OpenClaw 核心:所有功能通过 channel plugin SDK 注册

仓库

License

ISC(继承自 yanhaidao/wecom 上游)。