Skip to content

群聊消息处理

OpenClaw 支持在各平台的群组 / 频道中工作。本页说明群聊场景下的触发策略和隔离机制。

触发策略

OpenClaw 提供两种群聊触发策略:

requireMention(默认)

只有当消息中 @Agent 名称时,Bot 才会响应。这是默认策略,适用于大多数场景。

yaml
channels:
  telegram:
    groupActivation: mention   # 默认值,可省略

为什么默认使用 mention 模式

群聊中消息量通常很大。如果 Bot 响应每一条消息,不仅会消耗大量 token,还会干扰正常群聊体验。mention 模式让 Bot 只在被明确召唤时才参与对话。

always 模式

Bot 响应群内的每一条消息。适用于 Bot 作为群内唯一"成员"的场景,或小型工作群需要 AI 实时参与讨论。

yaml
channels:
  telegram:
    groupActivation: always

注意 token 消耗

always 模式下,群内每条消息都会触发 AI 调用。在活跃群组中,这可能导致:

  • 大量 token 消耗和 API 费用
  • 消息响应延迟(排队处理)
  • 对群聊体验的干扰

建议仅在小型、低流量群组中使用此模式。

切换触发策略

使用命令行切换:

bash
# 切换到 mention 模式(只响应 @Agent)
/activation mention

# 切换到 always 模式(响应所有消息)
/activation always

也可以在 openclaw.yaml 中为不同频道单独配置:

yaml
channels:
  telegram:
    groupActivation: mention
  discord:
    groupActivation: always    # Discord 某个特定用途的服务器可以用 always
  slack:
    groupActivation: mention

群组沙箱

隔离机制

每个群组使用独立的隔离 session。这意味着:

  • 不同群组之间的对话上下文互不影响
  • 每个群组有独立的对话历史
  • MEMORY.md 不会加载到群组会话中(仅在私聊中生效)

群组沙箱确保:

特性私聊群聊
对话上下文与用户绑定与群组绑定
MEMORY.md加载不加载
Session 隔离按用户隔离按群组隔离
历史记录持久化持久化(独立存储)

各平台群聊差异

不同平台在群聊中的行为略有不同:

平台@Bot 方式说明
Telegram@botusername需关闭隐私模式才能接收非 @ 消息
Discord@BotName需要 Bot 有对应频道的读取权限
Slack@BotName需要先将 Bot 邀请到频道
飞书@机器人名需配置群聊 @ 消息权限
WhatsApp直接提及名称WhatsApp 群组无正式 @ 机制

最佳实践

  1. 默认使用 mention 模式 — 除非有明确需求,否则保持默认的 mention 触发策略
  2. 为群组设置专用 systemPrompt — 群聊场景下的回复风格通常应更简洁
  3. 控制群组规模 — always 模式适合 5 人以下的小型工作群
  4. 监控 token 用量 — 使用 openclaw usage 查看各频道的 token 消耗情况
yaml
channels:
  slack:
    groupActivation: mention
    groupSystemPrompt: "你在一个工作群中。回复要简洁,避免长篇大论。只在被 @ 时回复。"

基于 MIT 协议发布