OpenClaw 通过 WhatsApp Web(Baileys 库)连接 WhatsApp,Gateway 全权管理 WhatsApp 会话。这是目前最稳定的个人号接入方案。
提示:官方推荐使用独立号码(非个人号)运行 OpenClaw,隔离更清晰,但个人号也完全支持。
快速配置(4 步)
第 1 步:配置访问策略
编辑 ~/.openclaw/openclaw.json:
{
"channels": {
"whatsapp": {
"dmPolicy": "pairing",
"allowFrom": ["+8613800138000"],
"groupPolicy": "allowlist",
"groupAllowFrom": ["+8613800138000"]
}
}
}第 2 步:扫码连接 WhatsApp
openclaw channels login --channel whatsapp
# 多账号
openclaw channels login --channel whatsapp --account work第 3 步:启动 Gateway
openclaw gateway第 4 步:审批首次配对(如用 pairing 模式)
openclaw pairing list whatsapp
openclaw pairing approve whatsapp <CODE>配对请求 1 小时内有效,最多同时 3 个待审批请求。
DM 访问策略详解
channels.whatsapp.dmPolicy 控制私聊访问:
| 策略 | 行为 |
|---|---|
pairing(默认) | 未知发件人会收到一次性配对码,用户审批后加入白名单 |
allowlist | 只允许 allowFrom 列表中的号码 |
open | 允许所有人(需在 allowFrom 中加 "*") |
disabled | 禁用私聊 |
allowFrom 格式:E.164 格式(如 +8613800138000),OpenClaw 自动标准化。
群组管理
群组访问由两层控制:
层 1:允许哪些群组
{
"channels": {
"whatsapp": {
"groups": {
"*": { "requireMention": true }
}
}
}
}省略 groups 字段 → 所有群组都可访问。添加 groups → 作为白名单(支持 "*" 通配)。
层 2:允许群组中的哪些成员
{
"channels": {
"whatsapp": {
"groupPolicy": "allowlist",
"groupAllowFrom": ["+8613800138000"]
}
}
}groupAllowFrom 未设置时,回退到 allowFrom。
指定群组覆盖全局策略:
{
"channels": {
"whatsapp": {
"groupPolicy": "allowlist",
"groups": {
"-120363000000000001@g.us": {
"groupPolicy": "open",
"requireMention": false
}
}
}
}
}获取群组 Chat ID
openclaw logs --follow在日志中找 chat.id 字段(格式如 -120363...@g.us)。
@提及行为
群组中默认需要 @提及才响应。配置自定义提及模式:
{
"agents": {
"list": [{
"id": "main",
"groupChat": {
"mentionPatterns": ["@助手", "小助手", "@openclaw"]
}
}]
}
}消息历史注入
Bot 被 @提及时,会注入一段此前未处理的群组消息作为上下文:
{
"channels": {
"whatsapp": {
"historyLimit": 50
}
}
}设为 0 禁用历史注入。注入消息带有标记:
[Chat messages since your last reply - for context][Current message - respond to this]
个人号自发消息(Self-Chat)
个人号配置时,OpenClaw 会自动启用自聊保护:
- 跳过自聊轮次的已读回执
- 自聊回复默认前缀
[{identity.name}]或[openclaw]
多账号配置
{
"channels": {
"whatsapp": {
"accounts": {
"personal": {},
"biz": {
"dmPolicy": "allowlist",
"allowFrom": ["+8613900000001"]
}
}
}
}
}账号级策略覆盖频道级默认值。
读取回执
{
"channels": {
"whatsapp": {
"sendReadReceipts": false
}
}
}默认开启(已接受的入站消息自动已读)。
常见问题
问:WhatsApp 断连怎么办?
openclaw channels login --channel whatsapp # 重新扫码
openclaw gateway restart问:收不到群消息?
- 检查
groupPolicy是否正确 - 确认发件人在
groupAllowFrom或allowFrom中 - 查看日志:
openclaw logs --follow | grep whatsapp
问:想让所有群成员都能使用?
{
"channels": {
"whatsapp": {
"groupPolicy": "open"
}
}
}原文:WhatsApp - OpenClaw | 来源:OpenClaw 官方文档