前言¶
在 DeepSeek Harness (DSH) 的智能體開發場景中,本地宿主機重啓、網絡斷開、Token 達到上限或檢測到重複工作時,現有的會話往往會中斷。手動恢復不僅耗時,還容易丟失上下文或導致狀態不一致。
dsh-session-resilience 插件旨在解決這些問題。它通過在 DSH 配置文件中集成一個安全重啓、基於令牌感知的重新連接以及策略化會話恢復的 Bundle,讓 DSH 在重啓後能夠儘可能無縫地恢復或延續之前的任務。
插件定位¶
dsh-session-resilience 是一個 DSH 配置文件插件(Bundle),由開發者 hasan-aghayev 維護。
它的核心價值在於:
* 安全重啓:記錄活躍會話,啓動替換宿主機,並在連接就緒前不報告成功。
* 策略化恢復:提供預設策略和手動控制,適應不同長度的任務。
* 本地優先:所有標記、日誌和控制路由均運行在本地宿主機,不依賴遠程服務或分析。
核心功能¶
插件提供以下已覈實能力:
- 安全 DSH 重啓:記錄當前活動的根會話,在配置的端口啓動新的 DSH 宿主機,並在確認新連接可用後才結束當前流程。
- 令牌感知重連:在瀏覽器後臺交換新的啓動令牌,請求 DSH 替換當前連接,並等待新連接建立後才報告成功。
- 策略化會話恢復:提供四種策略配置(Safe、Balanced、Long task、Manual),分別控制交接窗口、重試次數、掃描範圍和退避策略。
- 就地重連:在保持當前頁面和未發送草稿不變的情況下完成重連。
- 單一恢復中心:重啓、停止、自動延續、循環保護、錯誤分類、通知、統計和暫停會話的控制均在一個設置卡片中管理。
- 無虛假成功:系統不會在替換宿主機不可達或未找到新的啓動 URL 時報告就緒。
- DSH 原生控制面:使用 DSH 的語義令牌和緊湊字段密度,而非獨立的視覺主題。
安裝與啓用¶
安裝該插件需要將其安裝到 DSH 配置文件所使用的環境中,並將其添加到配置文件的 Bundle 列表中,然後運行配置文件的常規 Reconcile 步驟。
安裝命令如下:
dsh plugin --profile <profile> add https://github.com/hasan-aghayev/dsh-session-resilience
安裝完成後,重啓 DSH 實例即可生效。
使用方式與控制¶
模型工具調用¶
在模型側,插件提供了兩個原生的工具函數:
* restart_dsh:當用戶明確要求重啓 DSH 或當前任務邏輯需要重啓時調用。
* shutdown_dsh:僅當用戶明確要求停止時調用。
這兩個工具均接受空對象作爲參數。重啓結果中會包含實例信息、前一個進程、端口、捕獲的根會話以及幫助日誌路徑。
恢復策略配置¶
在 DSH 的設置界面(Settings → Plugins → DSH Session Resilience)中,可以通過卡片進行配置。卡片支持分步編輯,需點擊保存後纔會寫入配置。
主要策略包括:
- Safe:適用於短期或敏感任務。交接窗口 5 分鐘,最多連續恢復 2 次,掃描範圍較小。
- Balanced:適用於日常工作。交接窗口 10 分鐘,最多連續恢復 3 次,使用中等退避。
- Long task:適用於構建、導入和長週期智能體會話。交接窗口 30 分鐘,最多連續恢復 8 次,掃描範圍更廣。
- Manual:適用於精細調整。使用卡片中的單個控件進行控制,初始值與 Balanced 保持一致。
安全行爲¶
恢復引擎僅在機器中斷、臨時失敗或 Token 限制時自動延續。用戶中止和政策阻止的回合不會被自動恢復。在恢復前,冪等性守衛可以阻止重複調用已知的成功工具或驗證未知結果。
注意事項¶
-
環境要求:
- Node.js 版本需 >= 22.19.0。
- DSH 版本需滿足:
>=0.1.0-rc.7 <0.2.0或>=0.1.7-alpha.1 <0.1.8或0.2.0-rc.2或^0.2.0。
-
本地運行:
- 重啓標記、輔助日誌和控制路由僅限於 DSH 宿主機本地。
- 插件不包含任何分析功能或遠程服務。
-
就緒狀態:
- 重啓操作不會在替換宿主機可達且找到其新的啓動 URL 之前被報告爲就緒。
總結¶
dsh-session-resilience 提供了一套本地化、策略化的解決方案,用於處理 DSH 宿主機重啓和會話中斷的場景。通過將恢復控制集中在單一界面,並確保只有經過驗證的連接才能被視爲成功,它降低了手動干預的需求,提升了智能體任務運行的穩定性。
更多信息與源碼請訪問:GitHub 倉庫