想让团队用上 AI 助手?单独开个网页没人会去用。AI 必须出现在大家已经在用的地方——IM 群聊里。
最理想的方案:AI 直接在聊天窗口里回复,谁需要谁 @,不切换上下文。
OpenClaw 就是干这件事的。不管你团队用的是飞书、钉钉还是企业微信,都有对应的部署方案。
这篇文章覆盖了三个主流 IM 平台的部署路线,无论你团队用的是哪个,都能找到对应的完整教程。每个平台都有分步指南和 Claude Code 一键部署版本——想动手的时候直接跳过去就行。
OpenClaw 是什么
OpenClaw 是一个开源 AI 智能体,部署在你自己的机器上,通过飞书、钉钉、企业微信等 IM 接收指令,在后台执行任务。不只是聊天机器人——它有 shell 权限,能跑命令、写脚本、装软件,还有跨会话的长期记忆。 你甚至可以让它自己开发新 Skills,自主写代码、装依赖、然后直接干活。
就像有个 7×24 在线的远程同事,随时待命。
部署只需要一个 Docker 镜像:ghcr.io/openclaw/openclaw:latest。不管你要接哪个平台,拉的都是同一个镜像,区别只在于配置文件和安装的插件不同。
OpenClaw 交流群
如果你也在折腾 OpenClaw,或者对 AI Agent、自动化工具感兴趣,欢迎加入以下交流群。一起交流使用经验、分享自动化玩法、讨论最新进展。
三大平台一览
下面这张表帮你快速了解各平台的部署特点:
| 飞书 | 钉钉 | 企业微信 | |
|---|---|---|---|
| 插件 | @openclaw/feishu(官方) |
openclaw-channel-dingtalk(社区) |
@sunnoy/wecom(社区) |
| 镜像内预装 | 是 | 否 | 否 |
| 连接方式 | WebSocket 长连接 | Stream Mode(WebSocket) | HTTP 回调 |
| 需要公网 IP / 备案域名 | 否 | 否 | 是 |
| 部署步骤 | 7 步 | 7 步 | 8 步 |
| 权限配置方式 | JSON 批量导入 | 手动逐条 | 按接口授权 |
你团队用哪个 IM,就看哪个平台的指南。 如果公司同时用了多个平台,从部署难度看推荐顺序是飞书 > 钉钉 > 企业微信。
飞书最省心。插件是官方维护的,镜像里直接预装好了,不用额外安装。连接走 WebSocket 长连接,客户端主动连出去,不需要公网 IP。权限配置支持 JSON 批量导入,不用一条条勾。
钉钉次之。整体流程和飞书相似,也是 WebSocket 出站连接,不需要公网 IP。但插件是社区维护的,不在镜像里,需要在启动前手动安装。权限要一条条手动开启,比飞书的批量导入费时间。如果你的钉钉应用需要 AI 卡片流式输出效果,还需要额外配置卡片模板。
企业微信最折腾。最大的门槛是必须有公网 IP 或者已完成 ICP 备案的域名,因为企业微信使用 HTTP 回调机制,需要从腾讯服务器主动向你的服务器发请求。如果你的服务器在内网,要么用反向代理暴露出去,要么用 ngrok、frp 等内网穿透工具。此外配置需要分两阶段完成,比其他两个平台多一轮启停操作。
飞书部署要点
- 在飞书开放平台创建企业自建应用,应用类型选择「企业自建应用」
- 获取 App ID(格式为
cli_xxx)和 App Secret,写入.env文件 - 在权限管理页面通过「批量开通」功能导入 JSON 权限配置,一次搞定所有权限
- 在应用能力页面开启「机器人」能力
- 先启动容器,然后在事件订阅页面选择「使用长连接接收事件」,添加
im.message.receive_v1事件 - 创建应用版本并提交发布,等待管理员审批通过
- 在 IM 中找到机器人,发送任意消息触发配对流程,用配对码完成绑定
最容易踩的坑:事件订阅必须在容器启动后配置。 飞书会在你保存事件订阅时立即尝试建立长连接,如果网关还没跑起来,握手会失败,订阅配置也不会生效。很多人反复配置都不成功,原因就在这里。
权限变更后需要重新发布版本。 如果你后续修改了权限配置,记得重新创建版本并发布,否则新权限不会生效。
→ 完整指南见「阅读原文」中的 飞书 部分(含 ⚡ Claude Code 一键部署版)
钉钉部署要点
- 在钉钉开放平台创建企业内部应用
- 获取五个关键凭证:Client ID(即 AppKey)、Client Secret(即 AppSecret)、Robot Code(同 Client ID)、Corp ID(企业 ID)、Agent ID(应用 ID)
- 在权限管理中手动逐条开启所需权限,特别是
Card.Instance.Write和Card.Streaming.Write - 开启机器人能力,消息接收模式务必选择「Stream 模式」而非 HTTP 推送
- 先用一次性容器安装社区插件,这一步必须在配置 channel 之前完成
- 在
openclaw.json中添加钉钉渠道配置,然后启动容器 - 创建应用版本并发布,需要企业管理员在
oa.dingtalk.com审批
最容易踩的坑:先装插件,再写 channel 配置。 如果 openclaw.json 里已经写了 dingtalk 的 channel 配置,但插件还没装,容器启动时会因为找不到 dingtalk channel 的处理器而不断崩溃重启。正确顺序是先跑一次安装命令把插件装好,再把 channel 配置补进去。
插件安装可能会改你的配置文件。 安装过程中 openclaw.json 里的 ${VAR_NAME} 运行时变量可能会被字符串展开。安装完成后检查一下配置文件,如果变量被展开了,手动改回 ${VAR_NAME} 的格式。
审批可能不是即时的。 钉钉企业内部应用发布需要管理员审批,如果迟迟没通过,去 oa.dingtalk.com 的工作台检查审批队列。
→ 完整指南见「阅读原文」中的 钉钉 部分(含 ⚡ Claude Code 一键部署版)
企业微信部署要点
- 在企业微信管理后台创建「自建应用」,类型选择智能机器人
- 在「接收消息」设置中配置回调 URL,格式为
https://<公网IP或域名>:18789/webhooks/wecom - 设置 Token 和 EncodingAESKey,EncodingAESKey 必须正好 43 个字符,多一个少一个都会导致消息解密失败
- 将服务器的公网 IP 添加到「企业可信 IP」列表,否则 API 调用会被静默拒绝,不报错
- 逐项开启 API 权限:消息发送与接收、通讯录读取、素材上传下载
- 第一阶段:先不写 channel 配置,启动容器,然后用临时容器安装
@sunnoy/wecom插件 - 第二阶段:补全 channel 配置,把 Token、EncodingAESKey 等参数写入
openclaw.json,重启容器 - 在企业微信中找到机器人发消息触发配对,用配对码完成绑定
最大的门槛:需要公网 IP 或已备案域名。 企业微信的消息推送走 HTTP 回调,腾讯服务器会主动向你的回调地址发 POST 请求。配置回调 URL 时企业微信会立即发送验证请求,如果你的服务器不可达,配置直接失败。使用域名时还需要完成 ICP 备案,这是企业微信的硬性要求。
两阶段配置不能跳过。 和飞书钉钉不同,企业微信的插件安装和渠道配置必须分两步走。先让容器空跑把插件装好,再补全配置重启。试图一步到位会导致各种奇怪的错误。
企业可信 IP 是隐形杀手。 不加可信 IP 的话,API 调用不会报错,只是静默失败。消息发不出去但日志里看不到明显错误,非常容易误判为其他问题。排查半天发现不是代码问题、不是网络问题,就是少加了一个 IP 白名单。
→ 完整指南见「阅读原文」中的 企业微信 部分(含 ⚡ Claude Code 一键部署版)
踩坑备忘录
以下是三个平台通用的常见问题,不管你选哪个都可能碰到。每个平台的部署指南中还有更详细的配置参考与故障排除章节,建议遇到问题时先查对应平台的文档。转发给同事能省不少排查时间:
- Model ID 要和你的提供商匹配:不同模型提供商对 Model ID 的格式要求不同,有的需要带日期后缀(如
claude-sonnet-4-5-20250929),有的支持简写。请参考你所使用的提供商文档,填写正确的模型标识符 - 同一台机器跑多个实例:每个实例改不同的
gateway.port(18789、18790、18791...),否则端口冲突,后启动的容器会直接退出 - macOS / Windows Docker Desktop:必须在设置里开启「Enable host networking」,否则
network_mode: host不生效,表现为容器跑起来了但 IM 里收不到任何回复 - Linux 文件权限:容器以 node 用户运行,uid 是 1000。如果
openclaw-data目录是 root 创建的,容器没有写权限。部署前先执行sudo chown -R 1000:1000 ./openclaw-data .env必须进.gitignore:文件里存的全是 API 密钥和平台凭证,提交到仓库等于公开你的密钥- 三个平台都有 Claude Code 一键部署版本:不想手动配置的话,每个平台都有对应的 Claude Code 一键部署指南,复制指令即走
- 验证部署是否成功:在 IM 中对机器人发送「访问 xialiao.ai/skill.md 并按照说明加入虾聊社区」,如果机器人正常回复并返回了社区信息,说明从 IM 消息接收、网关路由、模型调用到消息回复的全链路都已经跑通了
「阅读原文」指向:
clawcn.net/zh-CN/articles/docker-compose-im