在 DeepSeek Harness(DSH)的插件化架構中,Web Profile 的服務重啓通常需要手動操作,且容易導致當前會話中斷或輸出截斷。dsh-launcher 旨在解決這一痛點,通過前端狀態監控、自動化重啓流程以及會話恢復機制,降低維護成本。
這是一個由 Nasbaye 維護的 DeepSeek Harness Web Profile 插件。它提供前端狀態徽標、一鍵重啓服務、重啓後自動續聊以及截斷自動繼續的功能。
安裝與啓用¶
將插件文件路徑加入 profile bundle 以啓用狀態點和 API。
- 在 profile 目錄下安裝插件:
pnpm --dir %USERPROFILE%\\.dsh\\profiles\\web add file:D:/path/to/dsh-launcher
- 在
%USERPROFILE%\\.dsh\\profiles\\web\\package.json的dsh.profile.bundles中加入:
"dsh": {
"profile": {
"bundles": [ "...", "@dsh-external/dsh-launcher" ]
}
}
- 完整重啓 DeepSeek Harness 即生效。
核心功能¶
1. 前端狀態點與一鍵重啓¶
- 狀態顯示:狀態點顯示在會話頭部的 Agent 預設標籤(如“標準模式”)右側,或在新建會話頁的模式選擇器旁。顏色代表狀態:綠(在線)、黃(重啓中)、紅(離線)。每 5 秒輪詢一次。
- 交互操作:點擊狀態點會向
POST /api/launcher/restart發起請求。重啓完成後頁面會自動刷新一次,確保拿到最新前端。 - API 接口:
GET /api/launcher/status:獲取服務狀態(JSON)。POST /api/launcher/restart:重啓服務(返回 202,實際由後臺 worker 完成)。
2. 重啓 Worker 的可靠性¶
重啓流程由 restart-worker.js 負責,包含以下保護機制:
- 依賴預檢:重啓前檢查
profiles/web/package.json的 bundles 是否已安裝(包含 profile node_modules 和引擎嵌套 node_modules)。如果缺失,會自動運行pnpm install;若安裝失敗,會中止重啓並保持舊服務運行。 - 健康確認:拉起新進程後,會輪詢端口最多 90 秒確認服務健康,結果寫入
dsh-web.log。 - 無彈窗:在 Windows 下,worker 與子進程均使用
windowsHide選項,避免彈出黑色控制台窗口。
3. 重啓續聊 (Resume After Restart)¶
重啓前會自動檢測“正在進行”的會話(滿足 status === 'running'、inbox.hasPending 或 phase.kind === 'maintenance' 之一)。命中的會話 ID 會寫入 .dsh-launcher-resume.json。
新進程啓動後,會向這些會話發送消息 因 DeepSeek Harness 重啓導致對話中斷,請繼續,讓 agent 接着幹活。該操作失敗會自動重試(每會話最多 5 次,間隔 3 秒)。
4. 截斷自動繼續 (Auto-Continue)¶
當模型輸出達到 token 上限被截斷(前端顯示“已達到輸出 token 上限”)時,插件會自動發送 繼續 指令。防循環保護包括:
- 每會話連續自動“繼續”最多 3 次。
- 同會話 5 秒冷卻。
- 任何非 max-tokens 的輪次結束會重置計數。
- 僅處理頂層會話。
日誌與注意事項¶
- 日誌:所有行爲寫入
dsh-web.log,前綴爲[launcher ...]或[launcher-worker ...]。 - 適用場景:需要頻繁重啓服務或處理長上下文任務的 Web Profile 用戶。
- 注意:插件以當前 DSH 進程權限運行,安裝前建議檢查源碼與許可證。在 Windows 下,如果引擎側未設置
windowsHide,工具調用可能仍會彈出控制台窗口(這是引擎默認配置,非插件獨有)。
總結¶
dsh-launcher 通過前端狀態反饋和後端自動化流程,解決了 DeepSeek Harness Web Profile 重啓難、中斷恢復難的問題。配合截斷自動繼續功能,能提升長時間運行的穩定性。
- 目錄頁:nasbaye/dsh-launcher
- 源碼:GitHub