dsh-harden:DSH 運行時看護層

前言

在 DSH 裏跑 agent,常見的問題不是「模型答錯了」,而是回合在不該結束的地方結束:API 因限流或網關錯誤中斷、工具失敗被框架當成正常收尾、模型只輸出思考沒有正文就停住。會話日誌一旦被寫壞,歷史往往整段打不開。單靠換模型或手動重試,很難在每次異常點都留下可解釋的原因。

下面介紹社區插件 dsh-harden(維護者 thissensen)。它在 agent 生命週期的關鍵節點做防護,目標是讓停止有明確原因,而不是靜默變成「正常結束」。插件分類爲工作流,npm 包名 dsh-harden,當前資料中版本爲 0.0.2,許可證 MIT,要求宿主 DSH >= 0.1.7-rc.1。

這是什麼

dsh-harden 自定位爲「DSH 運行時看護層」。它不替換 DSH 核心,而是通過 Cordis patch 與設置頁能力,在 API 失敗、工具失敗、空回合、上下文膨脹、子代理並行通知、會話落盤異常等場景上補一層兜底與修復。

目錄頁:SkillHub — thissensen/dsh-harden
源碼與說明:GitHub — thissensen/dsh-harden

核心功能

資料中列出的能力如下,按設置頁卡片與 README 用途對應說明。

API 與回合續跑

  1. 網絡請求中斷續跑(設置頁可開關):在官方重試耗盡後,按配置再補試;可設 網絡重試次數(0–99,0 表示不兜底)和 觸發重試的失敗特徵(錯誤碼 SERVER / RATE_LIMIT / TIMEOUT / TRANSPORT 與 HTTP 狀態碼 502 / 429;留空則不重試任何失敗)。
  2. 工具調用失敗續跑(需開關,且必須配置 失敗提示前綴):當工具調用失敗被吞、框架仍把回合當作正常結束時,注入提示讓模型重新發起。前綴默認爲空時,該規則不生效;需粘貼平臺警告的固定開頭,整段匹配開頭、區分大小寫。例:⚠ Could not execute tool;前綴以 < 開頭時,正文裏成對出現該標記也算失敗。
  3. 回合無正文收尾(可開關):最後一步只有思考、既沒有回覆也沒有工具調用時,拉回再走一步,應對「只輸出思考直接中斷」類問題。

上下文與子代理

  1. 上下文自動壓縮(可開關):會話超過 觸發閾值(插件默認 200K,也支持如 1M、100000 等形式)後,較早歷史被濃縮成摘要,界面沿用平臺自帶的「上下文已壓縮」提示。壓縮範圍三檔:全部壓縮 / 僅主代理 / 僅子代理(默認全部壓縮);可自定義 摘要指令。
  2. 子代理通知聚合(可開關,默認關閉):多個子代理並行結束時,中間通知先壓住,全部結束後合併成一條送達,避免逐個喚醒主代理。
  3. 子代理會話異常自動修復(常駐開啓,無開關):平臺即將寫入不合規的重試事件時,在落盤前修正,減少會話無法打開;修正時回合尾部有一行淺色提示,痕跡寫入會話日誌,重啓後仍可見。

工具與會話修復

  1. 後臺任務工具(可開關):開啓後模型可使用 job_background 啓動後臺命令,並用 job_list / job_output / job_kill 管理;對接 pwsh,用於緩解僅 Git Bash 時難以創建超過約 120 秒後臺任務的限制。關閉後相關工具從模型側消失。
  2. 修復損壞會話:設置頁提供掃描按鈕,掃描全部會話日誌並修復已知損壞形態,使「stored session is corrupt」類歷史重新可加載。

設置入口在 DSH 界面 「DSH優化」 分區下,共八張卡;截圖可能與舊版文案略有差異,以實際界面爲準。

安裝與啓用

安裝只是把包放到位,還必須註冊到 profile,DSH 啓動時纔會加載。

安裝包(三選一)

從 npm:

npm install dsh-harden

從 GitHub Releases: 下載 dsh-harden-<版本>.tgz 後:

dsh plugin --profile web add file:<tgz 文件的絕對路徑>

從源碼構建: 需在首次啓動 DSH 之前完成構建(client 殼受啓動快照約束)。步驟見倉庫 README:依賴安裝、node scripts/link-deps.mjs、pnpm build(tsc host + vite client)。

註冊到 profile

Web 端(link 路徑示例,npm 安裝時改用對應 link 或版本範圍):

dsh plugin --profile web add link:<克隆目錄的絕對路徑>

桌面端:編輯 ~/.dsh/profiles/desktop/package.json 兩處——在 dependencies 增加 "dsh-harden": "link:<目錄>/dsh-harden"(npm 安裝則用版本範圍);在 dsh.profile.bundles 數組增加 "dsh-harden"。在該目錄執行 pnpm install 並 重啓桌面端。

典型用法與配置順序

  1. 按上面路徑安裝並完成 profile 註冊,重啓 DSH。
  2. 打開 DSH優化 設置,至少按需打開:網絡續跑、回合無正文、上下文壓縮、後臺任務等開關。
  3. 務必填寫「失敗提示前綴」(若需要工具失敗續跑):不填則工具失敗被吞時的規則不會生效。將你在界面裏看到的平臺警告原文固定開頭粘貼進去。
  4. 網絡續跑:設置重試次數與失敗特徵;留空失敗特徵表示不對任何失敗做額外重試。
  5. 上下文壓縮:確認閾值與壓縮範圍(主代理 / 子代理 / 全部),必要時改摘要指令。
  6. 若歷史無法打開,在 修復損壞會話 卡執行掃描修復。

插件以當前 DSH 進程權限運行;安裝前建議閱讀 倉庫源碼 與 MIT 許可證,確認符合你的環境與合規要求。SkillHub 爲社區插件目錄,與 DeepSeek / 幻方無官方從屬關係。

結尾

dsh-harden 把 API 中斷、工具失敗被吞、空思考回合、日誌損壞、長上下文與子代理通知等「莫名停住」收斂到可配置、可掃描的看護邏輯。裝完後記得註冊 profile,並在設置頁補全 失敗提示前綴 等關鍵項。

  • 目錄頁:https://www.skillhub.cn/plugins/thissensen/dsh-harden
  • GitHub:https://github.com/thissensen/dsh-harden
羽毛球分组比赛记分
小程序二维码

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

小夜