跳转至

访问控制

谁可以与 Feishu 机器人对话、表达这些规则的群组配置示例,以及如何查找所需的 ID。

访问控制

直接消息

配置 channels.feishu.dmPolicy(默认值:pairing)以控制谁可以向机器人发送私信:

值 行为
"pairing" 未知用户会收到配对码;通过 CLI 批准
"allowlist" 仅 allowFrom 中列出的用户可以聊天
"open" 公开私信;配置校验要求 allowFrom 包含 "*"。非通配符条目仍会缩小访问范围

批准配对请求:

openclaw pairing list feishu
openclaw pairing approve feishu <CODE>

群聊

群组策略(channels.feishu.groupPolicy,默认值:allowlist):

值 行为
"open" 响应群组中的所有消息
"allowlist" 仅响应 groupAllowFrom 中的群组,或在 groups.<chat_id> 下显式配置的群组
"disabled" 禁用所有群消息;显式的 groups.<chat_id> 条目不会覆盖此设置

提及要求(channels.feishu.requireMention):

  • 默认:需要 @提及,除非生效的群组策略为 "open";在该策略下默认值为 false,因此无法携带提及的消息(例如图片)仍能到达 agent。
  • 显式设置为 true 或 false 以覆盖;按群组覆盖:channels.feishu.groups.<chat_id>.requireMention。
  • 仅广播的 @all 和 @_all 不被视为对机器人的提及。同时提及 @all 并直接提及机器人的消息仍算作对机器人的提及。

对其他人的提及在发送给 agent 的文本中保持可读, 包括连续消息合并时。

机器人发起的线程中的提及

设置 requireMentionInBotThreads: false 以接受在根消息由本机器人发送的线程或话题中无需 @提及 的消息。将其设置为 true 可在这些线程中要求 @提及,即使 requireMention 为 false。 省略该设置会保留现有提及行为。

{
  channels: {
    feishu: {
      requireMention: true,
      requireMentionInBotThreads: false,
    },
  },
}

在 channels.feishu、accounts.<id> 下或 groups.<chat_id> 下配置该设置。所选群组条目的优先级高于账户设置,账户设置的优先级高于顶层设置。当不存在精确群组条目时,groups["*"] 提供群组条目,与 requireMention 匹配。

这仅适用于当前机器人拥有的实际线程和话题。普通引用回复、由他人发起的线程,以及无法读取或验证的根消息仍遵循常规提及策略。群组访问、发送者允许列表和机器人消息限制仍然适用。接收未提及的群消息还需要应用的 im:message.group_msg 权限范围和群消息事件投递;此设置不会改变 Feishu 发送哪些事件。

群组配置示例

允许所有群组,无需 @提及

{
  channels: {
    feishu: {
      groupPolicy: "open", // requireMention defaults to false under "open"
    },
  },
}

允许所有群组,仍要求 @提及

{
  channels: {
    feishu: {
      groupPolicy: "open",
      requireMention: true,
    },
  },
}

仅允许特定群组

{
  channels: {
    feishu: {
      groupPolicy: "allowlist",
      // Group IDs look like: oc_xxx
      groupAllowFrom: ["oc_xxx", "oc_yyy"],
    },
  },
}

在 allowlist 模式下,也可以通过添加显式的 groups.<chat_id> 条目来允许某个群组。显式条目不会覆盖 groupPolicy: "disabled"。groups.* 下的通配符默认值会配置匹配的群组,但它们本身不会允许群组。

{
  channels: {
    feishu: {
      groupPolicy: "allowlist",
      groups: {
        oc_xxx: {
          requireMention: false,
        },
      },
    },
  },
}

限制群组内的发送者

{
  channels: {
    feishu: {
      groupPolicy: "allowlist",
      groupAllowFrom: ["oc_xxx"],
      groups: {
        oc_xxx: {
          // User open_ids look like: ou_xxx
          allowFrom: ["ou_user1", "ou_user2"],
        },
      },
    },
  },
}

channels.feishu.groupSenderAllowFrom 为所有群组设置相同的发送者允许列表;按群组的 allowFrom 优先级更高。

机器人创建的消息

Feishu 默认忽略由其他机器人创建的消息。要允许机器人之间的群聊,请授予应用 im:message.group_at_msg.include_bot:readonly 和 im:message:readonly 权限范围,然后设置 allowBots:

{
  channels: {
    feishu: {
      allowBots: true,
    },
  },
}

Feishu 仅在另一个机器人提及本机器人时投递机器人创建的群事件。现有群组策略、发送者允许列表和提及要求仍然适用。OpenClaw 会丢弃自己创建的消息,在每条文本或卡片回复中提及对方机器人,并应用共享的 channels.defaults.botLoopProtection 保护机制。

获取群组/用户 ID

群组 ID(chat_id,格式:oc_xxx)

在 Feishu/Lark 中打开群组,点击右上角的菜单图标,进入设置。群组 ID(chat_id)列在设置页面上。

Get Group ID

用户 ID(open_id,格式:ou_xxx)

启动网关,向机器人发送私信,然后检查日志:

openclaw logs --follow

在日志输出中查找 open_id。您还可以检查待处理的配对请求:

openclaw pairing list feishu

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw