Skip to main content
Feishu (Lark) は、企業でのメッセージングやコラボレーションに使われるチームチャットプラットフォームです。このプラグインは、Feishu / Lark の WebSocket イベントサブスクリプションを使って OpenClaw をボットへ接続します。そのため、公開 webhook URL を外部へ公開せずにメッセージを受信できます。

Bundled plugin

Feishu は現在の OpenClaw リリースに同梱されているため、通常は別途プラグインをインストールする必要はありません。 ただし、同梱版を含まない古いビルドやカスタムインストールを使っている場合は、手動でインストールしてください。

Quickstart

Feishu チャンネルの追加方法は 2 つあります。 OpenClaw をインストールした直後であれば、ウィザードを実行してください。
ウィザードでは次を順に案内します。
  1. Feishu アプリを作成し、認証情報を取得する
  2. OpenClaw にアプリ認証情報を設定する
  3. ゲートウェイを起動する
設定後 は、ゲートウェイの状態を確認してください。
  • openclaw gateway status
  • openclaw logs --follow

Method 2: CLI setup

初期セットアップがすでに完了している場合は、CLI からチャンネルを追加できます。
Feishu を選択し、App ID と App Secret を入力します。 設定後 は、次のコマンドでゲートウェイを管理できます。
  • openclaw gateway status
  • openclaw gateway restart
  • openclaw logs --follow

Step 1: Create a Feishu app

1. Open Feishu Open Platform

Feishu Open Platform を開いてサインインします。 Lark (グローバル) テナントを使う場合は https://open.larksuite.com/app を開き、Feishu の設定で domain: "lark" を指定してください。

2. Create an app

  1. Create enterprise app をクリックします。
  2. アプリ名と説明を入力します。
  3. アプリアイコンを選択します。
Create enterprise app

3. Copy credentials

Credentials & Basic Info から次の値を控えます。
  • App ID (形式: cli_xxx)
  • App Secret
Important: App Secret は秘密として扱ってください。 Get credentials

4. Configure permissions

PermissionsBatch import をクリックし、次の内容を貼り付けます。
Configure permissions

5. Enable bot capability

App Capability > Bot で次を設定します。
  1. ボット機能を有効にする
  2. ボット名を設定する
Enable bot capability

6. Configure event subscription

⚠️ Important: イベントサブスクリプションを設定する前に、次の 2 点を確認してください。
  1. Feishu に対して openclaw channels add をすでに実行済みであること
  2. ゲートウェイが起動していること (openclaw gateway status)
Event Subscription では次を設定します。
  1. Use long connection to receive events (WebSocket) を選択する
  2. im.message.receive_v1 イベントを追加する
⚠️ ゲートウェイが起動していない場合、長時間接続の設定保存に失敗することがあります。 Configure event subscription

7. Publish the app

  1. Version Management & Release でバージョンを作成します。
  2. レビューへ提出して公開します。
  3. 管理者承認を待ちます。enterprise app では自動承認されることが一般的です。

Step 2: Configure OpenClaw

Feishu を選択し、App ID と App Secret を貼り付けます。

Configure via config file

~/.openclaw/openclaw.json を編集します。
connectionMode: "webhook" を使う場合は verificationToken を設定してください。Feishu の webhook サーバーはデフォルトで 127.0.0.1 に bind されます。意図的に別の bind address が必要な場合にだけ webhookHost を設定してください。

Verification Token (webhook mode)

webhook モードを使う場合は、設定で channels.feishu.verificationToken を指定します。取得手順は次のとおりです。
  1. Feishu Open Platform で対象アプリを開きます。
  2. DevelopmentEvents & Callbacks (开发配置 → 事件与回调) を開きます。
  3. Encryption タブ (加密策略) を開きます。
  4. Verification Token をコピーします。
Verification Token location

Configure via environment variables

Lark (global) domain

テナントが Lark (国際版) にある場合は、domain を lark に設定してください。完全なドメイン文字列を指定することもできます。設定先は channels.feishu.domain またはアカウント単位の channels.feishu.accounts.<id>.domain です。

Quota optimization flags

Feishu API の利用量を減らしたい場合は、次の 2 つのオプションフラグを使えます。
  • typingIndicator (デフォルト true): false にすると、入力中リアクションの API 呼び出しを省略します。
  • resolveSenderNames (デフォルト true): false にすると、送信者プロフィール解決の API 呼び出しを省略します。
これらはトップレベル、またはアカウント単位で設定できます。

Step 3: Start + test

1. Start the gateway

2. Send a test message

Feishu 上でボットを探し、テストメッセージを送信します。

3. Approve pairing

デフォルトでは、ボットはペアリングコードを返します。次のコマンドで承認します。
承認後は通常どおりチャットできます。

Overview

  • Feishu bot channel: ゲートウェイが管理する Feishu ボットチャンネルです。
  • Deterministic routing: 返信は常に Feishu へ戻ります。
  • Session isolation: DM は main session を共有し、グループは分離されます。
  • WebSocket connection: Feishu SDK を使う長時間接続で動作し、公開 URL は不要です。

Access control

Direct messages

  • デフォルト: dmPolicy: "pairing"。未知のユーザーにはペアリングコードが返されます。
  • ペアリング承認:
  • allowlist モード: channels.feishu.allowFrom に許可する Open ID を設定します。

Group chats

1. Group policy (channels.feishu.groupPolicy)
  • "open" = グループ内の全員を許可します (デフォルト)
  • "allowlist" = groupAllowFrom に含まれるものだけを許可します
  • "disabled" = グループメッセージを無効化します
2. Mention requirement (channels.feishu.groups.<chat_id>.requireMention)
  • true = @mention 必須 (デフォルト)
  • false = メンションなしでも応答

Group configuration examples

Allow all groups, require @mention (default)

Allow all groups, no @mention required

Allow specific groups only

Restrict which senders can message in a group (sender allowlist)

グループ自体を許可するだけでなく、そのグループ内の すべてのメッセージ を送信者の open_id で制限できます。groups.<chat_id>.allowFrom に含まれるユーザーのメッセージだけが処理され、それ以外のメンバーからのメッセージは無視されます。これは /reset/new のような制御コマンドだけでなく、通常のメッセージにも適用されます。

Get group/user IDs

Group IDs (chat_id)

グループ ID は oc_xxx のような形式です。 Method 1 (recommended)
  1. ゲートウェイを起動し、グループ内でボットを @mention します。
  2. openclaw logs --follow を実行し、chat_id を探します。
Method 2 Feishu API debugger を使ってグループチャット一覧を確認します。

User IDs (open_id)

ユーザー ID は ou_xxx のような形式です。 Method 1 (recommended)
  1. ゲートウェイを起動し、ボットへ DM を送ります。
  2. openclaw logs --follow を実行し、open_id を探します。
Method 2 ペアリング要求一覧からユーザーの Open ID を確認します。

Common commands

Note: Feishu は現時点でネイティブなコマンドメニューをサポートしていないため、コマンドはテキストとして送信する必要があります。

Gateway management commands


Troubleshooting

Bot does not respond in group chats

  1. ボットがグループへ追加されていることを確認します。
  2. デフォルト挙動では @mention が必要です。メンションしているか確認します。
  3. groupPolicy"disabled" になっていないことを確認します。
  4. openclaw logs --follow でログを確認します。

Bot does not receive messages

  1. アプリが公開済みかつ承認済みであることを確認します。
  2. イベントサブスクリプションに im.message.receive_v1 が含まれていることを確認します。
  3. long connection が有効であることを確認します。
  4. アプリ権限が不足していないことを確認します。
  5. ゲートウェイが起動していることを確認します: openclaw gateway status
  6. openclaw logs --follow でログを確認します。

App Secret leak

  1. Feishu Open Platform 上で App Secret をリセットします。
  2. 設定内の App Secret を更新します。
  3. ゲートウェイを再起動します。

Message send failures

  1. アプリに im:message:send_as_bot 権限があることを確認します。
  2. アプリが公開済みであることを確認します。
  3. ログで詳細エラーを確認します。

Advanced configuration

Multiple accounts

defaultAccount は、送信 API で accountId を明示しない場合に、どの Feishu アカウントを使うかを決めます。

Message limits

  • textChunkLimit: 送信テキストのチャンクサイズ (デフォルト 2000 文字)
  • mediaMaxMb: メディアのアップロード / ダウンロード上限 (デフォルト 30 MB)

Streaming

Feishu は interactive card を使ったストリーミング返信に対応しています。有効にすると、ボットはテキスト生成中にカードを更新します。
送信前に完全な返信が揃うまで待たせたい場合は、streaming: false を設定してください。

Multi-agent routing

bindings を使うと、Feishu の DM やグループを別のエージェントへルーティングできます。
主なルーティングフィールド:
  • match.channel: "feishu"
  • match.peer.kind: "direct" または "group"
  • match.peer.id: ユーザー Open ID (ou_xxx) またはグループ ID (oc_xxx)
取得方法のヒントは Get group/user IDs を参照してください。

Configuration reference

完全な設定一覧: Gateway configuration

dmPolicy reference


Supported message types

Receive

  • ✅ Text
  • ✅ Rich text (post)
  • ✅ Images
  • ✅ Files
  • ✅ Audio
  • ✅ Video
  • ✅ Stickers

Send

  • ✅ Text
  • ✅ Images
  • ✅ Files
  • ✅ Audio
  • ⚠️ Rich text (partial support)