メインコンテンツへスキップ
OpenClaw は、公式の @openclaw/feishu plugin を通じて Feishu/Lark(オールインワンのコラボレーションプラットフォーム)に接続します。bot DM、グループチャット、ストリーミングカード返信、Feishu の doc/wiki/drive/Bitable ツールに対応しています。 ステータス: bot DM + グループチャットは本番利用可能です。WebSocket がデフォルトのイベントトランスポートです(公開 URL は不要)。webhook モードは任意です。

クイックスタート

OpenClaw 2026.5.29 以上が必要です。確認するには openclaw --version を実行してください。アップグレードするには openclaw update を使用します。
1

チャネルセットアップウィザードを実行する

openclaw channels login --channel feishu
これにより、@openclaw/feishu plugin がない場合はインストールされ、その後セットアップを案内します。
  • 手動セットアップ: Feishu Open Platform(https://open.feishu.cn)または Lark Developer(https://open.larksuite.com)から App ID と App Secret を貼り付けます。
  • QR セットアップ: Feishu アプリで QR コードをスキャンして bot を自動作成します。このフローでは DM が自分のアカウントに固定されます(自分の open_id を使った dmPolicy: "allowlist")。
ウィザードでは API ドメイン(Feishu か Lark)とグループポリシーも確認されます。中国国内版の Feishu モバイルアプリが QR コードに反応しない場合は、セットアップを再実行して手動セットアップを選択してください。
2

セットアップ完了後、変更を適用するために gateway を再起動する

openclaw gateway restart

アクセス制御

ダイレクトメッセージ

bot に DM できるユーザーを制御するには、channels.feishu.dmPolicy(デフォルト: pairing)を設定します。
動作
"pairing"不明なユーザーはペアリングコードを受け取ります。CLI で承認します
"allowlist"allowFrom に列挙されたユーザーのみがチャットできます
"open"公開 DM。config 検証では 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" の場合を除き、@メンションが必要です。"open" ではデフォルトが false になるため、メンションを含められないメッセージ(例: 画像)も agent に届きます。
  • 上書きするには true または false を明示的に設定します。グループごとの上書き: channels.feishu.groups.<chat_id>.requireMention
  • ブロードキャスト専用の @all@_all は bot メンションとして扱われません。@all と bot の直接メンションの両方を含むメッセージは、引き続き bot メンションとしてカウントされます。

グループ設定例

すべてのグループを許可し、@メンションを不要にする

{
  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 は、すべてのグループに同じ送信者 allowlist を設定します。グループごとの allowFrom が優先されます。

グループ/ユーザー ID を取得する

グループ ID(chat_id、形式: oc_xxx

Feishu/Lark でグループを開き、右上のメニューアイコンをクリックして 設定 に移動します。グループ ID(chat_id)は設定ページに表示されます。 グループ ID を取得する

ユーザー ID(open_id、形式: ou_xxx

gateway を起動し、bot に DM を送信してからログを確認します。
openclaw logs --follow
ログ出力で open_id を探します。保留中のペアリングリクエストも確認できます。
openclaw pairing list feishu

よく使うコマンド

コマンド説明
/statusbot のステータスを表示します
/reset現在のセッションをリセットします
/modelAI モデルを表示または切り替えます
Feishu/Lark はネイティブのスラッシュコマンドメニューをサポートしていないため、これらはプレーンテキストメッセージとして送信してください。

トラブルシューティング

bot がグループチャットで応答しない

  1. bot がグループに追加されていることを確認します
  2. bot を @メンションしていることを確認します(デフォルトで必須)
  3. groupPolicy"disabled" ではないことを確認します
  4. ログを確認します: openclaw logs --follow

bot がメッセージを受信しない

  1. bot が Feishu Open Platform / Lark Developer で公開および承認されていることを確認します
  2. イベントサブスクリプションに im.message.receive_v1 が含まれていることを確認します
  3. persistent connection(WebSocket)が選択されていることを確認します
  4. 必要なすべての権限スコープが付与されていることを確認します
  5. gateway が実行中であることを確認します: openclaw gateway status
  6. ログを確認します: openclaw logs --follow

QR セットアップが Feishu モバイルアプリで反応しない

  1. セットアップを再実行します: openclaw channels login --channel feishu
  2. 手動セットアップを選択します
  3. Feishu Open Platform で自社開発アプリを作成し、その App ID と App Secret をコピーします
  4. その認証情報をセットアップウィザードに貼り付けます

App Secret が漏えいした

  1. Feishu Open Platform / Lark Developer で App Secret をリセットします
  2. config 内の値を更新します
  3. gateway を再起動します: openclaw gateway restart

高度な設定

複数アカウント

{
  channels: {
    feishu: {
      defaultAccount: "main",
      accounts: {
        main: {
          appId: "cli_xxx",
          appSecret: "xxx",
          name: "Primary bot",
          tts: {
            providers: {
              openai: { voice: "shimmer" },
            },
          },
        },
        backup: {
          appId: "cli_yyy",
          appSecret: "yyy",
          name: "Backup bot",
          enabled: false,
        },
      },
    },
  },
}
defaultAccount は、送信 API が accountId を指定しない場合に使用されるアカウントを制御します。アカウントエントリはトップレベル設定を継承します。ほとんどのトップレベルキーはアカウントごとに上書きできます。 accounts.<id>.ttsmessages.tts と同じ形状を使用し、グローバル TTS config の上にディープマージされます。そのため、複数 bot の Feishu セットアップでは、共有プロバイダー認証情報をグローバルに保持しつつ、アカウントごとに音声、モデル、ペルソナ、自動モードだけを上書きできます。

メッセージ制限

  • textChunkLimit - 送信テキストチャンクサイズ(デフォルト: 4000 文字)
  • chunkMode - "length"(デフォルト)は上限で分割します。"newline" は改行境界を優先します
  • mediaMaxMb - メディアのアップロード/ダウンロード上限(デフォルト: 30 MB)

ストリーミング

Feishu/Lark はインタラクティブカード(Card Kit streaming API)経由のストリーミング返信をサポートしています。有効にすると、bot はテキスト生成中にカードをリアルタイムで更新します。
{
  channels: {
    feishu: {
      streaming: true, // enable streaming card output (default: true)
      blockStreaming: true, // opt into completed-block streaming
    },
  },
}
streaming: false を設定すると、完全な返信を 1 つのメッセージで送信します。renderMode: "raw"(カードではなくプレーンテキスト)もストリーミングカードを無効にします。blockStreaming はデフォルトでオフです。最終返信の前に完了済み assistant ブロックをフラッシュしたい場合にのみ有効にしてください。

クォータ最適化

2 つの任意フラグで Feishu/Lark API 呼び出し数を減らします。
  • typingIndicator(デフォルト true): タイピングリアクション呼び出しをスキップするには false を設定します
  • resolveSenderNames(デフォルト true): 送信者プロフィール検索をスキップするには false を設定します
{
  channels: {
    feishu: {
      typingIndicator: false,
      resolveSenderNames: false,
    },
  },
}

グループセッションスコープとトピックスレッド

channels.feishu.groupSessionScope(トップレベル、アカウントごと、またはグループごと)は、グループメッセージを agent セッションにどう対応付けるかを制御します。
セッション
"group"(デフォルト)グループチャットごとに 1 セッション
"group_sender"(グループ + 送信者)ごとに 1 セッション
"group_topic"トピックスレッドごとに 1 セッション。グループセッションにフォールバックします
"group_topic_sender"(トピック + 送信者)ごとに 1 セッション。(グループ + 送信者)にフォールバックします
トピックスコープでは、ネイティブの Feishu/Lark トピックグループはイベントの thread_idomt_*)を正規のトピックセッションキーとして使用します。ネイティブトピックの開始イベントで thread_id が省略されている場合、OpenClaw は turn をルーティングする前に Feishu からそれを取得します。OpenClaw がスレッド化する通常のグループ返信は、返信ルートメッセージ ID(om_*)を引き続き使用するため、最初の turn と後続の turn は同じセッションに留まります。 bot の返信をインライン返信ではなく Feishu トピックスレッドの作成または継続にするには、replyInThread: "enabled"(トップレベルまたはグループごと)を設定します。topicSessionModegroupSessionScope の非推奨の前身です。groupSessionScope を優先してください。

Feishu ワークスペースツール

この plugin には、Feishu のドキュメント、チャット、ナレッジベース、クラウドストレージ、権限、Bitable 用の agent ツールに加え、対応する Skills(feishu-docfeishu-drivefeishu-permfeishu-wiki)が含まれています。ツールファミリーは channels.feishu.tools で制御されます。
キーツールデフォルト
tools.docfeishu_doc ドキュメント操作true
tools.chatfeishu_chat チャット情報 + メンバークエリtrue
tools.wikifeishu_wiki ナレッジベース(doc が必要)true
tools.drivefeishu_drive クラウドストレージtrue
tools.permfeishu_perm 権限管理false(機密)
tools.scopesfeishu_app_scopes アプリスコープ診断true
tools.bitablefeishu_bitable_* Bitable/Base 操作true
tools.basetools.bitable のエイリアスです。両方が設定されている場合は、明示的な bitable の値が優先されます。アカウントごとのゲートは accounts.<id>.tools 配下にあります。

ACP セッション

Feishu/Lark は DM とグループスレッドメッセージで ACP をサポートしています。Feishu/Lark の ACP はテキストコマンド駆動です。ネイティブのスラッシュコマンドメニューはないため、会話内で /acp ... メッセージを直接使用してください。

永続 ACP バインディング

{
  agents: {
    list: [
      {
        id: "codex",
        runtime: {
          type: "acp",
          acp: {
            agent: "codex",
            backend: "acpx",
            mode: "persistent",
            cwd: "/workspace/openclaw",
          },
        },
      },
    ],
  },
  bindings: [
    {
      type: "acp",
      agentId: "codex",
      match: {
        channel: "feishu",
        accountId: "default",
        peer: { kind: "direct", id: "ou_1234567890" },
      },
    },
    {
      type: "acp",
      agentId: "codex",
      match: {
        channel: "feishu",
        accountId: "default",
        peer: { kind: "group", id: "oc_group_chat:topic:om_topic_root" },
      },
      acp: { label: "codex-feishu-topic" },
    },
  ],
}

チャットから ACP を起動

Feishu/Lark の DM またはスレッドで:
/acp spawn codex --thread here
--thread here は DM と Feishu/Lark のスレッドメッセージで機能します。バインドされた会話内の後続メッセージは、その ACP セッションに直接ルーティングされます。

マルチエージェントルーティング

bindings を使用して、Feishu/Lark の DM またはグループを別々のエージェントにルーティングします。
{
  agents: {
    list: [
      { id: "main" },
      { id: "agent-a", workspace: "/home/user/agent-a" },
      { id: "agent-b", workspace: "/home/user/agent-b" },
    ],
  },
  bindings: [
    {
      agentId: "agent-a",
      match: {
        channel: "feishu",
        peer: { kind: "direct", id: "ou_xxx" },
      },
    },
    {
      agentId: "agent-b",
      match: {
        channel: "feishu",
        peer: { kind: "group", id: "oc_zzz" },
      },
    },
  ],
}
ルーティングフィールド:
  • match.channel: "feishu"
  • match.peer.kind: "direct" (DM) または "group" (グループチャット)
  • match.peer.id: ユーザー Open ID (ou_xxx) またはグループ ID (oc_xxx)
検索のヒントについては、グループ/ユーザー ID を取得 を参照してください。

ユーザーごとのエージェント分離 (動的エージェント作成)

dynamicAgentCreation を有効にすると、各 DM ユーザーに対して分離されたエージェントインスタンスが自動的に作成されます。各ユーザーにはそれぞれ次のものが用意されます。
  • 独立したワークスペースディレクトリ
  • 個別の USER.md / SOUL.md / MEMORY.md
  • プライベートな会話履歴
  • 分離された Skills と状態
これは、各ユーザーに自分専用のプライベート AI アシスタント体験を提供したい公開ボットに不可欠です。
動的バインディングには正規化された Feishu accountId が含まれるため、デフォルトアカウントと名前付きアカウントは各送信者を正しい動的エージェントにルーティングします。古いリリースで名前付きアカウントがスコープなしの動的エージェントを作成していた場合、そのレガシーエージェントも maxAgents にカウントされます。削除する前にデフォルトアカウントで使用されていないことを確認するか、一時的に maxAgents を増やしてください。OpenClaw は曖昧なレガシー状態をどのアカウントが所有しているか安全に推測できません。

クイックセットアップ

{
  channels: {
    feishu: {
      dmPolicy: "open",
      allowFrom: ["*"],
      dynamicAgentCreation: {
        enabled: true,
        workspaceTemplate: "~/.openclaw/workspace-{agentId}",
        agentDirTemplate: "~/.openclaw/agents/{agentId}/agent",
      },
    },
  },
  session: {
    // Critical: makes each user's DM their "main session"
    // Automatically loads USER.md / SOUL.md / MEMORY.md
    // For stronger isolation, use "per-channel-peer" instead
    dmScope: "main",
  },
}

仕組み

新しいユーザーが初めて DM を送信すると、次の処理が行われます。
  1. チャンネルが一意の agentId を生成します。デフォルトアカウントでは feishu-{user_open_id}、名前付きアカウントでは制限付きのアカウント接頭辞付き ID ダイジェストです
  2. workspaceTemplate パスに新しいワークスペースを作成します
  3. エージェントを登録し、このユーザー用のバインディングを作成します
  4. ワークスペースヘルパーが、初回アクセス時にブートストラップファイル (AGENTS.mdSOUL.mdUSER.md など) を確保します
  5. このユーザーからの今後すべてのメッセージを専用エージェントにルーティングします

設定オプション

設定説明デフォルト
channels.feishu.dynamicAgentCreation.enabledユーザーごとのエージェント自動作成を有効にするfalse
channels.feishu.dynamicAgentCreation.workspaceTemplate動的エージェントワークスペースのパステンプレート~/.openclaw/workspace-{agentId}
channels.feishu.dynamicAgentCreation.agentDirTemplateエージェントディレクトリ名のテンプレート~/.openclaw/agents/{agentId}/agent
channels.feishu.dynamicAgentCreation.maxAgents作成する動的エージェントの最大数無制限
テンプレート変数:
  • {agentId} - 生成されたエージェント ID (例: feishu-ou_xxxxxx または feishu-support-<identity_digest>)
  • {userId} - 送信者の Feishu open_id (例: ou_xxxxxx)

セッションスコープ

session.dmScope は、ダイレクトメッセージをエージェントセッションにどのようにマッピングするかを制御します。これはすべてのチャンネルに影響するグローバル設定です。
動作最適な用途
"main"各ユーザーの DM を、そのエージェントのメインセッションにマッピングしますUSER.md / SOUL.md を自動読み込みしたい単一ユーザーボット
"per-peer"各ピアに個別のセッションを割り当てます (チャンネルに関係なく)送信者 ID のみをキーにした分離
"per-channel-peer"各 (チャンネル + ユーザー) の組み合わせに個別のセッションを割り当てますより強い分離が必要な公開マルチユーザーボット
"per-account-channel-peer"各 (アカウント + チャンネル + ユーザー) の組み合わせに個別のセッションを割り当てますアカウントレベルのセッション分離が必要なマルチアカウントボット
トレードオフ: "main" を使用すると、ブートストラップファイル (USER.mdSOUL.mdMEMORY.md) の自動読み込みが有効になりますが、すべてのチャンネルのすべての DM が同じセッションキーパターンを共有します。ブートストラップの自動読み込みよりも分離が重要な公開マルチユーザーボットでは、"per-channel-peer" を検討し、ブートストラップファイルを手動で管理してください。
名前付き Feishu アカウントで同じ送信者に対してセッションを分ける必要がある場合は、"per-account-channel-peer" を使用してください。動的バインディングはアカウントスコープを保持します。

一般的なマルチユーザーデプロイ

{
  channels: {
    feishu: {
      appId: "cli_xxx",
      appSecret: "xxx",
      dmPolicy: "open",
      allowFrom: ["*"],
      groupPolicy: "open",
      requireMention: true,
      dynamicAgentCreation: {
        enabled: true,
        workspaceTemplate: "~/.openclaw/workspace-{agentId}",
        agentDirTemplate: "~/.openclaw/agents/{agentId}/agent",
      },
    },
  },
  session: {
    // Choose dmScope based on your isolation needs:
    // "main" for bootstrap auto-loading, "per-channel-peer" for stronger isolation
    dmScope: "main",
  },
  bindings: [], // Empty - dynamic agents auto-bind
}

検証

動的作成が機能していることを確認するには、Gateway ログを確認します。
feishu: creating dynamic agent "feishu-ou_xxxxxx" for user ou_xxxxxx
  workspace: /home/user/.openclaw/workspace-feishu-ou_xxxxxx
  agentDir: /home/user/.openclaw/agents/feishu-ou_xxxxxx/agent
作成されたすべてのワークスペースを一覧表示します。
ls -la ~/.openclaw/workspace-*

注記

  • ワークスペース分離: 各ユーザーには、それぞれ専用のワークスペースディレクトリとエージェントインスタンスが割り当てられます。通常のメッセージングフロー内では、ユーザーは互いの会話履歴やファイルを見ることはできません。
  • セキュリティ境界: これはメッセージングコンテキストの分離メカニズムであり、敵対的な共同テナントに対するセキュリティ境界ではありません。エージェントプロセスとホスト環境は共有されます。
  • 設定書き込みは有効のままにする必要があります: 動的エージェント作成は設定にエージェントとバインディングを書き込みます。channels.feishu.configWritesfalse の場合はスキップされます (デフォルト: 有効)。
  • bindings は空にする必要があります: 動的エージェントは自身のバインディングを自動登録します
  • アップグレードパス: 既存の手動バインディングは、動的エージェントと並行して引き続き機能します
  • session.dmScope はグローバルです: これは Feishu だけでなく、すべてのチャンネルに影響します

設定リファレンス

完全な設定: Gateway 設定
設定説明デフォルト
channels.feishu.enabledチャンネルを有効化/無効化true
channels.feishu.domainAPI ドメイン(feishulark、または https:// ベース URL)feishu
channels.feishu.connectionModeイベント転送(websocket または webhookwebsocket
channels.feishu.defaultAccount送信ルーティング用のデフォルトアカウントdefault
channels.feishu.verificationTokenwebhook モードで必須-
channels.feishu.encryptKeywebhook モードで必須-
channels.feishu.webhookPathWebhook ルートパス/feishu/events
channels.feishu.webhookHostWebhook バインドホスト127.0.0.1
channels.feishu.webhookPortWebhook バインドポート3000
channels.feishu.accounts.<id>.appIdアプリ ID-
channels.feishu.accounts.<id>.appSecretアプリシークレット-
channels.feishu.accounts.<id>.domainアカウントごとのドメイン上書きfeishu
channels.feishu.accounts.<id>.ttsアカウントごとの TTS 上書きmessages.tts
channels.feishu.dmPolicyDM ポリシー(pairingallowlistopenpairing
channels.feishu.allowFromDM 許可リスト(open_id リスト)-
channels.feishu.groupPolicyグループポリシー(openallowlistdisabledallowlist
channels.feishu.groupAllowFromグループ許可リスト-
channels.feishu.groupSenderAllowFromすべてのグループに適用される送信者許可リスト-
channels.feishu.requireMentionグループで @メンションを必須にするtrue(ポリシーが open の場合は false
channels.feishu.groups.<chat_id>.requireMentionグループごとの @メンション上書き。明示的な ID は許可リストモードでもグループを許可します継承
channels.feishu.groups.<chat_id>.enabled特定のグループを有効化/無効化true
channels.feishu.groups.<chat_id>.allowFromグループごとの送信者許可リスト(groupSenderAllowFrom を上書き)-
channels.feishu.groupSessionScopeグループセッションマッピング(groupgroup_sendergroup_topicgroup_topic_sendergroup
channels.feishu.replyInThreadBot の返信がトピックスレッドを作成/継続する(disabledenableddisabled
channels.feishu.reactionNotifications受信リアクションイベント(offownallown
channels.feishu.dynamicAgentCreation.enabledユーザーごとのエージェント自動作成を有効化false
channels.feishu.dynamicAgentCreation.workspaceTemplate動的エージェントワークスペースのパステンプレート~/.openclaw/workspace-{agentId}
channels.feishu.dynamicAgentCreation.agentDirTemplateエージェントディレクトリ名テンプレート~/.openclaw/agents/{agentId}/agent
channels.feishu.dynamicAgentCreation.maxAgents作成する動的エージェントの最大数無制限
channels.feishu.textChunkLimitメッセージチャンクサイズ4000
channels.feishu.chunkModeチャンク分割(length または newlinelength
channels.feishu.mediaMaxMbメディアサイズ上限30
channels.feishu.renderMode返信レンダリング(autorawcardauto
channels.feishu.streamingストリーミングカード出力true
channels.feishu.blockStreaming完了済みブロック返信ストリーミングfalse
channels.feishu.typingIndicator入力中リアクションを送信true
channels.feishu.resolveSenderNames送信者表示名を解決true
channels.feishu.configWritesチャンネル起点の設定書き込みを許可(動的エージェントで必要)true
channels.feishu.tools.docドキュメントツールを有効化true
channels.feishu.tools.chatチャット情報ツールを有効化true
channels.feishu.tools.wikiナレッジベースツールを有効化(doc が必要)true
channels.feishu.tools.driveクラウドストレージツールを有効化true
channels.feishu.tools.perm権限管理ツールを有効化false
channels.feishu.tools.scopesアプリスコープ診断ツールを有効化true
channels.feishu.tools.bitableBitable/Base ツールを有効化true
channels.feishu.tools.basechannels.feishu.tools.bitable のエイリアス。両方が設定されている場合は明示的な bitable が優先true
channels.feishu.accounts.<id>.tools.bitableアカウントごとの Bitable/Base ツールゲート継承
channels.feishu.accounts.<id>.tools.baseアカウントごとの tools.bitable のエイリアス継承

対応メッセージタイプ

受信

  • ✅ テキスト
  • ✅ リッチテキスト(post)
  • ✅ 画像
  • ✅ ファイル
  • ✅ 音声
  • ✅ 動画/メディア
  • ✅ ステッカー
受信した Feishu/Lark 音声メッセージは、生の file_key JSON ではなくメディアプレースホルダーとして正規化されます。tools.media.audio が設定されている場合、OpenClaw はボイスメモリソースをダウンロードし、エージェントターンの前に共有音声文字起こしを実行するため、エージェントは発話の文字起こしを受け取ります。Feishu が音声ペイロードに文字起こしテキストを直接含めている場合、そのテキストが追加の ASR 呼び出しなしで使用されます。音声文字起こしプロバイダーがない場合でも、エージェントは生の Feishu リソースペイロードではなく、<media:audio> プレースホルダーと保存済み添付ファイルを受け取ります。

送信

  • ✅ テキスト
  • ✅ 画像
  • ✅ ファイル
  • ✅ 音声
  • ✅ 動画/メディア
  • ✅ インタラクティブカード(ストリーミング更新を含む)
  • ⚠️ リッチテキスト(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 はファイル添付にフォールバックし、理由をログに記録します。

スレッドと返信

  • ✅ インライン返信
  • ✅ スレッド返信
  • ✅ スレッドメッセージに返信する場合、メディア返信はスレッドを認識したままになります
トピックグループのセッションルーティングは グループセッションスコープとトピックスレッドで説明しています。

関連