Skip to content

微信公众号 AI 助手插件 - 支持客服消息、双Agent模式、图片收发 | WeChat Official Account AI chatbot plugin for OpenClaw

License

Notifications You must be signed in to change notification settings

IanShaw027/wemp

Repository files navigation

wemp

GitHub Release Dual Agent TypeScript License

GitHub stars GitHub forks GitHub issues Node.js OpenClaw

微信公众号 AI 助手插件 - 支持客服消息、双 Agent 模式、图片收发
WeChat Official Account AI chatbot plugin for OpenClaw

✨ 功能特性

  • 📨 消息收发 - 支持文本、语音(含识别)、图片消息
  • 🤖 双 Agent 模式 - 未配对用户走客服 Agent,配对用户走完整 Agent
  • 🔗 跨渠道配对 - 通过 Telegram、飞书等渠道配对解锁完整功能
  • 🔐 安全模式 - 支持明文和 AES 加密两种模式
  • 📋 自定义菜单 - 支持菜单管理和 AI 助手开关
  • 客服消息接口 - 无 5 秒超时限制,长消息自动分段

🏗️ 架构

┌─────────────────────────────────────────────────────────────────┐
│                        微信公众号                                │
└─────────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│                         wemp 插件                               │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐             │
│  │ Webhook     │  │ 配对管理    │  │ 菜单管理    │             │
│  │ 消息接收    │  │ 跨渠道绑定  │  │ AI开关     │             │
│  └─────────────┘  └─────────────┘  └─────────────┘             │
└─────────────────────────────────────────────────────────────────┘
                              │
              ┌───────────────┴───────────────┐
              ▼                               ▼
┌─────────────────────┐         ┌─────────────────────┐
│ wemp-cs (客服)      │         │ main (完整)         │
│ 未配对用户          │         │ 已配对用户          │
│ 功能受限            │         │ 完整权限            │
└─────────────────────┘         └─────────────────────┘

📦 安装

# 进入 extensions 目录
cd ~/.openclaw/extensions

# 克隆项目
git clone https://github.com/IanShaw027/wemp.git wemp

# 安装依赖并编译
cd wemp && npm install && npm run build

# 重启 Gateway 加载插件
openclaw gateway restart

⚙️ 配置

方式一:交互式配置(推荐)

openclaw configure --section channels
# 选择 wemp,按提示输入配置

方式二:手动编辑

编辑 ~/.openclaw/openclaw.json

{
  "channels": {
    "wemp": {
      "enabled": true,
      "appId": "wx1234567890abcdef",
      "appSecret": "your_app_secret",
      "token": "your_token",
      "webhookPath": "/wemp"
    }
  }
}

微信公众号后台

  1. 登录 微信公众平台 → 设置与开发 → 基本配置 → 服务器配置
  2. 配置:
    • URL: https://YOUR_DOMAIN/wemp(必须 HTTPS)
    • Token: 与配置一致
  3. 配置 IP 白名单,启用服务器配置

🔐 双 Agent 模式

用户状态 Agent 工具权限 说明
未配对 wemp-cs 受限 面向公众的基础问答
已配对 main 完整 授权用户完整功能

配对流程

用户 (公众号)                    管理员 (Telegram)
     │                                │
     │ 发送「配对」                    │
     ▼                                │
┌─────────────┐                       │
│ 返回配对码  │                       │
│ (1小时有效) │                       │
└─────────────┘                       │
     │                                │
     │ ─────── 告知配对码 ──────────→ │
     │                                │
     │                    发送 /pair wemp <配对码>
     │                                ▼
     │                       ┌─────────────┐
     │ ←─────── 通知 ─────── │ 配对成功    │
     ▼                       └─────────────┘
┌─────────────┐
│ 获得完整权限│
└─────────────┘

说明:

  • 配对码由 OpenClaw pairing-store 生成(通常为 8 位大写字母/数字),有效期 1 小时。
  • 管理员也可以在服务器上直接执行:openclaw pairing approve wemp <code> --notify

用户命令

命令 说明
配对 / 绑定 获取配对码
解除配对 / 取消绑定 解除绑定(本地生效:切回客服模式)
状态 / /status 查看配对状态
配对配置详情
{
  "channels": {
    "wemp": {
      "agentPaired": "main",
      "agentUnpaired": "wemp-cs",
      "pairingApiToken": "your-secure-random-token"
    }
  }
}
配置项 说明
agentPaired 已配对用户使用的 Agent ID
agentUnpaired 未配对用户使用的 Agent ID
pairingApiToken 配对 API Token

注意:只要是主会话的授权用户就可以使用 /pair wemp <配对码> 命令进行配对批准。

📋 自定义菜单

默认菜单结构:

├─ 内容
│  ├─ 历史文章
│  └─ 访问官网
├─ AI助手
│  ├─ 开启AI助手
│  ├─ 关闭AI助手
│  ├─ 新对话
│  ├─ 清除上下文
│  └─ 使用统计
└─ 更多
   ├─ 撤销上条
   ├─ 模型信息
   └─ 使用统计

菜单自动同步

设置 syncMenu: true 后,每次 Gateway 重启时会自动同步菜单:

{
  "channels": {
    "wemp": {
      "syncMenu": true
    }
  }
}

同步逻辑:

  • 读取微信后台已有的菜单
  • 自动追加「AI助手」菜单
  • ⚠️ 注意:微信最多支持 3 个一级菜单,如果后台已有 3 个菜单,第三个会被「AI助手」替换
  • 建议在微信后台只保留 2 个一级菜单,让插件自动追加 AI 助手

菜单管理命令

在 Telegram 等渠道使用:

命令 说明
/wemp-menu create 创建菜单(从配置读取或使用默认)
/wemp-menu delete 删除自定义菜单
/wemp-menu get 查看当前菜单配置

完全自定义菜单

如需完全自定义菜单结构,可在配置中指定:

{
  "channels": {
    "wemp": {
      "menu": {
        "button": [
          {
            "name": "菜单一",
            "sub_button": [
              { "type": "click", "name": "按钮1", "key": "KEY_1" },
              { "type": "view", "name": "链接", "url": "https://example.com" }
            ]
          }
        ]
      }
    }
  }
}

🤖 AI 助手开关

AI 助手默认关闭,用户需要通过菜单「AI助手」→「开启AI助手」手动开启。

  • 关闭状态下,用户发送的消息不会被处理
  • 可配置关闭状态下的提示消息(aiDisabledHint
  • 设为空字符串可禁用提示
{
  "channels": {
    "wemp": {
      "aiEnabledMessage": "AI 助手已开启,有什么可以帮你的?",
      "aiDisabledMessage": "AI 助手已关闭。",
      "aiDisabledHint": "AI 助手当前已关闭,请点击菜单开启。"
    }
  }
}

📊 使用限制

可为未配对用户设置每日使用限制(配对用户不受限制):

{
  "channels": {
    "wemp": {
      "usageLimit": {
        "dailyMessages": 100,
        "dailyTokens": 100000
      }
    }
  }
}
配置项 说明
dailyMessages 每日消息数上限(0 = 无限制)
dailyTokens 每日 Token 上限(0 = 无限制)

用户可通过菜单「使用统计」查看当前使用情况。

完整配置项
配置项 类型 必填 说明
appId string 公众号 AppID
appSecret string AppSecret
token string 服务器配置 Token
encodingAESKey string 消息加解密密钥(安全模式)
webhookPath string Webhook 路径,默认 /wemp
syncMenu boolean 启动时自动同步菜单(默认 false)
welcomeMessage string 关注后的欢迎消息
aiEnabledMessage string AI 助手开启提示
aiDisabledMessage string AI 助手关闭提示
aiDisabledHint string AI 关闭时收到消息的提示(空字符串禁用)
usageLimit.dailyMessages number 每日消息上限
usageLimit.dailyTokens number 每日 Token 上限
articlesUrl string 历史文章链接
websiteUrl string 官网链接
contactInfo string 联系信息
agentPaired string 已配对用户使用的 Agent ID
agentUnpaired string 未配对用户使用的 Agent ID
pairingApiToken string 配对 API Token

🔧 扩展 API

插件提供丰富的微信公众号 API,可在 Skill 中调用:

模块 功能
草稿管理 创建、编辑、删除草稿
发布管理 发布文章、查询状态
数据统计 用户增长、阅读数据、消息统计
用户管理 获取用户信息、标签管理、黑名单
评论管理 查看评论、精选、回复、删除
模板消息 发送模板消息
群发消息 按标签/OpenID 群发
二维码 生成带参数二维码
OCR 身份证、营业执照、银行卡识别
AI 能力 翻译、图片裁剪、超分辨率

🚀 配套 Skill: wemp-operator

wemp-operator 是配套的公众号运营 Skill,提供内容采集、数据分析、互动管理等自动化功能。

功能

功能 说明
📝 内容采集 从 20+ 数据源智能采集热点(HN、V2EX、36Kr、微博等)
📊 数据分析 自动生成日报/周报,包含用户增长、阅读数据、AI 洞察
💬 互动管理 评论检查、智能回复建议、批量精选

安装

git clone https://github.com/IanShaw027/wemp-operator.git ~/.openclaw/skills/wemp-operator

使用

安装后直接用自然语言与 OpenClaw 对话:

帮我采集今天的 AI 热点
生成公众号日报
检查公众号新评论

触发词: 采集热点、公众号日报、周报、检查评论、回复评论、生成文章

详细文档见 wemp-operator README


📁 项目结构

wemp/
├── index.ts              # 入口文件
├── src/
│   ├── api.ts            # 微信 API 封装
│   ├── channel.ts        # Channel Plugin 定义
│   ├── config.ts         # 配置解析
│   ├── crypto.ts         # 消息加解密(AES)
│   ├── pairing.ts        # 配对功能
│   └── webhook-handler.ts # Webhook 处理
├── openclaw.plugin.json
└── package.json

⚠️ 注意事项

  • 服务号要求 - 客服消息接口需要认证的服务号
  • 48 小时限制 - 用户 48 小时内有互动才能发送客服消息
  • IP 白名单 - 需在公众号后台配置服务器 IP
  • HTTPS 必须 - 微信要求服务器配置 URL 必须是 HTTPS

🗺️ 路线图

  • 基础消息收发
  • 客服消息接口
  • 安全模式(AES 加密)
  • 双 Agent 模式
  • 跨渠道配对
  • 图片消息收发
  • 自定义菜单
  • AI 助手开关
  • 模板消息支持
  • 多账号支持

🤝 贡献

git clone https://github.com/IanShaw027/wemp.git
cd wemp
npm install
npm run dev  # 监听模式

📜 许可证

MIT License

🔗 相关链接

资源 链接
OpenClaw 部署指南 腾讯云一键部署
微信公众平台 mp.weixin.qq.com
微信开发文档 developers.weixin.qq.com

⭐ Star History

Star History Chart


Made with ❤️ by IanShaw027

About

微信公众号 AI 助手插件 - 支持客服消息、双Agent模式、图片收发 | WeChat Official Account AI chatbot plugin for OpenClaw

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published