dsh-turn-watchdog:報告 DSH live 會話中的疑似卡住回合

前言

DSH 的插件機制允許把不同運行能力拆到獨立插件中。dsh-turn-watchdog 處理其中一個具體場景:live 會話在回合中途長時間沒有產生 turn/end,用戶可能處於空等狀態。這個插件不修復會話,也不中斷回合,而是做一件相對窄的事:定期掃描 live 會話,報告長時間未產生 turn/end 的疑似卡住會話。

這是什麼

dsh-turn-watchdog 是 DeepSeek Harness(DSH)插件,維護者爲 Equinox7379,許可證爲 MIT。它面向 DSH 的 live 會話,提供只讀的卡住觀測:發現最後事件不是正常結束、且空閒超過閾值的會話,並給出提示詞警示和狀態查詢入口。

核心功能

掃描與判定

插件定期掃描 live 會話。判定一個會話爲“疑似卡住”的條件是:

1、最後事件不是 turn/endsession/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 查詢,或者直接詢問“哪些會話卡住了”。返回結果包含 thresholdMinutesstuck 列表。

示例:

{ "thresholdMinutes": 10,
  "stuck": [ { "sessionId": "…", "cwd": "E:\\surdet", "lastEventType": "step/start", "idleMinutes": 12 } ] }

示例中 thresholdMinutes10stuck 列表項包含 sessionIdcwdlastEventTypeidleMinutes。這裏 lastEventTypestep/startidleMinutes12,符合“最後事件不是 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。

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

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

小夜