前言¶
在使用 DeepSeek Harness(DSH)開發智能體或代理時,請求超時是高頻問題。DSH 的請求可能在多個層級超時:空閒看門狗、SDK 請求、HTTP 計時器、模型服務器或工具調用。UI 通常只顯示最終錯誤,信息不夠具體。例如,”Request timed out” 可能是 SDK 超時,也可能是 undici 的 300 秒頭計時器超時。這容易導致開發者調整錯誤的配置。dsh-turn-doctor 通過測量每個模型請求的時間(首字節時間、最長字節間隙、總請求時間)來識別最可能的失敗點。
插件簡介¶
dsh-turn-doctor 是 DeepSeek Harness 的診斷插件,用於解釋輪次失敗原因並提供修復建議。它由開發者 d3vmeh 維護,許可證爲 MIT。
核心功能¶
- 分析多層級超時:覆蓋 DSH 空閒看門狗、SDK 請求、Node/undici HTTP 計時器、模型服務器、工具調用等層級。
- 識別具體失敗層:通過計時數據定位具體失敗點(例如 300 秒超時)。
- 提供針對性修復建議:給出具體的配置或操作建議(例如安裝插件或調整參數)。
- 捕獲被遺漏的失敗:能夠識別壓縮失敗和工具超時。
安裝與啓用¶
使用官方命令安裝插件:
dsh plugin --profile web add dsh-turn-doctor
安裝後,判決結果會打印在 dsh 終端中。
典型用法¶
- 查看判決:在聊天中輸入
/why命令,查看當前會話的最近判決。 - 配置超時:在配置文件
~/.dsh/profiles/web/cordis.patch.yml中設置streamIdleTimeoutMs或timeoutMs,以便插件正確分類失敗原因。
適用場景與注意¶
該插件僅用於診斷失敗原因,不執行重試請求、更改設置或注入上下文。判決僅存在於內存中(dsh 進程生命週期),不寫入會話日誌。如果 SDK 計時器和 undici 標題計時器都設置爲 300 秒,第一字節超時可能模棱兩可(插件會報告 undici)。
與 dsh-error-lens 的區別:dsh-error-lens 按 HTTP 狀態分組,dsh-turn-doctor 按請求計時/超時層區分。
生態背景:DSH 理念是「一切皆插件」;社區目錄是獨立站點(如 Skillhub),與 DeepSeek / 幻方無官方從屬關係。
結尾¶
通過定位具體的超時層級,開發者可以避免盲目調整配置,快速定位問題根源。
GitHub 倉庫:https://github.com/d3vmeh/dsh-turn-doctor