微信 (WeChat)

将 OpenClaw Agent 接入微信生态,支持企业微信、微信服务号及第三方桥接方式,全面覆盖测试与生产场景。

概述

微信(WeChat)是国内最主流的即时通讯与办公生态平台。OpenClaw 支持通过多种方式无缝接入微信生态:

  • 企业微信(WeCom):官方原生支持,连接稳定可靠(强烈推荐)。
  • 微信服务号:适合企业和组织向外部客户提供公众服务。
  • 第三方桥接(个人微信):基于开源协议库实现的个人微信号接入(实验性功能)。

接入模式对比

接入方式配置难度稳定性接入成本适用场景
企业微信⭐⭐ 中等✅ 极高免费内部企业团队、工作协同
微信服务号⭐⭐⭐ 复杂✅ 极高需每年缴纳认证费企业对外客服、公众服务
第三方桥接⭐ 简单⚠️ 中等免费个人测试环境、私域流量尝试

方式一:企业微信接入(官方推荐)

前置准备

  • 注册企业微信管理员账号(中小型团队可免费注册)。
  • 具备企业微信管理后台的开发者操作权限。

1. 创建企业微信自建应用

  1. 登录 企业微信管理后台
  2. 进入导航栏的「应用管理」-「应用」- 点击「创建应用」。
  3. 准确填写应用基础信息:
    • 应用名称:OpenClaw(或您的定义名称)
    • 应用介绍:AI 智能助手
    • 上传合规的应用 Logo
  4. 选择应用的「可见范围」(即哪些部门和成员允许使用该机器人的服务)。
  5. 点击「创建应用」完成保存。

2. 获取核心应用凭证

进入刚创建的应用详情页面,记录以下三个核心凭证参数:

  • AgentId:该自建应用的唯一 ID。
  • Secret:该应用的调用密钥。
  • CorpId:企业 ID(可通过后台的「我的企业」页面底部获取)。

3. 配置「接收消息」回调服务

为了让 OpenClaw 能收到用户发来的消息,需设置后台回调事件:

  1. 在应用详情页,下滑找到「接收消息」配置卡片并点击「设置 API 接收」。
  2. 填写接收消息服务器的配置项:
    • URL:输入您公网暴露的 OpenClaw 服务地址(例如:https://your-domain.com/wechat/callback)。
    • Token:填写自定义的英文与数字校验令牌。
    • EncodingAESKey:点击「随机生成」以生成高强度消息加解密密钥。

提示:如果您处于本地开发环境,必须利用类似 ngrok、Frp 的内网穿透工具获取可供公网及微信服务器回调的临时 HTTPS 地址。

4. 在 OpenClaw 中配置挂载参数

在后端终端内运行新增渠道指令:

openclaw channels add

选择「企业微信(WeChat Work)」,或直接修改本地配置文件 ~/.openclaw/config.json 覆盖如下参数:

{
  "channels": {
    "wechat-work": {
      "enabled": true,
      "corpId": "YOUR_CORP_ID",
      "agentId": "YOUR_AGENT_ID",
      "secret": "YOUR_SECRET",
      "token": "YOUR_TOKEN",
      "encodingAESKey": "YOUR_AES_KEY"
    }
  }
}

5. 验证通信链路

  1. 在企业微信的手机端或桌面端工作台中找到刚上架的应用。
  2. 进入对话流并发送测试消息,例如:@OpenClaw 你好
  3. 查看是否成功收到回复。

方式二:微信服务号接入

前置准备

  • 拥有已通过微信认证的服务号主体。
  • 具有微信公众平台开发者权限。

1. 配置服务器回调信息

  1. 登录 微信公众平台
  2. 左侧菜单进入「开发」-「基本配置」页面。
  3. 开启开发者密码,并在「服务器配置」中填写:
    • URL:指向 OpenClaw 的公网回调域名服务(如:https://your-domain.com/wechat/callback)。
    • Token:自定义用于签名的校验令牌。
    • EncodingAESKey:点击随机生成。
    • 消息加解密方式:推荐选择「安全模式」。

2. 获取服务号鉴权凭证

在同一个「基本配置」页面中获取调用 Open API 的凭证:

  • AppID:开发者应用 ID。
  • AppSecret:开发者应用密码。

3. 在 OpenClaw 中写入配置

修改本地 ~/.openclaw/config.json,增加服务号渠道支持:

{
  "channels": {
    "wechat-mp": {
      "enabled": true,
      "appId": "YOUR_APP_ID",
      "appSecret": "YOUR_APP_SECRET",
      "token": "YOUR_TOKEN",
      "encodingAESKey": "YOUR_AES_KEY"
    }
  }
}

4. 辅助配置

在公众平台后台,您可顺便设置好其他引流行为(这部分流程通常在微信后台界面完成):

  • 自定义菜单定向导航。
  • 基础关键词的兜底自动回复。
  • 被关注后的欢迎语引导。

方式三:第三方协议桥接(针对个人微信号)

注意:针对个人微信账号的对接均为实验性反向工程调用。它可能触及微信官方对于自动化挂机的风控警报红线,带来封号风险。强烈建议仅用于抛弃型小号或本地独立沙箱测试环境。

方案 A:使用 Wechaty 底层驱动

Wechaty 是一个极其主流的开源微信个人号自动化接口桥接网络。

  1. 安装 Wechaty 驱动引擎:
npm install wechaty
  1. 部署极简的中转桥接脚本服务(示例参考):
const { Wechaty } = require('wechaty')
// 这里需提前引入 openclaw 实例化模块

const bot = new Wechaty({
  name: 'openclaw-bot',
  puppet: 'wechaty-puppet-wechat',
})

bot.on('message', async (message) => {
  // 拦截普通消息,作为中间件转发到 OpenClaw 网关引擎处理
  const response = await openclaw.process(message.text())
  await message.say(response)
})

bot.start()
  1. 运行代码后,控制台会弹出二维码,使用手机微信扫码授权登录即可开始接管。

方案 B:使用 ComWeChatRobot 框架

这是基于运行在 Windows 实体机上的 PC 版微信内存注入机器人框架。需要您部署在独立的打桩服务器上。

  1. 下载对应版本的 PC 微信并安装对应的 ComWeChatRobot 注入包。
  2. 本地起服后挂接到 OpenClaw 给出的 HTTP 监听网关进行数据换转桥接。

高阶管控配置

白名单放行策略 (Allowlist)

考虑到费用的控制和隐私因素,可以在配置文件层面阻断不受信任用户的调用请求:

{
  "channels": {
    "wechat-work": {
      "groupPolicy": "allowlist",
      "allowedUsers": [
        "ZhangSan",    // 允许的企业微信内部员工 ID 1
        "LiSi"         // 允许的企业微信内部员工 ID 2
      ]
    }
  }
}

群组管控与响应要求

限制机器人在指定的内部业务群组运作,并要求必须提及 @ 机器人才启动响应机制:

{
  "channels": {
    "wechat-work": {
      "allowedGroups": [
        "group_id_10204",
        "group_id_32111"
      ],
      "requireMention": true
    }
  }
}

脏数据与富文本过滤

针对非结构化数据或无效图片,可以在网关顶层建立过滤掉落矩阵:

{
  "channels": {
    "wechat-work": {
      "ignoreTypes": ["image", "video", "voice"], // 令机器人屏蔽媒体资源传输,节约带宽与算力
      "ignoreKeywords": ["广告", "spam"]
    }
  }
}

典型落地方案与场景

场景 1:数字办公网关助理 (内部企业微信)

  • 提供内部 HR 和 IT 操作指导库。
  • 将钉钉/飞书的会议日程通过 OpenClaw 桥接到微信侧进行日程打通。
  • 对接 Jira 提供内部研发工单流转审批查询。

场景 2:公众号外部客服机器人 (服务号)

  • 高速、7x24 小时不间断秒回的基础常见 Q&A 解答。
  • 连接物流或电商系统实现用户自主订单状态核查。
  • 提供产品矩阵方案的前期智能跟进咨询。

性能优化建议

突发并发控制阵列

应对瞬时激增的大量查询事件(如服务号推文后的并发请求浪涌),引入过载保护:

{
  "channels": {
    "wechat-work": {
      "queueSize": 100,      // 请求缓冲区排队深度锁定在 100 条
      "concurrency": 5,      // 并发交由 OpenClaw 系统处理的最大进程数
      "timeout": 30000       // 最大超时等待阻断期(如 30 秒无果直接放弃)
    }
  }
}

频繁缓存前置池

如果企业微信被当作百科客服,开启相同的语料查询拦截复用策略可极大保护 Token 开销池:

{
  "channels": {
    "wechat-work": {
      "cache": {
        "enabled": true,
        "ttl": 3600 // 缓存记忆结果有效期 1 小时
      }
    }
  }
}

渠道官方限制及规避参考

企业微信天花板限制

  • 消息发送频率:单个应用每分钟向用户或群发配额通常被系统锁定在 200 条内。
  • 附件体积:最大支持单文件 20MB 级别。
  • 群容量:单群人数目前受限于 500

微信服务号受限项

  • 主动触达消息:公众号极其严格,严禁无故向用户发垃圾消息,仅允许在用户发送过动作后的 48 小时内 调用客服接口触达回复。
  • 模板消息:业务模板格式受限并须获得平台授权。

系统排障指南

Q: 完全收不到任何回调,日志也一片死寂?

  1. 若为本地环境,强烈怀疑 ngrok 或内网穿透域名的 HTTPS 未正确启动,请直接使用浏览器验证公网 Callback URL 是否通畅。
  2. 确保配置中的验证 TokenAES Key 与微信官方后台上填写的值呈现字面上的严丝合缝一致性。
  3. 检查腾讯服务器控制台右上角或内部审计系统的 应用可见范围 放行项。

Q: 企业微信接收消息正常,但日志显示回复发出后发送失败?

  1. 主要疑点转移至 Secret 不一致,需在腾讯应用后台进行重置并重新覆盖 config.json
  2. IP 涉嫌受到腾讯应用侧安全白名单限制,确认 OpenClaw 分发的源 IP 是否已被加入到企业微信的调用方白名单内。

相关扩展资料资源

On this page