Feishuボット
Feishu(Lark)は、企業でメッセージングやコラボレーションに使われるチームチャットプラットフォームです。このプラグインは、プラットフォームのWebSocketイベントサブスクリプションを使用してOpenClawをFeishu/Larkボットに接続し、公開Webhook URLを公開せずにメッセージを受信できるようにします。バンドル済みプラグイン
Feishuは現在のOpenClawリリースにバンドルされているため、別途プラグインをインストールする必要はありません。 バンドル済みFeishuを含まない古いビルドまたはカスタムインストールを使用している場合は、手動でインストールしてください。クイックスタート
Feishuチャンネルを追加する方法は2つあります。方法1: オンボーディング(推奨)
OpenClawをインストールしたばかりなら、オンボーディングを実行します。- Feishuアプリを作成し、認証情報を収集する
- OpenClawでアプリ認証情報を設定する
- Gatewayを起動する
openclaw gateway statusopenclaw logs --follow
方法2: CLIセットアップ
初回インストールをすでに完了している場合は、CLI経由でチャンネルを追加します。openclaw gateway statusopenclaw gateway restartopenclaw logs --follow
ステップ1: Feishuアプリを作成する
1. Feishu Open Platformを開く
Feishu Open Platformにアクセスしてサインインします。 Lark(グローバル)テナントはhttps://open.larksuite.com/appを使用し、Feishu設定でdomain: "lark"を設定してください。
2. アプリを作成する
- Create enterprise appをクリックします
- アプリ名と説明を入力します
- アプリアイコンを選択します

3. 認証情報をコピーする
Credentials & Basic Infoから、次をコピーします。- App ID(形式:
cli_xxx) - App Secret

4. 権限を設定する
PermissionsでBatch importをクリックし、以下を貼り付けます。
5. ボット機能を有効にする
App Capability > Botで次を行います。- ボット機能を有効にする
- ボット名を設定する

6. イベントサブスクリプションを設定する
⚠️ 重要: イベントサブスクリプションを設定する前に、以下を確認してください。- Feishuに対してすでに
openclaw channels addを実行している - Gatewayが実行中である(
openclaw gateway status)
- Use long connection to receive events(WebSocket)を選択する
- イベント
im.message.receive_v1を追加する - (任意)Driveコメントワークフロー用に、
drive.notice.comment_add_v1も追加する

7. アプリを公開する
- Version Management & Releaseでバージョンを作成する
- 審査に提出して公開する
- 管理者の承認を待つ(通常、企業アプリは自動承認されます)
ステップ2: OpenClawを設定する
ウィザードで設定する(推奨)
設定ファイルで設定する
~/.openclaw/openclaw.jsonを編集します。
connectionMode: "webhook"を使用する場合は、verificationTokenとencryptKeyの両方を設定してください。Feishu webhookサーバーはデフォルトで127.0.0.1にバインドされます。別のバインドアドレスが意図的に必要な場合にのみwebhookHostを設定してください。
Verification TokenとEncrypt Key(webhookモード)
webhookモードを使用する場合は、設定でchannels.feishu.verificationTokenとchannels.feishu.encryptKeyの両方を設定してください。値を取得するには、次の手順を実行します。
- Feishu Open Platformでアプリを開く
- Development → Events & Callbacks(开发配置 → 事件与回调)に移動する
- Encryptionタブ(加密策略)を開く
- Verification TokenとEncrypt Keyをコピーする

環境変数で設定する
Lark(グローバル)ドメイン
テナントがLark(国際版)上にある場合は、ドメインをlark(または完全なドメイン文字列)に設定してください。channels.feishu.domainまたはアカウントごと(channels.feishu.accounts.<id>.domain)に設定できます。
クォータ最適化フラグ
2つの任意フラグでFeishu APIの使用量を減らせます。typingIndicator(デフォルトtrue):falseの場合、入力中リアクションの呼び出しをスキップします。resolveSenderNames(デフォルトtrue):falseの場合、送信者プロファイル参照の呼び出しをスキップします。
ステップ3: 起動してテストする
1. Gatewayを起動する
2. テストメッセージを送信する
Feishuでボットを見つけてメッセージを送信します。3. ペアリングを承認する
デフォルトでは、ボットはペアリングコードを返信します。次のように承認してください。概要
- Feishuボットチャンネル: Gatewayによって管理されるFeishuボット
- 決定論的ルーティング: 返信は常にFeishuに戻る
- セッション分離: DMはメインセッションを共有し、グループは分離される
- WebSocket接続: Feishu SDKによる長期接続で、公開URLは不要
アクセス制御
ダイレクトメッセージ
-
デフォルト:
dmPolicy: "pairing"(不明なユーザーにはペアリングコードを返す) -
ペアリングを承認する:
-
許可リストモード: 許可されたOpen IDで
channels.feishu.allowFromを設定する
グループチャット
1. グループポリシー(channels.feishu.groupPolicy):
"open"= グループ内の全員を許可"allowlist"=groupAllowFromのみ許可"disabled"= グループメッセージを無効化
allowlist
2. メンション要件(channels.feishu.requireMention、channels.feishu.groups.<chat_id>.requireMentionで上書き可能):
- 明示的に
true= @mentionが必要 - 明示的に
false= メンションなしで応答 - 未設定かつ
groupPolicy: "open"の場合 = デフォルトでfalse - 未設定かつ
groupPolicyが"open"でない場合 = デフォルトでtrue
グループ設定例
すべてのグループを許可し、@mention不要にする(openグループのデフォルト)
すべてのグループを許可するが、引き続き@mentionを必須にする
特定のグループのみ許可する
グループ内でメッセージを送れる送信者を制限する(送信者許可リスト)
グループ自体を許可することに加えて、そのグループ内のすべてのメッセージは送信者のopen_idによって制御されます。groups.<chat_id>.allowFromに列挙されたユーザーだけがメッセージを処理され、他のメンバーからのメッセージは無視されます(これは/resetや/newのような制御コマンドだけでなく、送信者レベル全体の制御です)。
グループ/ユーザーIDを取得する
グループID(chat_id)
グループIDはoc_xxxのようになります。
方法1(推奨)
- Gatewayを起動し、グループ内でボットに@mentionする
openclaw logs --followを実行し、chat_idを探す
ユーザーID(open_id)
ユーザーIDはou_xxxのようになります。
方法1(推奨)
- Gatewayを起動し、ボットにDMする
openclaw logs --followを実行し、open_idを探す
よく使うコマンド
| コマンド | 説明 |
|---|---|
/status | ボットのステータスを表示 |
/reset | セッションをリセット |
/model | モデルを表示/切り替え |
注: Feishuはまだネイティブのコマンドメニューをサポートしていないため、コマンドはテキストとして送信する必要があります。
Gateway管理コマンド
| コマンド | 説明 |
|---|---|
openclaw gateway status | Gatewayステータスを表示 |
openclaw gateway install | Gatewayサービスをインストール/起動 |
openclaw gateway stop | Gatewayサービスを停止 |
openclaw gateway restart | Gatewayサービスを再起動 |
openclaw logs --follow | Gatewayログを追跡 |
トラブルシューティング
グループチャットでボットが応答しない
- ボットがグループに追加されていることを確認する
- ボットに@mentionしていることを確認する(デフォルト動作)
groupPolicyが"disabled"に設定されていないことを確認する- ログを確認する:
openclaw logs --follow
ボットがメッセージを受信しない
- アプリが公開され、承認されていることを確認する
- イベントサブスクリプションに
im.message.receive_v1が含まれていることを確認する - long connectionが有効になっていることを確認する
- アプリ権限が完全であることを確認する
- Gatewayが実行中であることを確認する:
openclaw gateway status - ログを確認する:
openclaw logs --follow
App Secretの漏えい
- Feishu Open PlatformでApp Secretをリセットする
- 設定内のApp Secretを更新する
- Gatewayを再起動する
メッセージ送信失敗
- アプリに
im:message:send_as_bot権限があることを確認する - アプリが公開されていることを確認する
- 詳細なエラーについてログを確認する
高度な設定
複数アカウント
defaultAccountは、送信APIがaccountIdを明示的に指定しない場合に、どのFeishuアカウントを使うかを制御します。
メッセージ制限
textChunkLimit: 送信テキストのチャンクサイズ(デフォルト: 2000文字)mediaMaxMb: メディアのアップロード/ダウンロード制限(デフォルト: 30MB)
ストリーミング
Feishuは、インタラクティブカードによるストリーミング返信をサポートしています。有効にすると、ボットはテキスト生成中にカードを更新します。streaming: falseに設定すると、全文の返信が完成するまで待ってから送信します。
ACPセッション
Feishuは以下に対してACPをサポートしています。- DM
- グループのトピック会話
/acp ...メッセージを使用してください。
永続的なACPバインディング
トップレベルの型付きACPバインディングを使って、FeishuのDMまたはトピック会話を永続的なACPセッションに固定します。チャットからスレッドに紐づくACPを起動する
FeishuのDMまたはトピック会話では、その場でACPセッションを起動してバインドできます。--thread hereはDMとFeishuトピックで動作します。- バインドされたDM/トピック内の後続メッセージは、そのACPセッションへ直接ルーティングされます。
- v1では、一般的な非トピックのグループチャットは対象にしていません。
マルチエージェントルーティング
bindingsを使用して、FeishuのDMまたはグループを別々のエージェントへルーティングします。
match.channel:"feishu"match.peer.kind:"direct"または"group"match.peer.id: ユーザーOpen ID(ou_xxx)またはグループID(oc_xxx)
設定リファレンス
完全な設定: Gateway configuration 主なオプション:| 設定 | 説明 | デフォルト |
|---|---|---|
channels.feishu.enabled | チャンネルを有効化/無効化 | true |
channels.feishu.domain | APIドメイン(feishuまたはlark) | feishu |
channels.feishu.connectionMode | イベント転送モード | websocket |
channels.feishu.defaultAccount | 送信ルーティング用のデフォルトアカウントID | default |
channels.feishu.verificationToken | webhookモードで必須 | - |
channels.feishu.encryptKey | webhookモードで必須 | - |
channels.feishu.webhookPath | Webhookルートパス | /feishu/events |
channels.feishu.webhookHost | Webhookバインドホスト | 127.0.0.1 |
channels.feishu.webhookPort | Webhookバインドポート | 3000 |
channels.feishu.accounts.<id>.appId | App ID | - |
channels.feishu.accounts.<id>.appSecret | App Secret | - |
channels.feishu.accounts.<id>.domain | アカウントごとのAPIドメイン上書き | feishu |
channels.feishu.dmPolicy | DMポリシー | pairing |
channels.feishu.allowFrom | DM許可リスト(open_id一覧) | - |
channels.feishu.groupPolicy | グループポリシー | allowlist |
channels.feishu.groupAllowFrom | グループ許可リスト | - |
channels.feishu.requireMention | デフォルトで@mention必須 | conditional |
channels.feishu.groups.<chat_id>.requireMention | グループごとの@mention必須上書き | inherited |
channels.feishu.groups.<chat_id>.enabled | グループを有効化 | true |
channels.feishu.textChunkLimit | メッセージチャンクサイズ | 2000 |
channels.feishu.mediaMaxMb | メディアサイズ上限 | 30 |
channels.feishu.streaming | ストリーミングカード出力を有効化 | true |
channels.feishu.blockStreaming | ブロックストリーミングを有効化 | true |
dmPolicyリファレンス
| 値 | 動作 |
|---|---|
"pairing" | デフォルト。 不明なユーザーにペアリングコードを返し、承認が必要 |
"allowlist" | allowFrom内のユーザーのみチャット可能 |
"open" | すべてのユーザーを許可(allowFromに"*"が必要) |
"disabled" | DMを無効化 |
サポートされるメッセージタイプ
受信
- ✅ テキスト
- ✅ リッチテキスト(post)
- ✅ 画像
- ✅ ファイル
- ✅ 音声
- ✅ 動画/メディア
- ✅ ステッカー
送信
- ✅ テキスト
- ✅ 画像
- ✅ ファイル
- ✅ 音声
- ✅ 動画/メディア
- ✅ インタラクティブカード
- ⚠️ リッチテキスト(post形式の書式設定とカード。任意のFeishuオーサリング機能ではありません)
スレッドと返信
- ✅ インライン返信
- ✅ Feishuが
reply_in_threadを公開するトピックスレッド返信 - ✅ メディア返信は、スレッド/トピックメッセージへの返信時にもスレッド認識を維持
Driveコメント
Feishuでは、誰かがFeishu Driveドキュメント(Docs、Sheetsなど)にコメントを追加したときに、エージェントを起動できます。エージェントはコメントテキスト、ドキュメントコンテキスト、コメントスレッドを受け取り、スレッド内で応答したりドキュメントを編集したりできます。 要件:- Feishuアプリのイベントサブスクリプション設定で
drive.notice.comment_add_v1を購読する (既存のim.message.receive_v1とあわせて) - Driveツールはデフォルトで有効です。
channels.feishu.tools.drive: falseで無効化できます
feishu_driveツールは次のコメントアクションを公開します。
| アクション | 説明 |
|---|---|
list_comments | ドキュメント上のコメントを一覧表示 |
list_comment_replies | コメントスレッド内の返信を一覧表示 |
add_comment | 新しいトップレベルコメントを追加 |
reply_comment | 既存のコメントスレッドに返信 |
- コメントテキストと送信者
- ドキュメントメタデータ(タイトル、種類、URL)
- スレッド内返信のためのコメントスレッドコンテキスト
feishu_drive.reply_commentを使い、その後で重複送信を避けるために正確なサイレントトークンNO_REPLY / no_replyを出力するよう案内されます。
ランタイムアクションサーフェス
Feishuは現在、次のランタイムアクションを公開しています。sendreadeditthread-replypinlist-pinsunpinmember-infochannel-infochannel-list- リアクションが設定で有効な場合の
reactとreactions feishu_driveコメントアクション:list_comments、list_comment_replies、add_comment、reply_comment
関連
- Channels Overview — サポートされるすべてのチャンネル
- Pairing — DM認証とペアリングフロー
- Groups — グループチャットの挙動とメンション制御
- Channel Routing — メッセージのセッションルーティング
- Security — アクセスモデルとハードニング