OpenClaw WhatsApp 渠道
通过 Baileys 协议将 OpenClaw 连接到 WhatsApp。此集成方式无需商业 API,只需用手机扫描二维码即可让 AI 助手在 WhatsApp 上收发消息。推荐使用独立手机号以获得更清晰的路由。
WhatsApp 支持的功能
文本消息
支持
媒体与文件
支持
消息反应
支持
消息线程
不支持
语音消息
支持
群聊
支持
WhatsApp 前置条件
- WhatsApp 专用手机号(推荐与个人号分开)
- 服务器已安装 Node.js 18+(不推荐使用 Bun)
- OpenClaw Gateway 已运行并配置
WhatsApp 快速设置
添加 WhatsApp 渠道配置
在 ~/.openclaw/openclaw.json 中添加 WhatsApp 渠道配置。设置 dmPolicy(allowlist、pairing 或 open)和 allowFrom 列表来控制谁可以向你的助手发消息。
运行登录命令并扫描二维码
在终端运行 'openclaw channels login',将显示一个二维码。用手机 WhatsApp 扫描(设置 > 关联设备 > 关联新设备)。凭证将保存到 ~/.openclaw/credentials/whatsapp/。
发送测试消息
从另一部手机向你的 WhatsApp 号码发送私信。如果使用 allowlist 策略,确保发送者号码在 allowFrom 列表中。如果使用默认的 pairing 策略,需通过 'openclaw pairing approve whatsapp <code>' 审批发送者。
WhatsApp 配置示例
{
"channels": {
"whatsapp": {
"dmPolicy": "allowlist",
"allowFrom": ["+15551234567"]
}
}
}WhatsApp 深入了解
架构概述
手机号设置
{
"channels": {
"whatsapp": {
"accounts": {
"default": {
"phone": "+15551234567"
}
}
}
}
}登录与凭证
openclaw channels login whatsapp私信策略
{
"channels": {
"whatsapp": {
"dmPolicy": "pairing",
"allowFrom": ["+15551234567", "+15559876543"]
}
}
}群组管理
{
"channels": {
"whatsapp": {
"groupPolicy": "allowlist",
"groupActivation": "mention",
"groupAllowList": ["group-jid-1", "group-jid-2"]
}
}
}已读回执
{
"channels": {
"whatsapp": {
"sendReadReceipts": true
}
}
}确认表情回复
{
"channels": {
"whatsapp": {
"ackReaction": {
"emoji": "👀",
"direct": true,
"group": true
}
}
}
}出站消息与媒体
速率限制与发送限制
{
"channels": {
"whatsapp": {
"textChunkLimit": 5,
"mediaMaxMb": 50
}
}
}为什么不用 Twilio / WhatsApp Business API?
WhatsApp 配置参考
| Key | Type | Default | Description |
|---|---|---|---|
| dmPolicy | string | "pairing" | 控制谁可以私信机器人。选项:pairing、allowlist、open、disabled |
| selfChatMode | string | "disabled" | 如何处理你发给自己的消息。选项:disabled、ai、note |
| allowFrom | string[] | [] | 允许给机器人发消息的手机号列表(dmPolicy 为 allowlist 时使用) |
| sendReadReceipts | boolean | true | 处理消息时是否发送蓝色双勾已读回执 |
| ackReaction.emoji | string | "👀" | 用于确认收到消息的表情符号 |
| ackReaction.direct | boolean | true | 在私信中发送确认表情 |
| ackReaction.group | boolean | true | 在群聊中发送确认表情 |
| textChunkLimit | number | 5 | 每次 AI 回复的最大文本分块数 |
| mediaMaxMb | number | 50 | 最大入站媒体文件大小(MB)。出站限制由 agents.defaults.mediaMaxMb 控制(默认 5 MB) |
| groupPolicy | string | "disabled" | 群聊策略。选项:disabled、allowlist、open |
| groupActivation | string | "mention" | 群聊中如何触发机器人。选项:mention、always |
| historyLimit | number | 50 | 作为 AI 上下文包含的最近消息数量 |
| chunkMode | string | "split" | 如何处理长回复。选项:split、newline、truncate |
| messagePrefix | string | "" | 添加到所有外发消息前的可选前缀 |
| accounts.<id>.* | object | {} | 每个账号的设置(手机号、凭证路径、覆盖配置) |
控制谁可以私信机器人。选项:pairing、allowlist、open、disabled
如何处理你发给自己的消息。选项:disabled、ai、note
允许给机器人发消息的手机号列表(dmPolicy 为 allowlist 时使用)
处理消息时是否发送蓝色双勾已读回执
用于确认收到消息的表情符号
在私信中发送确认表情
在群聊中发送确认表情
每次 AI 回复的最大文本分块数
最大入站媒体文件大小(MB)。出站限制由 agents.defaults.mediaMaxMb 控制(默认 5 MB)
群聊策略。选项:disabled、allowlist、open
群聊中如何触发机器人。选项:mention、always
作为 AI 上下文包含的最近消息数量
如何处理长回复。选项:split、newline、truncate
添加到所有外发消息前的可选前缀
每个账号的设置(手机号、凭证路径、覆盖配置)
WhatsApp 常见问题
WhatsApp 故障排查
会话凭证可能已过期,或者手机上的 WhatsApp 应用更新后使关联会话失效。
通常发生在手机长时间离线,或另一个关联设备与 Gateway 会话冲突时。
速率限制、网络问题,或收件人已拉黑你的号码。