Feishu ボット¶
Feishu (Lark) は、メッセージングやコラボレーションに企業が使用するチームチャットプラットフォームです。 Feishu(Lark)は、企業でメッセージングやコラボレーションに使用されるチームチャットプラットフォームです。このプラグインは、プラットフォームの WebSocket イベントサブスクリプションを使用して OpenClaw を Feishu/Lark ボットに接続し、公開 Webhook URL を公開することなくメッセージを受信できるようにします。
必要なプラグイン¶
Feishu プラグインをインストールします。
openclaw plugins install @openclaw/feishu
ローカルチェックアウト(git リポジトリから実行する場合):
openclaw plugins install ./extensions/feishu
クイックスタート¶
Feishu チャンネルを追加する方法は 2 つあります。
方法 1: オンボーディングウィザード(推奨)¶
OpenClaw をインストールしたばかりの場合は、ウィザードを実行します。
openclaw onboard
ウィザードが案内してくれます:
- Feishu アプリの作成と認証情報の取得
- OpenClaw へのアプリ認証情報の設定
- ゲートウェイの起動
✅ 設定後、ゲートウェイのステータスを確認します。
openclaw gateway statusopenclaw logs --follow
方法 2: CLI セットアップ¶
初期インストールをすでに完了している場合は、CLI からチャンネルを追加します。
openclaw channels add
Feishu を選択し、App ID と App Secret を入力します。
✅ 設定後、ゲートウェイを管理します。
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
❗ 重要: App Secret は厳重に管理してください。

4. 権限を設定する¶
Permissions で Batch import をクリックし、次を貼り付けます。
{
"scopes": {
"tenant": [
"aily:file:read",
"aily:file:write",
"application:application.app_message_stats.overview:readonly",
"application:application:self_manage",
"application:bot.menu:write",
"contact:user.employee_id:readonly",
"corehr:file:download",
"event:ip_list",
"im:chat.access_event.bot_p2p_chat:read",
"im:chat.members:bot_access",
"im:message",
"im:message.group_at_msg:readonly",
"im:message.p2p_msg:readonly",
"im:message:readonly",
"im:message:send_as_bot",
"im:resource"
],
"user": ["aily:file:read", "aily:file:write", "im:chat.access_event.bot_p2p_chat:read"]
}
}

5. ボット機能を有効化する¶
App Capability > Bot で次を行います。
- ボット機能を有効化します。
- ボット名を設定します。

6. イベントサブスクリプションを設定する¶
⚠️ 重要: イベントサブスクリプションを設定する前に、次を確認してください。
- Feishu 向けに
openclaw channels addをすでに実行していること - ゲートウェイが実行中であること(
openclaw gateway status)
Event Subscription で次を設定します。
- Use long connection to receive events(WebSocket)を選択します。
- イベント
im.message.receive_v1を追加します。
⚠️ ゲートウェイが起動していない場合、ロングコネクションの設定が保存に失敗することがあります。

7. アプリを公開する¶
- Version Management & Release でバージョンを作成します。
- レビューに提出して公開します。
- 管理者の承認を待ちます(エンタープライズアプリは通常自動承認されます)。
ステップ 2: OpenClaw の設定¶
ウィザードで設定する(推奨)¶
openclaw channels add
Feishu を選択し、App ID と App Secret を貼り付けます。
設定ファイルで設定する¶
~/.openclaw/openclaw.json を編集します。
{
channels: {
feishu: {
enabled: true,
dmPolicy: "pairing",
accounts: {
main: {
appId: "cli_xxx",
appSecret: "xxx",
botName: "My AI assistant",
},
},
},
},
}
環境変数で設定する¶
export FEISHU_APP_ID="cli_xxx"
export FEISHU_APP_SECRET="xxx"
Lark(グローバル)ドメイン¶
あなたのテナントが Lark (international) である場合は、ドメインを lark (またはフルドメイン文字列) に設定します。 テナントが Lark(国際版)の場合は、ドメインを lark(または完全なドメイン文字列)に設定します。これは channels.feishu.domain で設定するか、アカウントごと(channels.feishu.accounts.<id> .domain)に設定できます。.domain`).
{
channels: {
feishu: {
domain: "lark",
accounts: {
main: {
appId: "cli_xxx",
appSecret: "xxx",
},
},
},
},
}
ステップ 3: 起動とテスト¶
1. ゲートウェイを起動する¶
openclaw gateway
2. テストメッセージを送信する¶
Feishu でボットを見つけ、メッセージを送信します。
3. ペアリングを承認する¶
デフォルトでは、ボットはペアリングコードを返信します。次を実行して承認します。 承認:
openclaw pairing approve feishu <CODE>
承認後、通常どおりチャットできます。
概要¶
- Feishu ボットチャンネル: ゲートウェイによって管理される Feishu ボット
- 決定的ルーティング: 返信は常に Feishu に戻ります
- セッション分離: ダイレクトメッセージはメインセッションを共有し、グループは分離されます
- WebSocket 接続: Feishu SDK によるロングコネクションで、公開 URL は不要です
アクセス制御¶
ダイレクトメッセージ¶
-
デフォルト:
dmPolicy: "pairing"(不明なユーザーにはペアリングコードが発行されます) -
ペアリングを承認:
bash
openclaw pairing list feishu
openclaw pairing approve feishu <CODE>
- 許可リストモード: 許可された Open ID を
channels.feishu.allowFromに設定します
グループチャット¶
1. グループポリシー(channels.feishu.groupPolicy):
"open"= グループ内の全員を許可(デフォルト)"allowlist"=groupAllowFromのみ許可"disabled"= グループメッセージを無効化
2. メンション要件(channels.feishu.groups.<chat_id>.requireMention):
true= @メンション必須(デフォルト)false= メンションなしで応答
グループ設定の例¶
すべてのグループを許可し、@メンション必須(デフォルト)¶
{
channels: {
feishu: {
groupPolicy: "open",
// Default requireMention: true
},
},
}
すべてのグループを許可し、@メンション不要¶
{
channels: {
feishu: {
groups: {
oc_xxx: { requireMention: false },
},
},
},
}
グループ内で特定ユーザーのみ許可¶
{
channels: {
feishu: {
groupPolicy: "allowlist",
groupAllowFrom: ["ou_xxx", "ou_yyy"],
},
},
}
グループ / ユーザー ID の取得¶
グループ ID(chat_id)¶
グループ ID は oc_xxx のような形式です。
方法 1(推奨)
- ゲートウェイを起動し、グループ内でボットに @メンションします
openclaw logs --followを実行し、chat_idを確認します
方法 2
Feishu API デバッガーを使用してグループチャットを一覧表示します。
ユーザー ID(open_id)¶
ユーザー ID は ou_xxx のような形式です。
方法 1(推奨)
- ゲートウェイを起動し、ボットに DM を送信します
openclaw logs --followを実行し、open_idを確認します
方法 2
ペアリングリクエストからユーザーの Open ID を確認します。
openclaw pairing list feishu
一般的なコマンド¶
| Command | Description |
|---|---|
/status |
ボットのステータスを表示 |
/reset |
セッションをリセット |
/model |
モデルを表示 / 切り替え |
注記: Feishu は現時点でネイティブのコマンドメニューをサポートしていないため、コマンドはテキストとして送信する必要があります。
ゲートウェイ管理コマンド¶
| Command | Description |
|---|---|
openclaw gateway status |
ゲートウェイのステータスを表示 |
openclaw gateway install |
ゲートウェイサービスをインストール / 起動 |
openclaw gateway stop |
ゲートウェイサービスを停止 |
openclaw gateway restart |
ゲートウェイサービスを再起動 |
openclaw logs --follow |
ゲートウェイログを追跡 |
トラブルシューティング¶
グループチャットでボットが応答しない¶
- ボットがグループに追加されていることを確認します
- ボットに @メンションしていることを確認します(デフォルト動作)
groupPolicyが"disabled"に設定されていないことを確認します- ログを確認します:
openclaw logs --follow
ボットがメッセージを受信しない¶
- アプリが公開・承認されていることを確認します
- イベントサブスクリプションに
im.message.receive_v1が含まれていることを確認します - ロングコネクション が有効になっていることを確認します
- アプリの権限が完全であることを確認します
- ゲートウェイが実行中であることを確認します:
openclaw gateway status - ログを確認します:
openclaw logs --follow
App Secret の漏えい¶
- Feishu Open Platform で App Secret をリセットします
- 設定内の App Secret を更新します
- ゲートウェイを再起動します
メッセージ送信の失敗¶
- アプリに
im:message:send_as_botの権限があることを確認します - アプリが公開されていることを確認します
- 詳細なエラーについてログを確認します
高度な設定¶
複数アカウント¶
{
channels: {
feishu: {
accounts: {
main: {
appId: "cli_xxx",
appSecret: "xxx",
botName: "Primary bot",
},
backup: {
appId: "cli_yyy",
appSecret: "yyy",
botName: "Backup bot",
enabled: false,
},
},
},
},
}
メッセージ制限¶
textChunkLimit: 送信テキストのチャンクサイズ(デフォルト: 2000 文字)mediaMaxMb: メディアのアップロード / ダウンロード制限(デフォルト: 30MB)
ストリーミング¶
Feishu はインタラクティブカードによるストリーミング返信をサポートしています。有効にすると、テキスト生成に合わせてカードが更新されます。 有効にすると、ボットはテキストを生成する際にカードを更新します。
{
channels: {
feishu: {
streaming: true, // enable streaming card output (default true)
blockStreaming: true, // enable block-level streaming (default true)
},
},
}
完全な返信を生成してから送信する場合は、streaming: false を設定します。
マルチエージェントルーティング¶
bindings を使用して、Feishu の DM やグループを異なるエージェントにルーティングします。
{
agents: {
list: [
{ id: "main" },
{
id: "clawd-fan",
workspace: "/home/user/clawd-fan",
agentDir: "/home/user/.openclaw/agents/clawd-fan/agent",
},
{
id: "clawd-xi",
workspace: "/home/user/clawd-xi",
agentDir: "/home/user/.openclaw/agents/clawd-xi/agent",
},
],
},
bindings: [
{
agentId: "main",
match: {
channel: "feishu",
peer: { kind: "direct", id: "ou_xxx" },
},
},
{
agentId: "clawd-fan",
match: {
channel: "feishu",
peer: { kind: "direct", id: "ou_yyy" },
},
},
{
agentId: "clawd-xi",
match: {
channel: "feishu",
peer: { kind: "group", id: "oc_zzz" },
},
},
],
}
ルーティングフィールド:
match.channel:"feishu"match.peer.kind: "direct" または "group"match.peer.id: ユーザー Open ID(ou_xxx)またはグループ ID(oc_xxx)
取得方法のヒントについては、グループ / ユーザー ID の取得 を参照してください。
設定リファレンス¶
完全な設定: Gateway configuration
主なオプション:
| Setting | Description | Default |
|---|---|---|
channels.feishu.enabled |
チャンネルの有効 / 無効 | true |
channels.feishu.domain |
API ドメイン(feishu または lark) |
feishu |
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 |
グループポリシー | open |
channels.feishu.groupAllowFrom |
グループ許可リスト | - |
channels.feishu.groups.<chat_id>.requireMention |
@メンション必須 | true |
channels.feishu.groups.<chat_id>.enabled |
グループ有効化 | true |
channels.feishu.textChunkLimit |
メッセージチャンクサイズ | 2000 |
channels.feishu.mediaMaxMb |
メディアサイズ制限 | 30 |
channels.feishu.streaming |
ストリーミングカード出力を有効化 | true |
channels.feishu.blockStreaming |
ブロックストリーミングを有効化 | true |
dmPolicy リファレンス¶
| Value | Behavior |
|---|---|
"pairing" |
デフォルト。 不明なユーザーにはペアリングコードが発行され、承認が必要です |
"allowlist" |
allowFrom に含まれるユーザーのみチャット可能 |
"open" |
すべてのユーザーを許可(allowFrom に "*" が必要) |
"disabled" |
DM を無効化 |
対応メッセージタイプ¶
受信¶
- ✅ テキスト
- ✅ リッチテキスト(post)
- ✅ 画像
- ✅ ファイル
- ✅ 音声
- ✅ 動画
- ✅ スタンプ
送信¶
- ✅ テキスト
- ✅ 画像
- ✅ ファイル
- ✅ 音声
- ⚠️ リッチテキスト(部分対応)