前言¶
DSH 的插件機制允許把不同運行能力拆到獨立插件中。dsh-turn-watchdog 處理其中一個具體場景:live 會話在回合中途長時間沒有產生 turn/end,用戶可能處於空等狀態。這個插件不修復會話,也不中斷回合,而是做一件相對窄的事:定期掃描 live 會話,報告長時間未產生 turn/end 的疑似卡住會話。
這是什麼¶
dsh-turn-watchdog 是 DeepSeek Harness(DSH)插件,維護者爲 Equinox7379,許可證爲 MIT。它面向 DSH 的 live 會話,提供只讀的卡住觀測:發現最後事件不是正常結束、且空閒超過閾值的會話,並給出提示詞警示和狀態查詢入口。
核心功能¶
掃描與判定¶
插件定期掃描 live 會話。判定一個會話爲“疑似卡住”的條件是:
1、最後事件不是 turn/end 或 session/end-seed;
2、空閒時間超過 thresholdMinutes。
thresholdMinutes 默認 10,可在 profile patch 的 config 裏配置。掃描時排除 subagent 會話。
警示與查詢¶
當存在疑似卡住會話時,插件將警示文本注入提示詞上下文,供 AI 與用戶參考。該文本是同步純文本拼接,不含模板變量;沒有疑似卡住會話時不注入。
插件還提供 turn_watchdog_status 查詢工具。參數 refresh 默認 true,表示立即重掃。
運行邊界¶
- 只讀:不改寫會話事件、不打斷回合、不重啓服務。
- 零依賴、無自定義會話事件、無 HTTP 路由。
安裝與啓用¶
插件會以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。下面命令來自已覈實資料,使用本地 link 路徑:
dsh plugin --profile web add link:/path/to/dsh-turn-watchdog
# 重啓 dsh web
把 link:/path/to/dsh-turn-watchdog 替換爲本地實際路徑。已覈實資料未列出其他安裝方式。
典型用法¶
啓用後,可以用 turn_watchdog_status 查詢,或者直接詢問“哪些會話卡住了”。返回結果包含 thresholdMinutes 和 stuck 列表。
示例:
{ "thresholdMinutes": 10,
"stuck": [ { "sessionId": "…", "cwd": "E:\\surdet", "lastEventType": "step/start", "idleMinutes": 12 } ] }
示例中 thresholdMinutes 爲 10,stuck 列表項包含 sessionId、cwd、lastEventType、idleMinutes。這裏 lastEventType 爲 step/start,idleMinutes 爲 12,符合“最後事件不是 turn/end 且空閒超過閾值”的報告條件。
適用場景與注意¶
適合用於需要觀察 live 會話是否停滯的 DSH 使用場景,幫助發現“會話沒有明確結束、但長時間沒有 turn/end”的狀態。它不是故障恢復工具:不會取消回合、不會重啓服務,也不會改寫會話事件。
使用注意:
1、合法長回合可能被列入,需結合 lastEventType 判斷。
2、thresholdMinutes 默認 10,需要按實際回合時長配置。
3、插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。
結尾¶
dsh-turn-watchdog 提供的是一個輕量、只讀的 live 會話觀測點:定期掃描、警示疑似卡住會話、提供狀態查詢。
GitHub 地址:https://github.com/Equinox7379/dsh-turn-watchdog
社區目錄頁地址未在已覈實資料中明確出現,本文不列出不確定的 URL。