前言¶
用 DSH(DeepSeek Harness)跑 Agent 時,常見情況是:頁面在後臺、人在開會,AI 彈出「需要你選擇」或「需要你審批」,等你回到瀏覽器已經錯過一輪。釘釘自定義機器人只能發不能收,沒法在羣裏直接點選,但至少可以把「該你拍板了」或「這一輪幹完了」推到手機上。下面介紹社區插件 dsh-dingtalk-notify(維護者 LapStdy,分類:聯網工具),在 DSH 裏監聽這些節點,經 Webhook 發到釘釘羣,並在 設置 → 釘釘通知 提供配置面板。
這是什麼¶
dsh-dingtalk-notify 是一個純 JavaScript、無構建步驟的 DSH 插件。它在宿主側旁觀會話事件:需要用戶選擇(含計劃審批)、操作被攔下要批准、一輪任務結束(完成 / 出錯 / 中斷)時,按你的規則組裝消息並調用釘釘羣機器人 Webhook。通知正文會提示「請回到 DSH 頁面操作」,不替代 DSH 內的彈窗與審批流程;發送失敗只記日誌,不影響 AI 繼續幹活。
運行要求:DSH ≥ 0.1.5-rc.1,Node ≥ 18。當前倉庫版本 0.2.4,許可證 MIT。
會推什麼、什麼時候推¶
插件按事件類型分別可開關,默認對「幹活不足 5 秒的輪次」不發完成類通知,避免刷屏。
| 時機 | 釘釘裏大致標題 |
|---|---|
| AI 讓你選擇(含計劃審批) | DSH 需要你選擇 |
| 某個操作被攔下要你批准 | DSH 需要你審批 |
| 一輪任務結束 | 任務完成 / 出錯 / 已中斷 |
門控(gating) 決定「這條要不要真發」。每個打開的 DSH 頁面約每 45 秒上報一次在線狀態;默認模式 away 表示有人正看着 DSH 頁面就不發,人走開或只有手機在看時才發。另有 mobileOnly(僅手機在線時發)、always(總是發)。面板裏的「發送測試消息」不受門控限制,用於單獨驗證 Webhook 鏈路。
消息 詳細度 可在面板選「簡潔」或「詳細」:簡潔是一句話加會話名;詳細會帶上問題正文、選項、工具名、用時和回覆摘要等。
安裝與啓用¶
插件以當前 DSH 進程權限運行,安裝前建議在 GitHub 瀏覽源碼與 LICENSE,確認 Webhook、加簽密鑰等敏感項只寫在本地配置裏。
網頁版(命令行 / dsh web)¶
dsh plugin --profile web add github:LapStdy/dsh-dingtalk-notify
裝完後重啓 dsh web(設置面板在啓動時掃描插件名冊),再打開 設置 → 釘釘通知。
桌面端(DeepSeek Harness 應用)¶
桌面端插件由 Electron 應用獨佔管理,不能用 dsh plugin --profile desktop ... 從命令行安裝。在應用內:
- 左側欄點 插件
- 點 添加插件
- 粘貼
github:LapStdy/dsh-dingtalk-notify或完整倉庫地址,點安裝 - 裝完後重啓桌面端,再打開 設置 → 釘釘通知
從 GitHub 安裝不需要額外構建授權。
典型用法:從釘釘機器人到測通¶
裝好插件只完成一半;能否發到羣裏取決於釘釘側機器人與安全設置。
1、在釘釘羣裏添加自定義機器人¶
進目標羣 → 羣設置 → 機器人 → 添加機器人 → 自定義(通過 Webhook 接入),命名後進入安全設置。
2、安全設置(二選一)¶
- 加簽(推薦):複製
SEC開頭的密鑰,填進 DSH 面板「加簽密鑰」。 - 自定義關鍵詞:例如填
DSH;釘釘只放行正文含該詞的消息。本插件標題固定帶DSH,填DSH即可通過。
完成後複製 Webhook 地址(形如 https://oapi.dingtalk.com/robot/send?access_token=...)。Webhook 與加簽密鑰等同發帖憑據,勿泄露或提交到公開倉庫。
3、在 DSH 面板填寫並測試¶
打開 設置 → 釘釘通知:
- Webhook 地址:粘貼上一步地址
- 加簽密鑰:加簽模式粘貼
SEC...;關鍵詞模式留空 - 點 發送測試消息 —— 該操作始終真實發送,用於驗證鏈路
羣裏收到測試消息即表示連通。若提示 發送失敗 310000,多爲關鍵詞或加簽不匹配;改用「自定義關鍵詞」並填 DSH 是常見修法。若顯示 已跳過,表示被門控、免打擾或未填 Webhook 等邏輯跳過,不是發送失敗;用測試消息可繞過門控查 Webhook。
配置持久化在 ~/.dsh/dingtalk-notify/config.json,面板保存或手改文件即時生效,無需重啓(改 lib/ 下插件源碼則需重啓 dsh web)。
配置要點¶
首次運行會自動生成配置模板。常用鍵如下(完整列表見倉庫 README):
| 鍵 | 默認 | 說明 |
|---|---|---|
enabled |
true |
總開關 |
webhook |
"" |
機器人 Webhook(必填) |
secret |
"" |
加簽密鑰;關鍵詞模式留空 |
detailLevel |
detailed |
brief / detailed |
gating |
away |
away / mobileOnly / always |
notifyOnQuestion / notifyOnApproval / notifyOnTurnEnd 等 |
見 README | 各事件是否通知 |
minTurnSeconds |
5 |
短於該秒數的輪次不發完成類通知;0 表示每輪都發 |
dndEnabled / dndFrom / dndTo |
可選免打擾 | 時段內可靜默,出錯是否仍通知由 dndExceptErrors 控制 |
atMobiles / atAll |
可選 @ | 需在高級裏填手機號纔會在正文 @ |
發送診斷:~/.dsh/dingtalk-notify/log.ndjson(每行一條 JSON:sent / skip / error);面板「診斷」區可看最近決策與跳過原因。
適用場景與注意¶
適合長時間掛 DSH、又不想一直盯着瀏覽器的人:選擇、審批、長任務結束由釘釘提醒,再回 DSH 頁面操作即可。
需要注意:
- 釘釘機器人不能收消息,無法在羣裏完成審批;插件設計就是提醒 + 回頁操作。
- 若用 dsh-pocket 等把 DSH 暴露到局域網且代理未開認證,迴環以外的接口可能被同網設備訪問;暴露代理時應開認證或限制監聽,見 README「面板接口」一節。
- 其他回答者(如
dsh-auto-review)若直接接走「需要你選擇」,可能只有完成通知、沒有選擇通知;診斷區會有記錄。
臨時停用:面板關總開關,或將 enabled 設爲 false。卸載網頁版插件:
dsh plugin --profile web remove dsh-dingtalk-notify
結尾¶
dsh-dingtalk-notify 把 DSH 裏「該你介入」和「這一輪結束了」推到釘釘羣,並用門控、免打擾、詳細度和診斷減少誤報與排障成本。DSH 生態強調「一切皆插件」;社區目錄由獨立站點維護,與 DeepSeek / 幻方無官方從屬關係。
- 目錄頁:https://www.skillhub.cn/plugins/LapStdy/dsh-dingtalk-notify
- 源碼與文檔:https://github.com/LapStdy/dsh-dingtalk-notify