飛書機器人
飛書(Lark)是企業用於即時通訊與協作的團隊聊天平台。這個外掛透過平台的 WebSocket 事件訂閱將 OpenClaw 連接到飛書/Lark 機器人,因此無需公開 webhook URL 就能接收訊息。
內建外掛
飛書已隨目前的 OpenClaw 版本一同打包,無需另外安裝外掛。
如果你使用的是較舊的版本或未包含飛書的自訂安裝,請手動安裝:
openclaw plugins install @openclaw/feishu
快速開始
有兩種方式新增飛書頻道:
方式 1:引導精靈(建議)
如果你剛安裝 OpenClaw,執行精靈:
openclaw onboard
精靈會引導你完成:
- 建立飛書應用程式並取得憑證
- 在 OpenClaw 中設定應用程式憑證
- 啟動閘道
設定完成後,檢查閘道狀態:
openclaw gateway statusopenclaw logs --follow
方式 2:CLI 設定
如果你已完成初始安裝,透過 CLI 新增頻道:
openclaw channels add
選擇飛書,然後輸入 App ID 和 App Secret。
設定完成後,管理閘道:
openclaw gateway statusopenclaw gateway restartopenclaw logs --follow
步驟 1:建立飛書應用程式
1. 開啟飛書開放平台
前往飛書開放平台並登入。
Lark(國際版)租戶應使用 https://open.larksuite.com/app,並在飛書設定中設定 domain: "lark"。
2. 建立應用程式
- 點擊建立企業自建應用
- 填寫應用程式名稱和描述
- 選擇應用程式圖示

3. 複製憑證
從憑證與基礎資訊中複製:
- App ID(格式:
cli_xxx) - App Secret
警告: 請保管好 App Secret。

4. 設定權限
在權限管理中,點擊批量匯入並貼上:
{
"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. 啟用機器人功能
在應用功能 > 機器人中:
- 啟用機器人功能
- 設定機器人名稱

6. 設定事件訂閱
警告: 在設定事件訂閱之前,請確保:
- 你已為飛書執行過
openclaw channels add - 閘道正在執行(
openclaw gateway status)
在事件訂閱中:
- 選擇使用長連線接收事件(WebSocket)
- 新增事件:
im.message.receive_v1
警告: 如果閘道未在執行,長連線設定可能無法儲存。

7. 發布應用程式
- 在版本管理與發布中建立版本
- 提交審核並發布
- 等待管理員核准(企業應用通常會自動核准)
步驟 2:設定 OpenClaw
透過精靈設定(建議)
openclaw channels add
選擇飛書並貼上你的 App ID + App Secret。
透過設定檔設定
編輯 ~/.openclaw/openclaw.json:
{
channels: {
feishu: {
enabled: true,
dmPolicy: "pairing",
accounts: {
main: {
appId: "cli_xxx",
appSecret: "xxx",
botName: "My AI assistant",
},
},
},
},
}
如果你使用 connectionMode: "webhook",請同時設定 verificationToken 和 encryptKey。飛書 webhook 伺服器預設綁定到 127.0.0.1;僅在你刻意需要不同的綁定位址時才設定 webhookHost。
驗證 Token 和加密金鑰(webhook 模式)
使用 webhook 模式時,請在設定中同時設定 channels.feishu.verificationToken 和 channels.feishu.encryptKey。取得這些值:
- 在飛書開放平台中開啟你的應用程式
- 前往開發配置 → 事件與回調
- 開啟加密策略標籤
- 複製驗證 Token 和加密金鑰
下方截圖顯示驗證 Token 的位置。加密金鑰列在同一個加密策略區段中。

透過環境變數設定
export FEISHU_APP_ID="cli_xxx"
export FEISHU_APP_SECRET="xxx"
Lark(國際版)網域
如果你的租戶在 Lark(國際版),將網域設定為 lark(或完整的網域字串)。你可以在 channels.feishu.domain 或每帳戶(channels.feishu.accounts.<id>.domain)設定。
{
channels: {
feishu: {
domain: "lark",
accounts: {
main: {
appId: "cli_xxx",
appSecret: "xxx",
},
},
},
},
}
配額最佳化旗標
你可以透過兩個選填旗標減少飛書 API 使用量:
typingIndicator(預設true):設為false時跳過輸入中回應呼叫。resolveSenderNames(預設true):設為false時跳過發送者個人資料查詢呼叫。
可在最上層或每帳戶設定:
{
channels: {
feishu: {
typingIndicator: false,
resolveSenderNames: false,
accounts: {
main: {
appId: "cli_xxx",
appSecret: "xxx",
typingIndicator: true,
resolveSenderNames: false,
},
},
},
},
}
步驟 3:啟動 + 測試
1. 啟動閘道
openclaw gateway
2. 傳送測試訊息
在飛書中找到你的機器人並傳送訊息。
3. 核准配對
預設情況下,機器人會回覆配對碼。核准它:
openclaw pairing approve feishu <CODE>
核准後就可以正常對話了。
概覽
- 飛書機器人頻道:由閘道管理的飛書機器人
- 確定性路由:回覆總是回到飛書
- 工作階段隔離:DM 共享主工作階段;群組隔離
- WebSocket 連線:透過飛書 SDK 的長連線,不需要公開 URL
存取控制
私訊
-
預設:
dmPolicy: "pairing"(未知使用者會收到配對碼) -
核准配對:
openclaw pairing list feishu openclaw pairing approve feishu <CODE> -
允許名單模式:在
channels.feishu.allowFrom中設定允許的 Open ID
群組聊天
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",
// Feishu group IDs (chat_id) look like: oc_xxx
groupAllowFrom: ["oc_xxx", "oc_yyy"],
},
},
}
限制群組中哪些發送者可以發訊息(發送者允許名單)
除了允許群組本身之外,該群組中的所有訊息都會依發送者 open_id 過濾:只有列在 groups.<chat_id>.allowFrom 中的使用者的訊息會被處理;其他成員的訊息會被忽略(這是完整的發送者級別過濾,不僅限於 /reset 或 /new 等控制指令)。
{
channels: {
feishu: {
groupPolicy: "allowlist",
groupAllowFrom: ["oc_xxx"],
groups: {
oc_xxx: {
// Feishu user IDs (open_id) look like: ou_xxx
allowFrom: ["ou_user1", "ou_user2"],
},
},
},
},
}
取得群組/使用者 ID
群組 ID(chat_id)
群組 ID 格式為 oc_xxx。
方式 1(建議)
- 啟動閘道,在群組中 @提及機器人
- 執行
openclaw logs --follow並找到chat_id
方式 2
使用飛書 API 偵錯工具列出群組聊天。
使用者 ID(open_id)
使用者 ID 格式為 ou_xxx。
方式 1(建議)
- 啟動閘道,向機器人傳送私訊
- 執行
openclaw logs --follow並找到open_id
方式 2
檢查配對請求以取得使用者 Open ID:
openclaw pairing list feishu
常用指令
| 指令 | 說明 |
|---|---|
/status | 顯示機器人狀態 |
/reset | 重設工作階段 |
/model | 顯示/切換模型 |
注意:飛書尚不支援原生指令選單,因此指令必須以文字方式傳送。
閘道管理指令
| 指令 | 說明 |
|---|---|
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 洩露
- 在飛書開放平台重設 App Secret
- 更新設定中的 App Secret
- 重啟閘道
訊息傳送失敗
- 確認應用程式有
im:message:send_as_bot權限 - 確認應用程式已發布
- 檢查記錄以取得詳細錯誤資訊
進階設定
多帳戶
{
channels: {
feishu: {
defaultAccount: "main",
accounts: {
main: {
appId: "cli_xxx",
appSecret: "xxx",
botName: "Primary bot",
},
backup: {
appId: "cli_yyy",
appSecret: "yyy",
botName: "Backup bot",
enabled: false,
},
},
},
},
}
defaultAccount 控制當傳出 API 未明確指定 accountId 時使用哪個飛書帳戶。
訊息限制
textChunkLimit:傳出文字分段大小(預設:2000 字元)mediaMaxMb:媒體上傳/下載限制(預設:30MB)
串流
飛書透過互動式卡片支援串流回覆。啟用後,機器人會在產生文字時更新卡片。
{
channels: {
feishu: {
streaming: true, // enable streaming card output (default true)
blockStreaming: true, // enable block-level streaming (default true)
},
},
}
設定 streaming: false 可在完整回覆完成後才傳送。
多代理路由
使用 bindings 將飛書 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 了解查詢方法。
設定參考
完整設定:閘道設定
重要選項:
| 設定 | 說明 | 預設 |
|---|---|---|
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 | 群組政策 | 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 參考
| 值 | 行為 |
|---|---|
"pairing" | 預設。 未知使用者收到配對碼;必須核准 |
"allowlist" | 只有 allowFrom 中的使用者可以對話 |
"open" | 允許所有使用者(需要 allowFrom 中包含 "*") |
"disabled" | 停用 DM |
支援的訊息類型
接收
- ✅ 文字
- ✅ 富文字(post)
- ✅ 圖片
- ✅ 檔案
- ✅ 音訊
- ✅ 影片
- ✅ 貼圖
傳送
- ✅ 文字
- ✅ 圖片
- ✅ 檔案
- ✅ 音訊
- ⚠️ 富文字(部分支援)