首页 资讯 下载 教程 Skills 社群

OpenClaw 群聊配置与管理策略

群聊场景概述

OpenClaw 支持在群聊中运行 AI 助手,但群聊环境与私聊有本质差异:消息量大、多人参与、上下文复杂。合理的配置能让 AI 在群聊中既有用又不扰民。

提及要求(requireMention)

控制 AI 是否需要被 @提及才会响应:

{
  channels: {
    whatsapp: {
      groups: {
        // 要求用户 @提及机器人才响应(推荐)
        requireMention: true
      }
    }
  }
}

启用 requireMention 后,AI 只会处理明确指向它的消息,大幅减少误触发和资源浪费。

自定义触发模式(mentionPatterns)

除了 @提及,还可以设置文本关键词触发:

{
  channels: {
    whatsapp: {
      groups: {
        requireMention: true,
        // 自定义触发词
        mentionPatterns: [
          "小助手",
          "AI帮忙",
          "/ask"
        ]
      }
    }
  }
}

当群消息中包含这些关键词时,AI 也会响应。支持正则表达式:

{
  mentionPatterns: [
    "^/ask\\s",       // 以 /ask 开头的命令
    "小助手[,,]"      // "小助手," 或 "小助手,"
  ]
}

群组策略(groupPolicy)

全局控制哪些群组可以使用 AI:

{
  channels: {
    whatsapp: {
      groups: {
        // open: 所有群组均可使用
        // allowlist: 仅白名单群组可使用
        // disabled: 禁用群聊功能
        groupPolicy: "allowlist",

        // 白名单群组 ID 列表
        allowlist: [
          "120363001234567890@g.us",
          "120363009876543210@g.us"
        ]
      }
    }
  }
}

获取群组 ID

# 列出所有已加入的群组及其 ID
openclaw channels whatsapp groups list

单群组配置

针对不同群组设置不同的行为:

{
  channels: {
    whatsapp: {
      groups: {
        groupPolicy: "allowlist",
        allowlist: ["120363001234567890@g.us"],

        // 每个群组的独立配置
        perGroup: {
          "120363001234567890@g.us": {
            // 使用特定 Agent
            agent: "customer-service",
            // 该群无需 @提及
            requireMention: false,
            // 自定义触发词
            mentionPatterns: ["客服"]
          },
          "120363009876543210@g.us": {
            agent: "tech-support",
            requireMention: true
          }
        }
      }
    }
  }
}

群聊历史限制

控制 AI 读取的群聊历史消息数量,避免上下文过长导致性能问题和成本增加:

{
  channels: {
    whatsapp: {
      groups: {
        // 最多读取最近 20 条群消息作为上下文
        historyLimit: 20,

        // 历史消息的时间窗口(分钟)
        historyWindow: 30
      }
    }
  }
}

群组专属 Agent 路由

根据群组类型分配不同的 AI Agent:

{
  agents: {
    "customer-service": {
      model: { primary: "anthropic/claude-sonnet-4-20250514" },
      systemPrompt: "你是一个客服助手,帮助解答产品相关问题。"
    },
    "tech-support": {
      model: { primary: "anthropic/claude-opus-4-20250514" },
      systemPrompt: "你是一个技术支持专家,帮助排查技术问题。",
      tools: { allow: ["search", "fs_read"] }
    }
  }
}

防止机器人循环

当群中有多个机器人时,可能出现机器人互相触发的死循环。OpenClaw 提供了多重防护:

{
  channels: {
    whatsapp: {
      groups: {
        // 忽略其他机器人的消息
        ignoreBots: true,

        // 设置响应冷却时间(秒)
        cooldown: 5,

        // 单次对话最大轮次
        maxTurns: 10
      }
    }
  }
}

跨频道群组 ID

不同频道的群组 ID 格式不同:

频道 群组 ID 格式
WhatsApp 120363001234567890@g.us
Discord channel_1234567890
Slack C1234567890
WeChat wxid_group_xxxxx

获取方式统一为:

openclaw channels <channel-name> groups list

实用配置示例

一个适合大多数场景的群聊配置:

{
  channels: {
    whatsapp: {
      groups: {
        groupPolicy: "allowlist",
        requireMention: true,
        mentionPatterns: ["小助手"],
        historyLimit: 15,
        historyWindow: 30,
        ignoreBots: true,
        cooldown: 3,
        maxTurns: 8
      }
    }
  }
}

常见问题排查

  • AI 不回复群消息:检查 groupPolicy 是否为 disabled,群组 ID 是否在白名单中
  • AI 回复太频繁:启用 requireMention 或增加 cooldown
  • 上下文混乱:减小 historyLimithistoryWindow
  • 机器人互相回复:确认 ignoreBots 已启用