乐于分享
好东西不私藏

OpenClaw接入企业微信,最容易卡住的5个地方

OpenClaw接入企业微信,最容易卡住的5个地方

好久没聊, 最近在折腾小龙虾. 

相比把小龙虾接入飞书或者国外的IM, 我其实更想把它接入微信国民级的IM. 

当然了, 暂且只能接入企业微信, OpenClaw不支持直接接入个人微信(协议限制. 期间遇到了很多问题, 凡此种种不一而足:

配了半天,消息就是进不来, 企业微信后台、OpenClaw配置、服务器端口,查了个遍不知道哪里出的问题. 

把这轮折腾的经验整理了一下,最容易卡住的地方,基本就是下面这5个.

先让龙虾站稳,再整企业微信

无论如何, 你得先让龙虾站稳了, 别趴下。

消息进不来,我的第一反应是去翻企业微信后台,觉得是回调配错了。

标准的排查顺序应该像这样:

openclaw status

openclaw gateway status

openclaw logs --follow

openclaw doctor

openclaw channels status --probe

官方设计的排障流程,本来就是先看OpenClaw本体和网关,再去看具体渠道。所以卡住的时候,先确认三件事再说:

  • OpenClaw服务是不是在跑
  • Gateway状态是不是正常(显示"Runtime: running")
  • 日志里有没有明显报错

省token小技巧: 遇到了啥问题, 直接截图丢给另一个AI, 分分钟给你答案. 

企业微信机器人和企业微信应用

网上能找到的教程,接法大概就两种:

  • 企业微信机器人:配置轻,适合快速验证,只能被动回复
  • 企业微信自建应用:权限完整,支持主动发消息,适合长期使用

这两条路的配置参数、回调路径都不一样,不能混着看。

你可以先试通,用机器人;如果需要长期跑,还是应用比较好。

微信机器人只能接受发送文本信息类型, 企业微信应用可以推送信息, 发送文件和图片等等.

最好的办法是两个都整上, 一个通道不行的话会自动切换到另一个响应需求.

回调地址路径 机器人和应用不一样

容易踩错,而且错了之后非常难排查。正确的路径是这样的:

接入方式
回调地址格式
企业微信机器人
http://你的公网IP:18789/wecom/bot
企业微信自建应用
http://你的公网IP:18789/wecom/agent

路径末尾也不是 /callback,而是 /bot 或 /agent,取决于你用哪种接入方式。

网上有些老教程或转载文章里的路径跟这个不一样,直接复制过来的话,会出现这种情况:端口开了,Token填了,AESKey也填了,但企业微信后台保存时就是提示"回调地址请求不通过"。这里就是路径没对上。

IP可信白名单和应用发布

拿到下面这几个凭证:

  • CorpID(企业ID)
  • AgentID(应用ID)
  • Secret(应用密钥)
  • Token(验证用)
  • EncodingAESKey(加密密钥)

千万别忘了两步:

企业可信IP:没有把服务器的公网IP加进去,企业微信会直接报"IP未授权",消息收不到。这个错误: 60020 not allow to access from your ip

应用发布:在企业微信后台建好应用之后,还需要手动点"发布",不发布,前台用户无法使用。

这两步漏一个,就算其他全配对了,依然接不通。

多人用串话

最容易被忽略的坑,通常要到真正上线之后才暴露。

前面几步都配对了,单人测试完全正常。结果一开放给团队用,机器人开始答非所问,A问的问题带着B的上下文去回答。

问题出在会话隔离没配。

OpenClaw的会话默认是 dmScope: "main",也就是所有私信共享同一个上下文。官方文档里明确说过:多人共用一个DM上下文,可能会把A的信息带到B那边,造成信息泄露或串话。

解决方案很直接,在配置文件里加一行:

{  "session": {    "dmScope": "per-channel-peer"  }}
场景
推荐配置
单人使用
main
(默认,不用改)
多人共用同一个入口
per-channel-peer
多账号、多渠道混用
per-account-channel-peer

另外如果企业里有多个部门都在用,销售群、研发群、行政群最好各自走不同的Agent,别让所有消息全打到同一个地方。上下文搅在一起,模型表现再好也没用。

最后说一句

5件事:

  • 先跑稳本体,确认gateway正常
  • 选对接入方式(机器人 or 应用)
  • 按接入方式填对应的回调路径
  • 把白名单和发布补上
  • 按实际使用人数配好会话隔离

之后再谈群里的问答机器人、流程提醒、AI助手,才是真的往前走。

不然大概率只是在和配置项打架。

就写到这, 你在接入过程中遇到的是哪一个坑?