chore(i18n): refresh ja-JP translations
This commit is contained in:
parent
fcf0ca4375
commit
c2876015cc
@ -1,306 +1,44 @@
|
||||
---
|
||||
read_when:
|
||||
- Feishu/Larkボットを接続したいとき
|
||||
- Feishuチャンネルを設定しているとき
|
||||
summary: Feishuボットの概要、機能、設定
|
||||
- Feishu/Larkボットを接続したい場合
|
||||
- Feishuチャンネルを設定しています
|
||||
summary: Feishuボットの概要、機能、および設定
|
||||
title: Feishu
|
||||
x-i18n:
|
||||
generated_at: "2026-04-05T12:35:53Z"
|
||||
generated_at: "2026-04-13T12:36:46Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 4e39b6dfe3a3aa4ebbdb992975e570e4f1b5e79f3b400a555fc373a0d1889952
|
||||
source_hash: 77fcf95a3fab534ed898bc157d76bf8bdfa8bf8a918d6af84c0db19890916c1a
|
||||
source_path: channels/feishu.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Feishuボット
|
||||
# Feishu / Lark
|
||||
|
||||
Feishu(Lark)は、企業でメッセージングやコラボレーションに使われるチームチャットプラットフォームです。このプラグインは、プラットフォームのWebSocketイベントサブスクリプションを使用してOpenClawをFeishu/Larkボットに接続し、公開Webhook URLを公開せずにメッセージを受信できるようにします。
|
||||
Feishu/Larkは、チームがチャット、ドキュメント共有、カレンダー管理を行い、共同で作業を進められるオールインワンのコラボレーションプラットフォームです。
|
||||
|
||||
---
|
||||
|
||||
## バンドル済みプラグイン
|
||||
|
||||
Feishuは現在のOpenClawリリースにバンドルされているため、別途プラグインをインストールする必要はありません。
|
||||
|
||||
バンドル済みFeishuを含まない古いビルドまたはカスタムインストールを使用している場合は、手動でインストールしてください。
|
||||
|
||||
```bash
|
||||
openclaw plugins install @openclaw/feishu
|
||||
```
|
||||
**ステータス:** ボットのDMとグループチャット向けに本番利用可能です。デフォルトのモードはWebSocketで、webhookモードは任意です。
|
||||
|
||||
---
|
||||
|
||||
## クイックスタート
|
||||
|
||||
Feishuチャンネルを追加する方法は2つあります。
|
||||
|
||||
### 方法1: オンボーディング(推奨)
|
||||
|
||||
OpenClawをインストールしたばかりなら、オンボーディングを実行します。
|
||||
|
||||
```bash
|
||||
openclaw onboard
|
||||
```
|
||||
|
||||
ウィザードでは次の手順を案内します。
|
||||
|
||||
1. Feishuアプリを作成し、認証情報を収集する
|
||||
2. OpenClawでアプリ認証情報を設定する
|
||||
3. Gatewayを起動する
|
||||
|
||||
✅ **設定後**、Gatewayステータスを確認します。
|
||||
|
||||
- `openclaw gateway status`
|
||||
- `openclaw logs --follow`
|
||||
|
||||
### 方法2: CLIセットアップ
|
||||
|
||||
初回インストールをすでに完了している場合は、CLI経由でチャンネルを追加します。
|
||||
|
||||
```bash
|
||||
openclaw channels add
|
||||
```
|
||||
|
||||
**Feishu**を選択し、App IDとApp Secretを入力します。
|
||||
|
||||
✅ **設定後**、Gatewayを管理します。
|
||||
|
||||
- `openclaw gateway status`
|
||||
- `openclaw gateway restart`
|
||||
- `openclaw logs --follow`
|
||||
|
||||
---
|
||||
|
||||
## ステップ1: Feishuアプリを作成する
|
||||
|
||||
### 1. Feishu Open Platformを開く
|
||||
|
||||
[Feishu Open Platform](https://open.feishu.cn/app)にアクセスしてサインインします。
|
||||
|
||||
Lark(グローバル)テナントは[https://open.larksuite.com/app](https://open.larksuite.com/app)を使用し、Feishu設定で`domain: "lark"`を設定してください。
|
||||
|
||||
### 2. アプリを作成する
|
||||
|
||||
1. **Create enterprise app**をクリックします
|
||||
2. アプリ名と説明を入力します
|
||||
3. アプリアイコンを選択します
|
||||
|
||||

|
||||
|
||||
### 3. 認証情報をコピーする
|
||||
|
||||
**Credentials & Basic Info**から、次をコピーします。
|
||||
|
||||
- **App ID**(形式: `cli_xxx`)
|
||||
- **App Secret**
|
||||
|
||||
❗ **重要:** App Secretは非公開にしてください。
|
||||
|
||||

|
||||
|
||||
### 4. 権限を設定する
|
||||
|
||||
**Permissions**で**Batch import**をクリックし、以下を貼り付けます。
|
||||
|
||||
```json
|
||||
{
|
||||
"scopes": {
|
||||
"tenant": [
|
||||
"aily:file:read",
|
||||
"aily:file:write",
|
||||
"application:application.app_message_stats.overview:readonly",
|
||||
"application:application:self_manage",
|
||||
"application:bot.menu:write",
|
||||
"cardkit:card:read",
|
||||
"cardkit:card: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**で次を行います。
|
||||
|
||||
1. ボット機能を有効にする
|
||||
2. ボット名を設定する
|
||||
|
||||

|
||||
|
||||
### 6. イベントサブスクリプションを設定する
|
||||
|
||||
⚠️ **重要:** イベントサブスクリプションを設定する前に、以下を確認してください。
|
||||
|
||||
1. Feishuに対してすでに`openclaw channels add`を実行している
|
||||
2. Gatewayが実行中である(`openclaw gateway status`)
|
||||
|
||||
**Event Subscription**で次を行います。
|
||||
|
||||
1. **Use long connection to receive events**(WebSocket)を選択する
|
||||
2. イベント`im.message.receive_v1`を追加する
|
||||
3. (任意)Driveコメントワークフロー用に、`drive.notice.comment_add_v1`も追加する
|
||||
|
||||
⚠️ Gatewayが実行されていない場合、長期接続の設定は保存に失敗する可能性があります。
|
||||
|
||||

|
||||
|
||||
### 7. アプリを公開する
|
||||
|
||||
1. **Version Management & Release**でバージョンを作成する
|
||||
2. 審査に提出して公開する
|
||||
3. 管理者の承認を待つ(通常、企業アプリは自動承認されます)
|
||||
|
||||
---
|
||||
|
||||
## ステップ2: OpenClawを設定する
|
||||
|
||||
### ウィザードで設定する(推奨)
|
||||
|
||||
```bash
|
||||
openclaw channels add
|
||||
```
|
||||
|
||||
**Feishu**を選択し、App IDとApp Secretを貼り付けます。
|
||||
|
||||
### 設定ファイルで設定する
|
||||
|
||||
`~/.openclaw/openclaw.json`を編集します。
|
||||
|
||||
```json5
|
||||
{
|
||||
channels: {
|
||||
feishu: {
|
||||
enabled: true,
|
||||
dmPolicy: "pairing",
|
||||
accounts: {
|
||||
main: {
|
||||
appId: "cli_xxx",
|
||||
appSecret: "xxx",
|
||||
name: "My AI assistant",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
`connectionMode: "webhook"`を使用する場合は、`verificationToken`と`encryptKey`の両方を設定してください。Feishu webhookサーバーはデフォルトで`127.0.0.1`にバインドされます。別のバインドアドレスが意図的に必要な場合にのみ`webhookHost`を設定してください。
|
||||
|
||||
#### Verification TokenとEncrypt Key(webhookモード)
|
||||
|
||||
webhookモードを使用する場合は、設定で`channels.feishu.verificationToken`と`channels.feishu.encryptKey`の両方を設定してください。値を取得するには、次の手順を実行します。
|
||||
|
||||
1. Feishu Open Platformでアプリを開く
|
||||
2. **Development** → **Events & Callbacks**(开发配置 → 事件与回调)に移動する
|
||||
3. **Encryption**タブ(加密策略)を開く
|
||||
4. **Verification Token**と**Encrypt Key**をコピーする
|
||||
|
||||
以下のスクリーンショットは、**Verification Token**の場所を示しています。**Encrypt Key**は同じ**Encryption**セクションに表示されます。
|
||||
|
||||

|
||||
|
||||
### 環境変数で設定する
|
||||
|
||||
```bash
|
||||
export FEISHU_APP_ID="cli_xxx"
|
||||
export FEISHU_APP_SECRET="xxx"
|
||||
```
|
||||
|
||||
### Lark(グローバル)ドメイン
|
||||
|
||||
テナントがLark(国際版)上にある場合は、ドメインを`lark`(または完全なドメイン文字列)に設定してください。`channels.feishu.domain`またはアカウントごと(`channels.feishu.accounts.<id>.domain`)に設定できます。
|
||||
|
||||
```json5
|
||||
{
|
||||
channels: {
|
||||
feishu: {
|
||||
domain: "lark",
|
||||
accounts: {
|
||||
main: {
|
||||
appId: "cli_xxx",
|
||||
appSecret: "xxx",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
### クォータ最適化フラグ
|
||||
|
||||
2つの任意フラグでFeishu APIの使用量を減らせます。
|
||||
|
||||
- `typingIndicator`(デフォルト`true`): `false`の場合、入力中リアクションの呼び出しをスキップします。
|
||||
- `resolveSenderNames`(デフォルト`true`): `false`の場合、送信者プロファイル参照の呼び出しをスキップします。
|
||||
|
||||
トップレベルまたはアカウントごとに設定します。
|
||||
|
||||
```json5
|
||||
{
|
||||
channels: {
|
||||
feishu: {
|
||||
typingIndicator: false,
|
||||
resolveSenderNames: false,
|
||||
accounts: {
|
||||
main: {
|
||||
appId: "cli_xxx",
|
||||
appSecret: "xxx",
|
||||
typingIndicator: true,
|
||||
resolveSenderNames: false,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ステップ3: 起動してテストする
|
||||
|
||||
### 1. Gatewayを起動する
|
||||
|
||||
```bash
|
||||
openclaw gateway
|
||||
```
|
||||
|
||||
### 2. テストメッセージを送信する
|
||||
|
||||
Feishuでボットを見つけてメッセージを送信します。
|
||||
|
||||
### 3. ペアリングを承認する
|
||||
|
||||
デフォルトでは、ボットはペアリングコードを返信します。次のように承認してください。
|
||||
|
||||
```bash
|
||||
openclaw pairing approve feishu <CODE>
|
||||
```
|
||||
|
||||
承認後は通常どおりチャットできます。
|
||||
|
||||
---
|
||||
|
||||
## 概要
|
||||
|
||||
- **Feishuボットチャンネル**: Gatewayによって管理されるFeishuボット
|
||||
- **決定論的ルーティング**: 返信は常にFeishuに戻る
|
||||
- **セッション分離**: DMはメインセッションを共有し、グループは分離される
|
||||
- **WebSocket接続**: Feishu SDKによる長期接続で、公開URLは不要
|
||||
> **OpenClaw 2026.4.10 以降が必要です。** 確認するには `openclaw --version` を実行してください。アップグレードするには `openclaw update` を実行します。
|
||||
|
||||
<Steps>
|
||||
<Step title="チャンネル設定ウィザードを実行する">
|
||||
```bash
|
||||
openclaw channels login --channel feishu
|
||||
```
|
||||
Feishu/LarkモバイルアプリでQRコードをスキャンすると、Feishu/Larkボットが自動的に作成されます。
|
||||
</Step>
|
||||
|
||||
<Step title="設定完了後、変更を適用するためにGatewayを再起動する">
|
||||
```bash
|
||||
openclaw gateway restart
|
||||
```
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
---
|
||||
|
||||
@ -308,38 +46,43 @@ openclaw pairing approve feishu <CODE>
|
||||
|
||||
### ダイレクトメッセージ
|
||||
|
||||
- **デフォルト**: `dmPolicy: "pairing"`(不明なユーザーにはペアリングコードを返す)
|
||||
- **ペアリングを承認する**:
|
||||
ボットにDMを送信できるユーザーを制御するには、`dmPolicy` を設定します。
|
||||
|
||||
```bash
|
||||
openclaw pairing list feishu
|
||||
openclaw pairing approve feishu <CODE>
|
||||
```
|
||||
- `"pairing"` — 不明なユーザーにはペアリングコードが送られます。CLI経由で承認してください
|
||||
- `"allowlist"` — `allowFrom` に記載されたユーザーのみがチャットできます(デフォルト: ボット所有者のみ)
|
||||
- `"open"` — すべてのユーザーを許可します
|
||||
- `"disabled"` — すべてのDMを無効にします
|
||||
|
||||
- **許可リストモード**: 許可されたOpen IDで`channels.feishu.allowFrom`を設定する
|
||||
**ペアリングリクエストを承認するには:**
|
||||
|
||||
```bash
|
||||
openclaw pairing list feishu
|
||||
openclaw pairing approve feishu <CODE>
|
||||
```
|
||||
|
||||
### グループチャット
|
||||
|
||||
**1. グループポリシー**(`channels.feishu.groupPolicy`):
|
||||
**グループポリシー** (`channels.feishu.groupPolicy`):
|
||||
|
||||
- `"open"` = グループ内の全員を許可
|
||||
- `"allowlist"` = `groupAllowFrom`のみ許可
|
||||
- `"disabled"` = グループメッセージを無効化
|
||||
| 値 | 動作 |
|
||||
| ------------- | ------------------------------------------ |
|
||||
| `"open"` | グループ内のすべてのメッセージに応答します |
|
||||
| `"allowlist"` | `groupAllowFrom` 内のグループにのみ応答します |
|
||||
| `"disabled"` | すべてのグループメッセージを無効にします |
|
||||
|
||||
デフォルト: `allowlist`
|
||||
|
||||
**2. メンション要件**(`channels.feishu.requireMention`、`channels.feishu.groups.<chat_id>.requireMention`で上書き可能):
|
||||
**メンション必須** (`channels.feishu.requireMention`):
|
||||
|
||||
- 明示的に`true` = @mentionが必要
|
||||
- 明示的に`false` = メンションなしで応答
|
||||
- 未設定かつ`groupPolicy: "open"`の場合 = デフォルトで`false`
|
||||
- 未設定かつ`groupPolicy`が`"open"`でない場合 = デフォルトで`true`
|
||||
- `true` — @メンションを必須にします(デフォルト)
|
||||
- `false` — @メンションなしで応答します
|
||||
- グループごとの上書き: `channels.feishu.groups.<chat_id>.requireMention`
|
||||
|
||||
---
|
||||
|
||||
## グループ設定例
|
||||
## グループ設定の例
|
||||
|
||||
### すべてのグループを許可し、@mention不要にする(openグループのデフォルト)
|
||||
### すべてのグループを許可し、@メンションを不要にする
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -351,7 +94,7 @@ openclaw pairing approve feishu <CODE>
|
||||
}
|
||||
```
|
||||
|
||||
### すべてのグループを許可するが、引き続き@mentionを必須にする
|
||||
### すべてのグループを許可し、@メンションは引き続き必須にする
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -371,16 +114,14 @@ openclaw pairing approve feishu <CODE>
|
||||
channels: {
|
||||
feishu: {
|
||||
groupPolicy: "allowlist",
|
||||
// FeishuのグループID(chat_id)は oc_xxx のようになります
|
||||
// グループIDの形式: oc_xxx
|
||||
groupAllowFrom: ["oc_xxx", "oc_yyy"],
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
### グループ内でメッセージを送れる送信者を制限する(送信者許可リスト)
|
||||
|
||||
グループ自体を許可することに加えて、そのグループ内の**すべてのメッセージ**は送信者のopen_idによって制御されます。`groups.<chat_id>.allowFrom`に列挙されたユーザーだけがメッセージを処理され、他のメンバーからのメッセージは無視されます(これは`/reset`や`/new`のような制御コマンドだけでなく、送信者レベル全体の制御です)。
|
||||
### グループ内の送信者を制限する
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -390,7 +131,7 @@ openclaw pairing approve feishu <CODE>
|
||||
groupAllowFrom: ["oc_xxx"],
|
||||
groups: {
|
||||
oc_xxx: {
|
||||
// FeishuのユーザーID(open_id)は ou_xxx のようになります
|
||||
// ユーザーのopen_idの形式: ou_xxx
|
||||
allowFrom: ["ou_user1", "ou_user2"],
|
||||
},
|
||||
},
|
||||
@ -401,35 +142,23 @@ openclaw pairing approve feishu <CODE>
|
||||
|
||||
---
|
||||
|
||||
<a id="get-groupuser-ids"></a>
|
||||
## グループID/ユーザーIDを取得する
|
||||
|
||||
## グループ/ユーザーIDを取得する
|
||||
### グループID (`chat_id`, 形式: `oc_xxx`)
|
||||
|
||||
### グループID(chat_id)
|
||||
Feishu/Larkでグループを開き、右上のメニューアイコンをクリックして **Settings** に進みます。設定ページにグループID (`chat_id`) が表示されます。
|
||||
|
||||
グループIDは`oc_xxx`のようになります。
|
||||

|
||||
|
||||
**方法1(推奨)**
|
||||
### ユーザーID (`open_id`, 形式: `ou_xxx`)
|
||||
|
||||
1. Gatewayを起動し、グループ内でボットに@mentionする
|
||||
2. `openclaw logs --follow`を実行し、`chat_id`を探す
|
||||
Gatewayを起動し、ボットにDMを送信してから、ログを確認します。
|
||||
|
||||
**方法2**
|
||||
```bash
|
||||
openclaw logs --follow
|
||||
```
|
||||
|
||||
Feishu APIデバッガーを使ってグループチャットを一覧表示します。
|
||||
|
||||
### ユーザーID(open_id)
|
||||
|
||||
ユーザーIDは`ou_xxx`のようになります。
|
||||
|
||||
**方法1(推奨)**
|
||||
|
||||
1. Gatewayを起動し、ボットにDMする
|
||||
2. `openclaw logs --follow`を実行し、`open_id`を探す
|
||||
|
||||
**方法2**
|
||||
|
||||
ペアリング要求でユーザーOpen IDを確認します。
|
||||
ログ出力内の `open_id` を探してください。保留中のペアリングリクエストを確認することもできます。
|
||||
|
||||
```bash
|
||||
openclaw pairing list feishu
|
||||
@ -440,22 +169,12 @@ openclaw pairing list feishu
|
||||
## よく使うコマンド
|
||||
|
||||
| コマンド | 説明 |
|
||||
| --------- | ----------------- |
|
||||
| `/status` | ボットのステータスを表示 |
|
||||
| `/reset` | セッションをリセット |
|
||||
| `/model` | モデルを表示/切り替え |
|
||||
| --------- | --------------------------- |
|
||||
| `/status` | ボットのステータスを表示します |
|
||||
| `/reset` | 現在のセッションをリセットします |
|
||||
| `/model` | AIモデルを表示または切り替えます |
|
||||
|
||||
> 注: Feishuはまだネイティブのコマンドメニューをサポートしていないため、コマンドはテキストとして送信する必要があります。
|
||||
|
||||
## Gateway管理コマンド
|
||||
|
||||
| コマンド | 説明 |
|
||||
| -------------------------- | ----------------------------- |
|
||||
| `openclaw gateway status` | Gatewayステータスを表示 |
|
||||
| `openclaw gateway install` | Gatewayサービスをインストール/起動 |
|
||||
| `openclaw gateway stop` | Gatewayサービスを停止 |
|
||||
| `openclaw gateway restart` | Gatewayサービスを再起動 |
|
||||
| `openclaw logs --follow` | Gatewayログを追跡 |
|
||||
> Feishu/Larkはネイティブのスラッシュコマンドメニューをサポートしていないため、これらは通常のテキストメッセージとして送信してください。
|
||||
|
||||
---
|
||||
|
||||
@ -463,31 +182,25 @@ openclaw pairing list feishu
|
||||
|
||||
### グループチャットでボットが応答しない
|
||||
|
||||
1. ボットがグループに追加されていることを確認する
|
||||
2. ボットに@mentionしていることを確認する(デフォルト動作)
|
||||
3. `groupPolicy`が`"disabled"`に設定されていないことを確認する
|
||||
4. ログを確認する: `openclaw logs --follow`
|
||||
1. ボットがグループに追加されていることを確認します
|
||||
2. ボットを@メンションしていることを確認します(デフォルトで必須です)
|
||||
3. `groupPolicy` が `"disabled"` ではないことを確認します
|
||||
4. ログを確認します: `openclaw logs --follow`
|
||||
|
||||
### ボットがメッセージを受信しない
|
||||
|
||||
1. アプリが公開され、承認されていることを確認する
|
||||
2. イベントサブスクリプションに`im.message.receive_v1`が含まれていることを確認する
|
||||
3. **long connection**が有効になっていることを確認する
|
||||
4. アプリ権限が完全であることを確認する
|
||||
5. Gatewayが実行中であることを確認する: `openclaw gateway status`
|
||||
6. ログを確認する: `openclaw logs --follow`
|
||||
1. ボットがFeishu Open Platform / Lark Developerで公開および承認されていることを確認します
|
||||
2. イベント購読に `im.message.receive_v1` が含まれていることを確認します
|
||||
3. **persistent connection**(WebSocket)が選択されていることを確認します
|
||||
4. 必要な権限スコープがすべて付与されていることを確認します
|
||||
5. Gatewayが実行中であることを確認します: `openclaw gateway status`
|
||||
6. ログを確認します: `openclaw logs --follow`
|
||||
|
||||
### App Secretの漏えい
|
||||
### App Secretが漏洩した
|
||||
|
||||
1. Feishu Open PlatformでApp Secretをリセットする
|
||||
2. 設定内のApp Secretを更新する
|
||||
3. Gatewayを再起動する
|
||||
|
||||
### メッセージ送信失敗
|
||||
|
||||
1. アプリに`im:message:send_as_bot`権限があることを確認する
|
||||
2. アプリが公開されていることを確認する
|
||||
3. 詳細なエラーについてログを確認する
|
||||
1. Feishu Open Platform / Lark DeveloperでApp Secretをリセットします
|
||||
2. 設定内の値を更新します
|
||||
3. Gatewayを再起動します: `openclaw gateway restart`
|
||||
|
||||
---
|
||||
|
||||
@ -518,43 +231,54 @@ openclaw pairing list feishu
|
||||
}
|
||||
```
|
||||
|
||||
`defaultAccount`は、送信APIが`accountId`を明示的に指定しない場合に、どのFeishuアカウントを使うかを制御します。
|
||||
`defaultAccount` は、送信APIで `accountId` が指定されていない場合にどのアカウントを使用するかを制御します。
|
||||
|
||||
### メッセージ制限
|
||||
|
||||
- `textChunkLimit`: 送信テキストのチャンクサイズ(デフォルト: 2000文字)
|
||||
- `mediaMaxMb`: メディアのアップロード/ダウンロード制限(デフォルト: 30MB)
|
||||
- `textChunkLimit` — 送信テキストのチャンクサイズ(デフォルト: `2000` 文字)
|
||||
- `mediaMaxMb` — メディアのアップロード/ダウンロード制限(デフォルト: `30` MB)
|
||||
|
||||
### ストリーミング
|
||||
|
||||
Feishuは、インタラクティブカードによるストリーミング返信をサポートしています。有効にすると、ボットはテキスト生成中にカードを更新します。
|
||||
Feishu/Larkはインタラクティブカードによるストリーミング返信をサポートしています。有効にすると、ボットはテキスト生成中にカードをリアルタイムで更新します。
|
||||
|
||||
```json5
|
||||
{
|
||||
channels: {
|
||||
feishu: {
|
||||
streaming: true, // ストリーミングカード出力を有効化(デフォルト true)
|
||||
blockStreaming: true, // ブロックレベルストリーミングを有効化(デフォルト true)
|
||||
streaming: true, // ストリーミングカード出力を有効にする(デフォルト: true)
|
||||
blockStreaming: true, // ブロック単位のストリーミングを有効にする(デフォルト: true)
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
`streaming: false`に設定すると、全文の返信が完成するまで待ってから送信します。
|
||||
`streaming: false` を設定すると、返信全体を1つのメッセージとして送信します。
|
||||
|
||||
### クォータ最適化
|
||||
|
||||
2つの任意フラグを使ってFeishu/Lark API呼び出し回数を減らせます。
|
||||
|
||||
- `typingIndicator`(デフォルト `true`): `false` に設定すると入力中リアクションの呼び出しをスキップします
|
||||
- `resolveSenderNames`(デフォルト `true`): `false` に設定すると送信者プロフィールの参照をスキップします
|
||||
|
||||
```json5
|
||||
{
|
||||
channels: {
|
||||
feishu: {
|
||||
typingIndicator: false,
|
||||
resolveSenderNames: false,
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
### ACPセッション
|
||||
|
||||
Feishuは以下に対してACPをサポートしています。
|
||||
|
||||
- DM
|
||||
- グループのトピック会話
|
||||
|
||||
Feishu ACPはテキストコマンド駆動です。ネイティブのスラッシュコマンドメニューはないため、会話内で直接`/acp ...`メッセージを使用してください。
|
||||
Feishu/LarkはDMとグループスレッドメッセージでACPをサポートしています。Feishu/Lark ACPはテキストコマンド駆動で、ネイティブのスラッシュコマンドメニューはないため、会話内で `/acp ...` メッセージを直接使用してください。
|
||||
|
||||
#### 永続的なACPバインディング
|
||||
|
||||
トップレベルの型付きACPバインディングを使って、FeishuのDMまたはトピック会話を永続的なACPセッションに固定します。
|
||||
|
||||
```json5
|
||||
{
|
||||
agents: {
|
||||
@ -597,58 +321,39 @@ Feishu ACPはテキストコマンド駆動です。ネイティブのスラッ
|
||||
}
|
||||
```
|
||||
|
||||
#### チャットからスレッドに紐づくACPを起動する
|
||||
#### チャットからACPを起動する
|
||||
|
||||
FeishuのDMまたはトピック会話では、その場でACPセッションを起動してバインドできます。
|
||||
Feishu/LarkのDMまたはスレッド内で:
|
||||
|
||||
```text
|
||||
/acp spawn codex --thread here
|
||||
```
|
||||
|
||||
注:
|
||||
|
||||
- `--thread here`はDMとFeishuトピックで動作します。
|
||||
- バインドされたDM/トピック内の後続メッセージは、そのACPセッションへ直接ルーティングされます。
|
||||
- v1では、一般的な非トピックのグループチャットは対象にしていません。
|
||||
`--thread here` はDMとFeishu/Larkのスレッドメッセージで機能します。以降、そのバインドされた会話内のメッセージはそのACPセッションに直接ルーティングされます。
|
||||
|
||||
### マルチエージェントルーティング
|
||||
|
||||
`bindings`を使用して、FeishuのDMまたはグループを別々のエージェントへルーティングします。
|
||||
`bindings` を使用して、Feishu/LarkのDMまたはグループを異なるエージェントにルーティングします。
|
||||
|
||||
```json5
|
||||
{
|
||||
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",
|
||||
},
|
||||
{ id: "agent-a", workspace: "/home/user/agent-a" },
|
||||
{ id: "agent-b", workspace: "/home/user/agent-b" },
|
||||
],
|
||||
},
|
||||
bindings: [
|
||||
{
|
||||
agentId: "main",
|
||||
agentId: "agent-a",
|
||||
match: {
|
||||
channel: "feishu",
|
||||
peer: { kind: "direct", id: "ou_xxx" },
|
||||
},
|
||||
},
|
||||
{
|
||||
agentId: "clawd-fan",
|
||||
match: {
|
||||
channel: "feishu",
|
||||
peer: { kind: "direct", id: "ou_yyy" },
|
||||
},
|
||||
},
|
||||
{
|
||||
agentId: "clawd-xi",
|
||||
agentId: "agent-b",
|
||||
match: {
|
||||
channel: "feishu",
|
||||
peer: { kind: "group", id: "oc_zzz" },
|
||||
@ -658,58 +363,47 @@ FeishuのDMまたはトピック会話では、その場でACPセッションを
|
||||
}
|
||||
```
|
||||
|
||||
ルーティングフィールド:
|
||||
ルーティング項目:
|
||||
|
||||
- `match.channel`: `"feishu"`
|
||||
- `match.peer.kind`: `"direct"`または`"group"`
|
||||
- `match.peer.kind`: `"direct"`(DM)または `"group"`(グループチャット)
|
||||
- `match.peer.id`: ユーザーOpen ID(`ou_xxx`)またはグループID(`oc_xxx`)
|
||||
|
||||
参照方法については、[グループ/ユーザーIDを取得する](#get-groupuser-ids)を参照してください。
|
||||
取得方法のヒントは [グループID/ユーザーIDを取得する](#get-groupuser-ids) を参照してください。
|
||||
|
||||
---
|
||||
|
||||
## 設定リファレンス
|
||||
|
||||
完全な設定: [Gateway configuration](/gateway/configuration)
|
||||
|
||||
主なオプション:
|
||||
完全な設定: [Gateway configuration](/ja-JP/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を無効化 |
|
||||
| ------------------------------------------------- | ------------------------------------------ | ---------------- |
|
||||
| `channels.feishu.enabled` | チャンネルを有効/無効にします | `true` |
|
||||
| `channels.feishu.domain` | APIドメイン(`feishu` または `lark`) | `feishu` |
|
||||
| `channels.feishu.connectionMode` | イベント転送方式(`websocket` または `webhook`) | `websocket` |
|
||||
| `channels.feishu.defaultAccount` | 送信ルーティング用のデフォルトアカウント | `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` | アカウントごとのドメイン上書き | `feishu` |
|
||||
| `channels.feishu.dmPolicy` | DMポリシー | `allowlist` |
|
||||
| `channels.feishu.allowFrom` | DM許可リスト(open_id一覧) | [BotOwnerId] |
|
||||
| `channels.feishu.groupPolicy` | グループポリシー | `allowlist` |
|
||||
| `channels.feishu.groupAllowFrom` | グループ許可リスト | — |
|
||||
| `channels.feishu.requireMention` | グループで@メンションを必須にします | `true` |
|
||||
| `channels.feishu.groups.<chat_id>.requireMention` | グループごとの@メンション上書き | 継承 |
|
||||
| `channels.feishu.groups.<chat_id>.enabled` | 特定のグループを有効/無効にします | `true` |
|
||||
| `channels.feishu.textChunkLimit` | メッセージチャンクサイズ | `2000` |
|
||||
| `channels.feishu.mediaMaxMb` | メディアサイズ上限 | `30` |
|
||||
| `channels.feishu.streaming` | ストリーミングカード出力 | `true` |
|
||||
| `channels.feishu.blockStreaming` | ブロック単位のストリーミング | `true` |
|
||||
| `channels.feishu.typingIndicator` | 入力中リアクションを送信します | `true` |
|
||||
| `channels.feishu.resolveSenderNames` | 送信者の表示名を解決します | `true` |
|
||||
|
||||
---
|
||||
|
||||
@ -723,7 +417,7 @@ FeishuのDMまたはトピック会話では、その場でACPセッションを
|
||||
- ✅ ファイル
|
||||
- ✅ 音声
|
||||
- ✅ 動画/メディア
|
||||
- ✅ ステッカー
|
||||
- ✅ スタンプ
|
||||
|
||||
### 送信
|
||||
|
||||
@ -732,63 +426,21 @@ FeishuのDMまたはトピック会話では、その場でACPセッションを
|
||||
- ✅ ファイル
|
||||
- ✅ 音声
|
||||
- ✅ 動画/メディア
|
||||
- ✅ インタラクティブカード
|
||||
- ⚠️ リッチテキスト(post形式の書式設定とカード。任意のFeishuオーサリング機能ではありません)
|
||||
- ✅ インタラクティブカード(ストリーミング更新を含む)
|
||||
- ⚠️ リッチテキスト(post形式のフォーマット。Feishu/Larkの完全な作成機能には対応していません)
|
||||
|
||||
### スレッドと返信
|
||||
|
||||
- ✅ インライン返信
|
||||
- ✅ 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` | 既存のコメントスレッドに返信 |
|
||||
|
||||
エージェントがDriveコメントイベントを処理するとき、次を受け取ります。
|
||||
|
||||
- コメントテキストと送信者
|
||||
- ドキュメントメタデータ(タイトル、種類、URL)
|
||||
- スレッド内返信のためのコメントスレッドコンテキスト
|
||||
|
||||
ドキュメント編集後、エージェントにはコメント投稿者へ通知するために`feishu_drive.reply_comment`を使い、その後で重複送信を避けるために正確なサイレントトークン`NO_REPLY` / `no_reply`を出力するよう案内されます。
|
||||
|
||||
## ランタイムアクションサーフェス
|
||||
|
||||
Feishuは現在、次のランタイムアクションを公開しています。
|
||||
|
||||
- `send`
|
||||
- `read`
|
||||
- `edit`
|
||||
- `thread-reply`
|
||||
- `pin`
|
||||
- `list-pins`
|
||||
- `unpin`
|
||||
- `member-info`
|
||||
- `channel-info`
|
||||
- `channel-list`
|
||||
- リアクションが設定で有効な場合の`react`と`reactions`
|
||||
- `feishu_drive`コメントアクション: `list_comments`、`list_comment_replies`、`add_comment`、`reply_comment`
|
||||
---
|
||||
|
||||
## 関連
|
||||
|
||||
- [Channels Overview](/channels) — サポートされるすべてのチャンネル
|
||||
- [Pairing](/channels/pairing) — DM認証とペアリングフロー
|
||||
- [Groups](/channels/groups) — グループチャットの挙動とメンション制御
|
||||
- [Channel Routing](/channels/channel-routing) — メッセージのセッションルーティング
|
||||
- [Security](/gateway/security) — アクセスモデルとハードニング
|
||||
- [チャンネル概要](/ja-JP/channels) — サポートされているすべてのチャンネル
|
||||
- [ペアリング](/ja-JP/channels/pairing) — DM認証とペアリングフロー
|
||||
- [グループ](/ja-JP/channels/groups) — グループチャットの動作とメンションゲート
|
||||
- [チャンネルルーティング](/ja-JP/channels/channel-routing) — メッセージのセッションルーティング
|
||||
- [セキュリティ](/ja-JP/gateway/security) — アクセスモデルとハードニング
|
||||
|
||||
Loading…
Reference in New Issue
Block a user