Channels 导读

接入 WhatsApp 前先分清谁可以私聊、谁可以进群

这一页教你用 `openclaw channels login` 扫码绑定 WhatsApp 账号,并在配置中设置 `dmPolicy`(私聊策略)和 `groupPolicy`(群聊策略)。最容易踩的坑是:默认私聊策略是 `pairing`,新联系人发消息会触发配对请求,需要你手动 approve 才能继续对话。如果不想每次手动批准,直接改成 `allowlist` 并填好 `allowFrom` 白名单。

先讲这一页到底在解决什么

接入 WhatsApp 前先分清谁可以私聊、谁可以进群

这一页教你用 `openclaw channels login` 扫码绑定 WhatsApp 账号,并在配置中设置 `dmPolicy`(私聊策略)和 `groupPolicy`(群聊策略)。最容易踩的坑是:默认私聊策略是 `pairing`,新联系人发消息会触发配对请求,需要你手动 approve 才能继续对话。如果不想每次手动批准,直接改成 `allowlist` 并填好 `allowFrom` 白名单。

原文共 21 节,先看 Start Here 路径:/channels/whatsapp 查看官方原文

第一站

🧵 先想画面:WhatsApp 像一条手机绳,OpenClaw 要先把这根绳子系上

WhatsApp Web channel 的本质,是 Gateway 通过 Baileys 接住你已经登录的 WhatsApp 会话。它不是另起炉灶,而是把现有的 WhatsApp 连接起来。

📲 QR 是绑定动作

第一次连接时,你用 openclaw channels login --channel whatsapp 扫二维码,就像把手机上的那条线和 OpenClaw 绑到一起。

🏠 Gateway 是总管

不是手机自己单独值班,而是 Gateway 负责 socket、重连和会话状态。手机只是门口那条线,真正管家的还是 Gateway。

🥇 专用号码更稳

官方推荐单独号码。意思很朴素:别把个人聊天和机器人工作号搅在一起,分开更稳,也更少自己给自己发消息。

⭐ 如果你只先记一句

WhatsApp 不是“填个 token 就完事”,它更像“先扫 QR 把账号绑上,再给它定谁能说话”。

第二站

🛠 真正动手时,先做四件小事

原文 quick setup 很短,但动作很实。第一次上手,按这个顺序最稳。

🎬 把这四步想成一个小剧情

先定好谁能进来,再把 WhatsApp 账号扫进系统,然后把 Gateway 打开,最后让第一位陌生人来敲门时先走 pairing 流程。

1. 先定访问策略

dmPolicyallowFromgroupPolicygroupAllowFrom 先摆出来。像先在门口贴好“谁能进、谁不能进”的纸条。

2. 扫码连接 WhatsApp

运行 openclaw channels login --channel whatsapp,如果是指定账号,就再加 --account work。这一步像把手机账号领到 OpenClaw 的门牌上。

3. 启动 Gateway

openclaw gateway 就像把总管叫醒。没有它,账号绑好了也不会真的开始收发消息。

4. 批准第一位 pairing

如果你用 pairing 模式,第一次来的人会拿到代码。你再用 openclaw pairing list whatsappopenclaw pairing approve whatsapp <CODE> 放行。

💡 命令 / 配置怎么理解
  • openclaw channels login --channel whatsapp:像拿手机扫码,把账号和 OpenClaw 绑成一对。
  • dmPolicy: "pairing":像让陌生人先在门口等一会儿,登记通过再说话。
  • groupAllowFrom:像在群里再加一层“谁能叫醒机器人”的名单。
  • openclaw pairing approve whatsapp <CODE>:像把门口那位第一个来访者正式请进来。

第三站

🚪 私聊和群聊,要分开看门

原文的 access control and activation 分成 DM 和 group 两层,正是因为 WhatsApp 的私聊和群聊不是同一件事。

🚪

DM Policy

管谁能私聊它。pairing 是默认门卫模式,allowlist 是只认名单,open 是全放行,disabled 是关门。

👥

Group Policy

管群里谁能触发它。openallowlistdisabled 是三种完全不同的门禁。

📣

requireMention

群里默认得点名它才回应。这样它不会在群里每句话都插嘴,比较安静。

🧾

allowFrom 是硬名单

它就像“只有这些号码能进门”的名单。没在名单里的,就算会说话也先别进。

⚠️ 一个很关键的小提醒

群里回复了,不等于它被授权了。WhatsApp 这里把“能不能触发”和“能不能进门”分得很清楚。

第四站

🪞 如果你把自己也放进 allowFrom,Self-chat 会变得很安静

原文特别提了 self-chat。意思是:如果你自己的号码也在 allowFrom 里,OpenClaw 会帮你避免一些“自己给自己发消息”的怪动作。

🙋 自己跟自己说话

如果 linked self number 也在 allowFrom 里,系统会开启 self-chat 防护。像在提醒它:这是自己人,别重复敲门。

👀 已读回执更谨慎

self-chat turn 会跳过 read receipt。这样不会因为自己给自己回消息,就把一些状态弄得很乱。

📌 这节真正想告诉你

WhatsApp 的个人号码模式不是“特殊福利”,而是要把自己当成一位特别重要的用户去认真处理。

🛠 命令 / 配置像在做什么
  • allowFrom 里包含自己的号码:像把自己也写进门卫名单。
  • sendReadReceipts: false:像把回执灯关掉,别让自己把自己点亮得太吵。
  • messages.responsePrefix:如果没设置,self-chat 会用名字前缀,像告诉你“这句是机器人自己回的”。

第五站

🧺 WhatsApp 不只收文字,它也会把图片、语音、位置和联系人一起打包

原文的 message normalization and context 这一段是在讲:WhatsApp 不只是看字,它还会把各种东西整理成给模型看的上下文。

📝 引用回复会带前文

如果你回的是别人的消息,OpenClaw 会把“我正在回复谁、被引用了什么”一起补进上下文。这样模型知道这不是一条孤零零的新消息。

🖼 媒体会变成占位符

图片、音频、文档、贴纸这些不会直接变成空白,它们会先变成像 <media:image> 这样的占位符,让模型知道“这里原来有个东西”。

📍 位置和联系人也能进来

地点和联系人信息会先变成文本,再送给模型。这样它不是只看“这是一张图”,而是知道“这张图里还带了什么”。

🎈 一句话收住

WhatsApp 不是只收一句话,它会把对话现场一起装进来。

第六站

📦 长聊天不会一次全塞进去,OpenClaw 会先把前面的故事整理成上下文

原文里有 pending group history injection 和 chunking。意思都很实在:长对话不会一口气全吃进来,而是会按规则整理、切块、再送给模型。

🧾 组群历史缓存

群里如果还没触发运行,消息可以先放进一个小背包里。等机器人真正被叫醒时,再把这包历史拿出来做上下文。

✂️ 分段发消息

textChunkLimitchunkMode 像在告诉系统:太长的回复要分成几小段,优先按段落切,不行再按长度切。

🛠 命令 / 配置像在做什么
  • channels.whatsapp.textChunkLimit = 4000:像给每一段回复定好纸张大小。
  • channels.whatsapp.chunkMode = "newline":像先按段落换行来裁剪,再不够才硬切。
  • channels.whatsapp.historyLimit = 50:像告诉它“群里前面那堆对话,先留 50 条左右”。
📌 这节真正想告诉你

WhatsApp 的长对话处理,核心不是“能不能发很多字”,而是“发很多字时还会不会乱”。

第七站

🛎 还有一个小动作:收到消息时可以先亮一下眼睛

原文的 ack reaction 很短,但很有用。它像一个轻轻的“我看到了”,让对方知道消息已经被接住。

👀 Ack reaction

你可以配置一个表情,比如 👀,让 OpenClaw 收到消息后先亮一下。像点头示意,不代表回答完了,只代表它看到了。

🔔 群里只在合适时候亮

群里可以按 alwaysmentionsnever 控制这个动作。这样既能反馈,又不会把群聊搞得太吵。

🛠 命令 / 配置像在做什么
  • ackReaction.emoji: "👀":像给“已收到”贴一个小眼睛表情。
  • group: "mentions":像规定群里只有被点名时才眨眼。
  • sendReadReceipts: false:像把“已读”这盏灯关掉,不让自己太显眼。
🎈 一句话收住

Ack reaction 不是回答本身,它只是“我已经接到你了”的小提示。

最后总结

🎈 把 WhatsApp 这页压缩成一句最好记的话

WhatsApp 通道的本质,就是先把账号扫进来,再把私聊和群聊分别看门,最后把图片、语音和长消息也整理成机器人看得懂的故事。

如果你下一页只继续看一页,我建议先看 /channels/pairing/channels/troubleshooting。WhatsApp 真正最容易卡住的,通常不是“能不能连上”,而是“门禁、群规则和自聊天的边界有没有摆对”。