前言¶
DeepSeek Harness (DSH) 是一個基於插件架構的智能體開發框架。在開發或調試長流程任務時,通常需要在終端或桌面端操作。dsh-feishu 插件允許你通過飛書(Lark)手機客戶端直接驅動現有的 DSH 會話,查看任務進度、回答問題、處理審批以及下發指令。
該插件通過僅出站(Outbound-only)的 WebSocket 連接工作,無需在本地開放端口或建立隧道。所有憑證存儲在本地,所有者由 fan56 維護。
核心功能¶
該插件提供了一套完整的遠程交互機制,主要包含以下能力:
會話管理與控制¶
- 會話控制:
/new啓動一個繼承上一會話配置(工作目錄、模型、推理強度)的新會話;/stop隨時中止正在運行的任務;/btw在主任務運行時並行處理旁註問題。 - 會話恢復:
/resume提供交互式會話選擇器,支持通過下拉菜單或回覆數字索引快速恢復歷史會話。若遇到損壞的會話日誌,插件會提供“一鍵損壞日誌修復”功能,在保留備份的前提下重建日誌。 - 交互式選擇器:桌面端的
/model、/think、/permission、/select-skill和/profile-switch命令,在手機端會渲染爲可一鍵觸發的卡片選擇器。
實時可視化與反饋¶
- 實時圓形卡片:每個 LLM 的往返都會生成一張圓形卡片,每 5 秒刷新一次當前狀態(思考中、工具調用中、子代理運行中)。卡片底部會展示工具調用信息和正在生成的消息片段。
- 回覆嵌入:當一輪任務結束,回覆內容會直接嵌入到正在觀看的圓形卡片中(顯示爲
💬 Round 回覆),而非作爲獨立消息插入。長回覆仍會以獨立卡片發送。 - 快速操作:在卡片上提供 ⛔ 停止和 ▶️ 繼續 的一鍵操作,無需輸入命令。
飛書端特有功能¶
- 羣聊支持:機器人可被拉入飛書羣組,僅對允許列表內的成員可見。成員可通過 @機器人 下發指令,機器人主動驅動時無需再次提及。
- 圖片派發:在私聊中發送圖片,插件會自動下載、檢測媒體類型並作爲附件注入會話。
- 審批與提問:當會話需要審批(Approval)或調用
ask_user_question時,手機端會收到交互式卡片,支持下拉選擇、多選或文本輸入提交。 - 後臺推送:支持後臺推送(
backgroundPush)模式,當會話在非綁定手機上完成或子代理結算時,可通過 Cron 模式或 All 模式向手機發送完成通知(默認關閉,僅在配置開啓時工作)。
安裝與啓用¶
使用該插件前,請確保環境滿足要求。
環境要求¶
- DSH 版本 >= 0.2.0-rc.2(Alpha 行不再支持)。
- Node.js 版本 >= 22.19.0。
安裝插件¶
在終端執行以下命令將插件安裝到指定 Profile:
dsh plugin --profile <your-profile> add @aiwayds/dsh-feishu
配置憑證¶
安裝完成後,需要在飛書側進行配置。推薦在 DSH 桌面端運行 /feishu-onboard 命令。該命令會引導你通過掃碼創建飛書應用,並自動寫入憑證到 ~/.dsh/.credentials.yaml。
若使用現有應用,需手動配置 App ID 和 App Secret:
# ~/.dsh/.credentials.yaml
DSH_FEISHU_APP_ID: cli_xxxxxxxxxx
DSH_FEISHU_APP_SECRET: xxxxxxxxxxxxxxxx
權限配置¶
- 非管理員用戶使用時,必須在飛書側配置 Allowlist,否則機器人將無法響應。
- 需確保飛書應用具備機器人能力、長連接事件權限(
im.message.receive_v1等)及特定消息權限。
典型用法¶
以下是該插件支持的核心命令示例:
/new:在手機端啓動一個全新的會話,繼承當前會話的模型和目錄配置。/resume:彈出交互式卡片,選擇一個歷史會話繼續對話。/feishu-onboard:在桌面端運行,用於初始化或配置飛書應用的憑證。/stop:中止當前正在執行的任務。/btw:在當前任務運行時,發送旁註問題。
適用場景與注意¶
- 適用場景:適合需要在移動端監控長耗時任務、處理審批流、或利用手機快速回答模型提問的開發者。
- 連接模式:插件僅作爲出站客戶端,不提供內網穿透功能,需確保手機網絡環境正常。
- 安全性:憑證僅存儲在本地文件系統,請勿上傳至公共代碼倉庫。
- 生態關係:該插件屬於社區維護項目,目錄與 DeepSeek 或幻方無官方從屬關係。
結尾¶
dsh-feishu 通過飛書將 DSH 的控制權延伸至移動端,實現了會話管理的可視化與交互化。其通過出站 WebSocket 的設計降低了網絡配置門檻。更多細節可參考插件目錄或GitHub 倉庫。