前言
WhatsApp 是全球使用最广泛的即时通讯应用之一。OpenClaw 通过 Baileys 库实现了与 WhatsApp 的深度集成,让你可以在 WhatsApp 上与 AI 助手对话。本教程将详细介绍对接流程。
前置要求
- 已安装并运行 OpenClaw
- 一个可用的 WhatsApp 账号(建议使用独立号码)
- 稳定的网络环境
连接 WhatsApp
QR 码配对
使用 OpenClaw 内置的频道登录命令:
openclaw channels login whatsapp
执行后终端会显示一个 QR 码,使用 WhatsApp 手机端扫描即可完成配对:
- 打开 WhatsApp → 设置 → 已关联的设备
- 点击"关联设备"
- 扫描终端中显示的 QR 码
配对成功后,OpenClaw 会自动保存会话信息,后续重启无需重新扫码。
号码模式选择
独立号码模式(推荐)
使用一个专用的手机号码注册 WhatsApp,该号码仅供 OpenClaw 使用:
- 所有收到的消息都由 AI 处理
- 不会干扰个人聊天
- 适合团队或对外服务场景
个人号码模式
使用你自己的 WhatsApp 号码,需要配合 dmPolicy 精细控制哪些消息由 AI 回复:
whatsapp:
dmPolicy: "paired" # 仅回复已配对的联系人
核心配置项
私聊策略(dmPolicy)
控制 AI 如何处理私聊消息:
whatsapp:
dmPolicy: "open" # 回复所有私聊消息
# dmPolicy: "paired" # 仅回复已配对用户
# dmPolicy: "off" # 关闭私聊回复
群组策略(groupPolicy)
控制 AI 在群组中的行为:
whatsapp:
groupPolicy: "off" # 不响应群组消息
# groupPolicy: "onmention" # 被 @ 时才回复
# groupPolicy: "all" # 响应所有群组消息
自聊模式(selfChatMode)
当你向自己发送消息时 AI 是否响应,适合用作个人笔记或快速问答:
whatsapp:
selfChatMode: true # 开启自聊模式
消息处理特性
文本分块
WhatsApp 单条消息最大长度为 4000 字符。当 AI 的回复超过此限制时,OpenClaw 会自动将内容拆分为多条消息发送,确保完整性。
媒体文件限制
| 方向 | 大小限制 |
|---|---|
| 接收(用户发送给 AI) | 最大 50MB |
| 发送(AI 回复给用户) | 最大 5MB |
已读回执与回应
whatsapp:
sendReadReceipts: true # 自动发送已读回执
ackReaction: "👍" # 收到消息时发送表情回应
ackReaction 可以设置一个 emoji,当 AI 收到消息开始处理时,会先发送这个表情反应,让用户知道消息已被接收。
配对审批流程
当 dmPolicy 设为 paired 时,新用户首次发送消息需要经过审批:
- 新用户向 OpenClaw 的 WhatsApp 发送消息
- OpenClaw 通知管理员有新的配对请求
- 管理员审批或拒绝
- 审批通过后,该用户的后续消息将由 AI 处理
# 查看待审批的配对请求
openclaw channels pairs list whatsapp
# 批准配对
openclaw channels pairs approve whatsapp <用户ID>
多账号支持
OpenClaw 支持同时连接多个 WhatsApp 账号,每个账号独立配置:
channels:
- type: whatsapp
name: "客服助手"
dmPolicy: "open"
- type: whatsapp
name: "内部助理"
dmPolicy: "paired"
为每个账号分别执行 openclaw channels login 完成配对。
常见问题
频繁断开连接
WhatsApp 的多设备连接偶尔会断开,检查以下几点:
- 确保手机端 WhatsApp 保持登录状态
- 网络连接是否稳定
- 查看日志中是否有认证过期提示
消息发送失败
如果 AI 回复失败,可能是媒体文件超出 5MB 限制,或者消息格式不被 WhatsApp 支持。检查 OpenClaw 日志获取详细错误信息。
群组中 AI 不响应
确认 groupPolicy 配置正确,并且 AI 号码已被邀请加入群组。如果设置为 onmention,需要在消息中 @ 机器人才会触发回复。
总结
通过 Baileys 集成,OpenClaw 可以无缝对接 WhatsApp,支持私聊、群组、多账号等丰富的使用场景。建议使用独立号码并配合配对审批流程,既保证了服务的可用性,又控制了访问权限。