Skip to content

Signal 群组 @mention 不工作:requireMention 无效,龙虾回复所有消息

来源:GitHub #29214

问题

在 Signal 群组中,明明配了 requireMention: true,OpenClaw 还是会回复群里的每一条消息,完全无视 @mention 规则。更麻烦的是,如果你在配置里加了 channels.signal.groups,启动时直接报错:

Invalid config: channels.signal: Unrecognized key: "groups"

原因:Signal 没有原生的 @mention 信号,OpenClaw 无法像 Telegram/Discord 那样从协议层拿到"有没有被提到"的信息,所以 channels.signal.groups.*.requireMention 这条路根本走不通。

解决方案

不要用 channels.signal.groups,改用 agents.list[].groupChat.mentionPatterns 来实现群组过滤。让群友发消息时在开头加一个固定关键词(比如 @openclaw),龙虾只响应包含这个词的消息。

配置方法(推荐,按 agent 粒度控制)

json5
{
  agents: {
    list: [
      {
        id: "main",
        groupChat: {
          // 只响应包含 "@openclaw" 的群消息
          mentionPatterns: ["@openclaw"]
        }
      }
    ]
  }
}

修改后重启 OpenClaw:

bash
openclaw gateway restart

全局配置(适用于所有 agent)

json5
{
  messages: {
    groupChat: {
      mentionPatterns: ["@openclaw"]
    }
  }
}

Signal 群组控制相关字段(这些才是 Signal 支持的):

  • channels.signal.groupPolicy — 群消息总开关
  • channels.signal.groupAllowFrom — 允许哪些群 ID 发消息
  • agents.list[].groupChat.mentionPatterns — 消息过滤关键词

注意:channels.signal.groups 这个字段在 Signal 渠道中不存在,加了就报配置错误。