dsh-feishu-bridge:把飛書機器人接入 DSH 的橋接插件

前言

DSH 插件體系允許把外部入口接入 Agent。對於希望在飛書或 Lark 中調用 DSH Agent 的場景,dsh-feishu-bridge 提供一個橋接:接收飛書機器人消息,轉發給 DSH Agent,並把回答、過程提示和控制命令回傳飛書。下面介紹它的定位、安裝配置和當前邊界。

這是什麼

dsh-feishu-bridge 是一個 Feishu / Lark ↔ DeepSeek Harness(DSH)橋接插件。維護者是 ailoushu666,許可證爲 MIT,package.json 版本爲 0.2.1。

它支持 feishu 和 lark 兩種 domain,可用於單聊和羣聊中的 Agent 調用。

核心功能

  • 使用飛書 WebSocket 長連接接收事件,無需公網 IP / 域名 / 內網穿透。
  • 同一個飛書聊天或話題複用同一個 DSH Session,保留上下文;話題各自獨立。
  • 回覆會關聯觸發消息,話題內的回覆留在原話題。
  • 默認只接收單聊和羣聊中 @機器人 的消息。
  • Agent 調用工具時回傳執行過程提示,中間回覆經節流隊列轉發。
  • 收到消息後先返回“正在處理 / 排隊中”回執;單輪超時自動停止並提示。
  • DSH 自主輪次結果會主動推回飛書。
  • Agent 選項問答可在飛書中通過編號、選項文字或自由文本回復。
  • 支持飛書命令:/reset、/compact、/workspace、/mode、/model、/effort、/stop、/feedback、/goal、/plan、/export、/session、/help。
  • 可配置 provider、model、reasoningEffort、workspace、agentPreset 等插件配置。
  • App Secret 與 App ID 分離存放,分別寫入 DSH 憑據文件和 profile 補丁。
  • 內部錯誤統一返回 errorMessage,不發送異常堆棧或敏感信息。
  • Session ID 用 SHA-256 摘要派生,不包含原始 chat_id / thread_id。

安裝與啓用

運行要求

  • Node.js ^22.19.0 或 >= 24
  • 已能運行 dsh web
  • 需要飛書企業自建應用,啓用機器人能力、長連接訂閱 im.message.receive_v1,並開通必要權限

安裝插件

先確認目標 DSH Profile,下面命令把插件安裝到 web profile。

從 GitHub 安裝:

npx @deepseek-ai/dsh plugin --profile web add git+https://github.com/ailoushu666/dsh-feishu-bridge.git

從本地目錄安裝:

npx @deepseek-ai/dsh plugin --profile web add "<本項目目錄>"

寫入憑據

把 FEISHU_APP_SECRET 寫入 DSH 憑據文件 ~/.dsh/.credentials.yaml:

FEISHU_APP_SECRET: <App Secret>

App Secret 只應放在 ~/.dsh/.credentials.yaml,不要落盤到項目目錄。

啓用配置

在 ~/.dsh/profiles/web/cordis.patch.yml 中啓用 id: feishu-bridge,並配置 appId、appSecretEnv、domain、requireMention、dmMode。

appId 和 appSecretEnv 爲必填;domain 支持 feishu 和 lark。示例配置如下:

- id: feishu-bridge
  config:
    appId: <App ID>
    appSecretEnv: FEISHU_APP_SECRET
    domain: feishu
    requireMention: true
    dmMode: open

不要使用 insert 再創建一個同名 feishu-bridge 實例。

啓動與驗證

運行下面命令啓動 DSH Web:

npx @deepseek-ai/dsh web

等待輸出中出現:

feishu-bridge: WebSocket connected

經過上面的步驟後,可以做基礎驗證:

  • 單聊直接發送問題。
  • 羣聊發送 @機器人 你的問題。
  • 發送 /help 查看命令。

典型用法

在飛書中可以直接發送以下命令:

  • /reset
  • /compact
  • /workspace <目錄絕對路徑>
  • /mode read|write|full
  • /model <模型名>
  • /effort off|high|max
  • /stop
  • /feedback
  • /goal [目標|clear|edit <目標>|pause|resume]
  • /plan [off|描述]
  • /export
  • /session [編號|完整ID]
  • /help

飛書權限

默認接收單聊、羣聊 @機器人 消息並回復時,需要以下權限:

im:message.p2p_msg:readonly
im:message.group_at_msg:readonly
im:message:send_as_bot

羣聊 /reset 要求管理員權限時,需要:

im:chat:readonly

事件訂閱使用 im.message.receive_v1。

注意與限制

  • 當前只處理文本消息,圖片、富文本、文件、卡片等未支持。
  • 回答爲一次性發送,非流式輸出;執行過程回傳工具調用開始和中間回覆,不回傳工具結果。
  • 過程消息、中間回覆、自主輪次結果和問題會發到羣聊根消息,話題內會話也不例外。
  • 沒有持久化 chatId → sessionId 映射;DSH 重啓後,已有飛書聊天會重建新 Session。
  • 一個飛書應用不要同時運行多個長連接消費者,否則事件會被隨機分發,導致消息丟失或異常。
  • 插件以當前 dsh 進程權限運行,安裝前應檢查源碼和 MIT 許可證。
  • 本文只覆蓋已覈實的說明,具體行爲以倉庫文檔和實際配置爲準。

鏈接

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜