跳转至

消息类型

OpenClaw 可接收和发送的 Feishu 消息类型、贴纸支持以及线程感知回复。

读取消息和聊天信息

从 npm 或 ClawHub 安装的官方 Feishu 插件与捆绑插件使用相同的 Feishu 访问检查,用于消息读取、表情回应和置顶列表、聊天和成员信息、目录列表以及已配置的贴纸搜索。现有的账户、操作和访问控制仍然适用。单聊成员查找仍仅限于当前发送者,目录结果仍按已配置策略过滤。

对于实时联系人查找,channel-list 操作会在提供商的分页中,将 query 与用户 ID 和姓名进行匹配。limit 应用于匹配的联系人,默认值为 50。如果分页无法在 100 页内完成,或提供商返回无效的续传 token,该操作会报告查找失败。

来自已安装插件的委托读取需要当前 Feishu 账户和会话上下文。结束源操作或停用插件可阻止后续的提供商请求,并拒绝迟到的结果。已发送到 Feishu 的请求无法撤销。

支持的消息类型

接收

  • ✅ 文本
  • ✅ 富文本(post)
  • ✅ 图片
  • ✅ 文件
  • ✅ 音频
  • ✅ 视频/媒体
  • ✅ 贴纸

接收到的贴纸会将其可复用的 file_key 以 <sticker key="..."/> 的形式暴露给代理。Feishu/Lark 不支持下载贴纸资源,因此 OpenClaw 会保留该 key,而不会获取附件。

传入的 Feishu/Lark 音频消息会被规范化为媒体占位符,而不是原始 file_key JSON。当配置了 tools.media.audio 时,OpenClaw 会在代理回合之前下载语音消息资源并运行共享音频转录,因此代理会收到口述转录文本。如果 Feishu 直接在音频负载中包含转录文本,则会使用该文本,而不再进行另一次 ASR 调用。如果没有音频转录提供商,代理仍会收到 <media:audio> 占位符以及已保存的附件,而不是原始 Feishu 资源负载。

发送

  • ✅ 文本
  • ✅ 图片
  • ✅ 文件
  • ✅ 音频
  • ✅ 视频/媒体
  • ✅ 交互式卡片(包括流式更新)
  • ✅ 同一机器人之前接收到的贴纸(需要 actions.sticker)
  • ⚠️ 富文本(post 样式格式;不支持完整的 Feishu/Lark 编辑功能)

原生 Feishu/Lark 音频气泡使用 Feishu audio 消息类型,并要求 Ogg/Opus 上传媒体(file_type: "opus")。现有的 .opus 和 .ogg 媒体会直接作为原生音频发送。MP3/WAV/M4A 和其他可能的音频格式仅在回复请求语音投递(audioAsVoice / 消息工具 asVoice,包括 TTS 语音消息回复)时,使用 ffmpeg 转码为 48kHz Ogg/Opus。普通 MP3 附件仍保持为常规文件。如果缺少 ffmpeg 或转换失败,OpenClaw 会回退为文件附件并记录原因。

贴纸回复

启用贴纸操作,让代理可以重发贴纸:

{
  channels: {
    feishu: {
      actions: { sticker: true },
    },
  },
}

如果仅针对一个账户,请改为设置 channels.feishu.accounts.<id>.actions.sticker: true。账户级 actions 对象会替换而不是合并通道级对象。请重复任何需要保留的操作门控。例如,在 work 上启用贴纸的同时保持表情回应禁用:

{
  channels: {
    feishu: {
      actions: { reactions: false },
      accounts: {
        work: {
          actions: { reactions: false, sticker: true },
        },
      },
    },
  },
}

先向该机器人发送一张贴纸,然后要求它重发该贴纸。共享 message 工具使用 action: "sticker",并将接收到的 file_key 放在 fileId 或 stickerId 的第一个条目中。在多账户配置中,请使用接收到贴纸的同一 accountId。

只能发送该机器人之前接收过的贴纸。不支持上传新贴纸、下载贴纸资源或搜索贴纸商店。

添加一个精选贴纸集,让代理可以通过关键词查找已接收的贴纸。首先将每张贴纸发送给机器人,并要求它提供接收到的 file_key。然后将 key 和你自己的标签添加到现有 Feishu 配置中:

{
  channels: {
    feishu: {
      actions: { sticker: true },
      stickerSets: {
        cli_work: {
          file_received_key: ["thumbs up", "赞", "👍"],
        },
      },
    },
  },
}

将 cli_work 替换为机器人的实际应用 ID,并将 file_received_key 替换为该机器人接收到的 key。stickerSets 应直接位于 channels.feishu 下,而不是位于某个账户内部。所选账户只能搜索与其应用 ID 匹配的贴纸集;将账户更改为另一个机器人不会复用之前机器人的贴纸集。使用同一机器人的账户共享其贴纸集。按照上述说明保留任何现有的账户级操作门控。

要求代理“发送一个点赞贴纸”。它可以使用共享 message 工具,设置 action: "sticker-search"、query: "thumbs up" 和目标 accountId,然后在同一账户上使用 action: "sticker" 发送返回的 fileId。只有当贴纸已启用且机器人具有非空的已配置贴纸集时,搜索才可用。

搜索会按贴纸 key 顺序匹配显式关键词的不区分大小写子串,包括中文标签和表情符号。它不会推断贴纸含义、搜索 Feishu 商店或自动收集已接收的贴纸。结果包括匹配的 keyword 和可复用的 fileId。没有匹配项时返回空列表;truncated: true 表示匹配条目因结果限制或输出预算而被省略。缩小查询范围以查找其他匹配项。

限制:32 个机器人贴纸集,每个贴纸集 256 张贴纸,每张贴纸 1–8 个关键词。存储的关键词不得包含前导或尾随空白;每个关键词必须非空且最多 64 个 Unicode 字符。文件 key 必须是规范的接收 key,最多 512 个 Unicode 字符。每个 key 在其机器人的映射中只出现一次。查询必须非空且最多 128 个 Unicode 字符。limit 默认为 5,并接受 1 到 10 之间的整数;搜索结果还限制为最多 3 KiB 的 JSON 输出。删除贴纸集会将其从搜索中移除;不会创建单独的贴纸数据库或缓存。

线程与回复

  • ✅ 内联回复
  • ✅ 线程回复
  • ✅ 媒体回复在回复线程消息时保持线程感知

主题群组会话路由在 群组会话范围和主题线程 中介绍。

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