前言¶
用 DeepSeek Harness(DSH)跑任務時,回合往往在本地或 IDE 裏結束,同事卻在飛書羣裏等結論。手動複製粘貼既慢,又容易把過程性輸出整段丟進羣裏,信息噪聲高。常見做法是自建通知服務或手寫 Webhook 腳本,但要自己處理簽名、重試、摘要和聚合,維護成本不低。
下面介紹社區插件 dsh-feishu-digest(維護者 subeichen1,分類:工作流):訂閱 DSH 的 turn/end 事件,在回合結束的同一刻把結果經「通知精簡管線」壓縮後推送到飛書自定義機器人,無需公網 IP、無需單獨起服務,填好 Webhook 即可使用。插件倉庫:GitHub;目錄頁:SkillHub。
這是什麼¶
dsh-feishu-digest 是 DSH 的 bundle 插件:把每一次任務結束結果推送爲飛書羣消息。成功且無需跟進的任務默認聚合成一行(30 分鐘窗口或滿 5 條彙總);含待辦、失敗或錯誤的任務發短卡片,結構固定爲「結論 → 產物 → 需要你 → 風險」,原文在發送前歸檔到本地,配置 archiveBaseUrl 後卡片可帶「查看原文」。默認走本地規則,不調用模型;僅「成功但含待辦關鍵詞或失敗項」的卡片路徑在開啓 LLM 時會嘗試壓縮,未配置或超時則退回本地兜底。
當前 npm 包版本爲 1.4.1(見倉庫 package.json),許可證 MIT,運行時要求 Node.js 18.17+、DSH 0.1.x 及以上(需 session/event 事件)。
核心功能¶
資料中列出的能力要點如下,便於對照是否滿足你的運維預期。
| 能力 | 說明 |
|---|---|
| 回合結束即推 | 監聽 turn/end,不輪詢、不攢批到外部服務 |
| 成功 / 失敗都推 | completed 用 ✅,error 用 ❌,取消等狀態用 ⏸️ |
| 精簡與聚合 | 成功無待辦 → 一行型聚合;失敗 / 待辦 → interactive 卡片 |
| 三級名稱 | 卡片顯示項目(cwd 目錄名)、對話(會話標題)、任務名(本回合首條人類 prompt) |
| 安全與可靠 | 支持飛書籤名校驗;HTTPS Webhook(http 僅 localhost);失敗重試與連續失敗告警 |
| 零第三方依賴 | 僅 node:crypto 與內置 fetch;回調異步執行,不阻塞 DSH 主流程 |
1.4.0 起統一走通知精簡管線:outputMode、summaryMaxChars 在發送管線中不再生效(字段保留僅爲兼容舊配置);progress 類消息默認丟棄,需保留時可設 dropProgress: false。
消息形態示例(摘自 README):
成功聚合一行:
✅ 修復登錄接口的空指針 —— 成功 | 任務完成飛書傳回·審計並修復 | 3.0 分鐘
有待辦或失敗時髮卡片(節選):
✅ 修復登錄接口的空指針
項目:任務完成飛書傳回 | 對話:審計並修復
結論:登錄接口空指針已修復,迴歸測試通過
▸ 產物
· src/auth/login.ts
...
[查看原文]
安裝與啓用¶
安裝前在飛書目標羣創建自定義機器人,複製 Webhook 地址;團隊場景建議開啓簽名校驗並把密鑰記入插件配置(未配 secret 時帶簽名校驗的請求會被飛書拒絕,code: 19021)。
安裝插件¶
通過 dsh plugin 安裝時本機需要 pnpm;亦可按 README「方式 B」手動放進 profile 的 node_modules 並改 package.json 的 dsh.profile.bundles。
將下文 --profile web 換成你實際使用的 profile(如 desktop、tui)。
已發佈到 npm 後(README 方式 C):
dsh plugin --profile web add dsh-feishu-digest
本地目錄調試(在插件目錄上一級執行,README 方式 A):
dsh plugin --profile web add file:./dsh-feishu-digest
改代碼即時生效可用 link: 前綴替代 file:。驗證 bundle 是否掛上:
dsh --profile web --dump-config | grep feishu
應能看到 id: feishu-digest 或 name: dsh-feishu-digest。
填寫配置¶
在對應 profile 的插件配置中填寫飛書機器人 Webhook(生產環境須爲 https;支持字符串或數組以實現多羣推送)。開啓簽名校驗時填寫 secret。業務羣與運維羣分離時,可配置 alertWebhook / alertSecret 接收連續推送失敗告警。需要卡片底部「查看原文」時,配置 archiveBaseUrl,並知悉原文目錄默認爲 ~/.dsh/feishu-digest/archive。
README 還提供 環境變量兜底 與 配置項完整說明;1.0 用戶若仍要發送全文,在 1.1+ 曾可用 outputMode: full,1.4 管線以精簡結果爲主,全文以歸檔爲準。
安裝完成後重啓 DSH,使 bundle 層生效。
典型用法¶
整體流程可歸納爲三步。
- 在飛書羣添加自定義機器人,保存 Webhook(及可選簽名密鑰)。
- 對目標 profile 執行安裝命令,寫入 Webhook 等配置。
- 正常在 DSH 中執行任務;每個回合結束時插件自動推送,無需在對話裏額外觸發。
README 提供 自測 小節與 常見問題,推送異常時可對照重試規則:網絡錯誤、HTTP 429 / 5xx、飛書 code=9499 等會重試;同一 Webhook 連續最終失敗 3 次會發「⚠️ DSH 推送告警」(5 分鐘冷卻)。
卸載方式見 README「卸載」一節;不再使用時刪除 bundle 依賴並移除配置中的 Webhook 即可。
適用場景與注意¶
適合誰:已在用 DSH 做日常開發或自動化任務、希望團隊在飛書羣收到「可掃一眼」的任務結論,而不是整段 Agent 輸出的人;尤其適合多任務並行、需要區分成功一行與失敗卡片的場景。
權限與安全:插件以當前 DSH 進程權限運行,會向配置的 Webhook 發送任務結論與歸檔相關內容;安裝前應閱讀倉庫源碼與 MIT 許可證,確認 Webhook / secret 不入庫、不入公開日誌。SkillHub 上的社區插件目錄與 DeepSeek / 幻方無官方從屬關係,按需自行評估後再裝。
運維邊界:請求體上限 20KB,超長會截斷;插件設計爲推送失敗不影響主任務,但飛書側限流或關鍵詞設置可能導致消息被拒——README 建議不要隨意給機器人設關鍵詞攔截。
結尾¶
dsh-feishu-digest 把 DSH 回合結束與飛書羣通知接在一起,用聚合一行與結構化卡片減少刷屏,並把全文留在本地歸檔。若要查看完整配置、升級說明(1.0→1.4)與合規提示,以倉庫 README 爲準。
- 目錄頁:https://www.skillhub.cn/plugins/subeichen1/dsh-feishu-digest
- GitHub:https://github.com/subeichen1/dsh-feishu-digest