群组消息
WhatsApp 群组消息处理的行为和配置(mentionPatterns 跨界面共享)
WhatsApp 群组消息处理的行为和配置。mentionPatterns 在所有界面(CLI、TUI、Web UI)之间共享。
本页面主要关注 WhatsApp 特定的群组消息处理行为,包括激活模式、历史上下文注入和 mention gating。
激活模式(mention vs always)
WhatsApp 群组支持两种激活模式:
- ''mention''(默认):只有在群里被 @mention 或匹配 mentionPatterns 时才触发回复。
- ''always'':对所有群消息都触发回复(不推荐用于公共群)。
配置方式:
- 全局:''channels.whatsapp.groupPolicy = mention|always''
- Per-group: ''channels.whatsapp.groups.<jid>.requireMention = false'' (set to false for always mode)
Mention Patterns 配置
mentionPatterns 是正则表达式数组,用于匹配群消息中的文本,即使没有 @mention 也能触发回复。
{ "messages": { "groupChat": { "mentionPatterns": [ "^(?i)\\b(bot|assistant|help|ai)\\b", "^@openclaw", "^(?i)\\b(hey|hello|hi)\\s+openclaw" ] } } }也可以按 agent 覆盖:
''agents.list[].groupChat.mentionPatterns''
待处理历史缓冲区
当群里消息没有触发回复(没有 mention / 被 allowlist 阻止)时,OpenClaw 会把这些消息暂存为 pending。
在下一次触发时,这些 pending 消息会被注入到 prompt 中作为上下文,帮助模型理解对话历史。
这确保了即使机器人不回复每条消息,它仍然能够了解群里的最新讨论。
历史上下文注入
当群消息触发回复时,OpenClaw 会注入最近的历史消息到 prompt 中。
历史消息分为两部分:
- Pending 消息:上次回复之后但未被处理的消息(最多 historyLimit 条)。
- Transcript 消息:已写入会话记录的历史消息。
配置选项
WhatsApp 群组消息处理的主要配置选项:
- ''channels.whatsapp.groupPolicy'':全局激活模式(mention/always)。
- ''channels.whatsapp.groups.<jid>.requireMention'': Override activation mode per group.
- ''channels.whatsapp.historyLimit'':pending 历史消息的最大数量(默认 50)。
运行时激活控制
部分通道支持 ''/activation'' 命令(只影响当前会话):
- ''/activation mention'':需要 mention(默认)。
- ''/activation always'':对所有消息回复。
注意:该命令通常只对授权发送者有效(owner/allowlist)。要持久化行为,请写配置,而不是依赖会话命令。