WhatsApp 接入
OpenClaw 通过 Baileys 库支持 WhatsApp Web 接入。Gateway 拥有 WhatsApp 会话,通过扫码关联设备登录。
快速开始
- 准备一个手机号码(推荐使用单独号码)。
- 在配置文件中添加 WhatsApp 渠道。
- 运行
openclaw channels login扫码关联。 - 启动 Gateway。
{
channels: {
whatsapp: {
dmPolicy: "allowlist",
allowFrom: ["+8613800000000"]
}
}
}手机号码选择
专用号码(推荐)
为 OpenClaw 使用单独的手机号码,路由清晰,体验最佳。理想搭配:备用 Android + eSIM,保持 Wi-Fi 和电源连接。 也可以在同一设备上安装 WhatsApp Business 使用不同号码。
个人号码(备选)
在自己的号码上运行 OpenClaw,启用 selfChatMode 通过"给自己发消息"测试。
{
channels: {
whatsapp: {
selfChatMode: true,
dmPolicy: "allowlist",
allowFrom: ["+8613800000000"]
}
}
}号码来源建议:本地运营商 eSIM 或预付费 SIM 卡。避免使用 TextNow、Google Voice 等虚拟号码,WhatsApp 会封锁这些。
登录与凭证
# 扫码登录(关联设备)
openclaw channels login
# 多账户登录
openclaw channels login --account work
# 登出
openclaw channels logout- 凭证保存在
~/.openclaw/credentials/whatsapp/<accountId>/creds.json - 自动备份到
creds.json.bak - 登出只删除 WhatsApp 认证状态,不影响其他 OAuth 凭证
私聊策略
| 策略 | 行为 |
|---|---|
| pairing | 默认。未知用户收到配对码,审批后可对话 |
| allowlist | 仅 allowFrom 中的 E.164 号码可对话 |
| open | 任何人(需 allowFrom: ["*"]) |
| disabled | 禁止私聊 |
你关联的 WhatsApp 号码是隐式信任的,跳过 dmPolicy 和 allowFrom 检查。
群组
groupPolicy:open|allowlist(默认) |disabled- 激活模式:
mention(默认,需 @提及)或always(始终响应) - 群组历史上下文自动注入最近未处理的消息(默认 50 条)
- 群组元数据缓存 5 分钟
在群组中发送 /activation always 或 /activation mention 切换(仅会话级别)。
已读回执
默认情况下,Gateway 接受消息后自动标记为已读(蓝色勾号)。可按全局或账户级别禁用:
{
channels: {
whatsapp: {
sendReadReceipts: false,
accounts: {
personal: { sendReadReceipts: false }
}
}
}
}自聊天模式始终跳过已读回执。
确认表情
收到消息时自动发送表情回应,在机器人生成回复之前给用户即时反馈:
{
channels: {
whatsapp: {
ackReaction: {
emoji: "👀",
direct: true,
group: "mentions" // always | mentions | never
}
}
}
}媒体支持
- 支持图片、视频、音频、文档的收发
- 音频以 PTT 语音消息发送(OGG/Opus 格式最佳)
- 图片超出大小限制时自动优化为 JPEG
- 动画 GIF:需以 MP4 格式发送并设置
gifPlayback: true - 入站媒体上限
mediaMaxMb(默认 50 MB),出站上限 5 MB
多账户
一个 Gateway 可同时运行多个 WhatsApp 账户:
{
channels: {
whatsapp: {
accounts: {
personal: {
dmPolicy: "allowlist",
allowFrom: ["+8613800000000"]
},
work: {
dmPolicy: "pairing",
sendReadReceipts: false
}
}
}
}
}常见问题
未关联 / 需要二维码登录
channels status 显示 linked: false。运行 openclaw channels login 重新扫码。
已关联但断开连接
运行 openclaw doctor 或重启 Gateway。如果持续,重新关联并检查 openclaw logs --follow。
Bun 运行时不可靠
WhatsApp (Baileys) 在 Bun 上不可靠,请使用 Node 运行 Gateway。
注意事项
- 发送出站消息需要 Gateway 运行中且监听器处于活跃状态
- 出站文本按
textChunkLimit分块(默认 4000 字符) - OpenClaw 不使用 Twilio/WhatsApp Business API(24 小时窗口限制不适合个人助手)
- 重连退避策略可通过
web.reconnect配置