dsh-startup-model:讓 DSH 記住上次使用的模型

前言

DeepSeek Harness(DSH)的理念是「一切皆插件」,可插拔的特性帶來了靈活度,也意味着一些細碎的默認行爲需要自己補齊。默認情況下,DSH 新會話使用 profile 模板裏定義的默認模型;用戶在會話裏切換模型後,退出重開或新建會話時得重新點選。次數多了就成了固定摩擦。

dsh-startup-model 就是爲消除這個摩擦而生的小插件。它在退出時記錄最後一次主動選用的模型,下次啓動時注入爲默認模型。下面介紹它的來源、能力、安裝方式和適用場景。

這是什麼

dsh-startup-model 是一個 DSH 插件,倉庫位於 zxzc114514/dsh-startup-model,由 zxzc114514 維護,協議爲 MIT,包版本 1.0.0,作者標爲 ImportCoffee。社區目錄 SkillHub 把它歸入「記憶」分類。

它解決的問題很單一:把「上次退出前用哪個模型」這件事持久化,免去每次啓動重複切換。

核心功能

插件的工作方式是監聽持久化會話事件,把最後一次用戶主動選用的模型寫入本地狀態文件,下次啓動時平滑注入爲默認模型。具體能力包括:

  • 純 Host 端實現:純 Node.js 服務,不依賴前端 Client,不侵入渲染層,避免渲染端腳本異常導致 Web Boot 白屏。
  • 子代理隔離:識別會話上下文中的 origin: subagent 或 delegationDepth > 0,子代理臨時切換的輕量模型不會污染主配置。
  • 落盤保護:內置 500ms 事件防抖,配合進程級臨時文件原子替換(Atomic rename),降低高頻寫盤和意外斷電造成的狀態文件損壞風險。
  • 啓動前降級校驗:恢復前檢查模型 Provider 是否仍處於註冊路由狀態;若該服務已被卸載或停用,插件跳過本次恢復並保留當前配置,避免陷入死循環。
  • 保留思考深度檔位:記錄與恢復 reasoningEffort(如 high / medium / low)。

安裝與啓用

方式一,在 DeepSeek Harness 插件管理器中搜索 dsh-startup-model 並安裝。

方式二,手動引入。在 DSH profile 的 package.json 中聲明依賴,並把包加入 dsh.profile.bundles:

{
  "dependencies": {
    "dsh-startup-model": "https://github.com/zxzc114514/dsh-startup-model/releases/latest/download/dsh-startup-model.tgz"
  },
  "dsh": {
    "profile": {
      "bundles": [
        "dsh-startup-model"
      ]
    }
  }
}

插件自帶 bundle patch,隨安裝自動掛載,不需要額外手工步驟。

配置

插件開箱即用,無需配置。若要調整,在 profile 的 cordis.patch.yml 中寫入:

- id: startup-model
  name: 'dsh-startup-model'
  config:
    enabled: true
    trackSubagents: false
    # stateFile: 'C:/custom/path/model-memory.state.json'

配置項說明:

配置項 類型 默認值 說明
enabled boolean true 是否啓用啓動模型記憶功能
trackSubagents boolean false 是否跟蹤子代理派生會話中的模型變更(默認關閉以保護主模型)
stateFile string ~/.dsh/model-memory.state.json 狀態持久化文件存放路徑

工作原理

1、錄製。普通用戶會話派發 model/selection 或 request/header 事件時,插件提取並規範化模型三元組(provider、model、reasoningEffort),經 500ms 防抖後原子寫入狀態文件。

2、恢復。DSH 啓動時,插件通過 ctx.inject(['agentDefaultModel']) 掛載,校驗本地狀態有效性與 Provider 可達性後,調用 agentDefaultModel.saveSelection() 恢復啓動默認值。

適用場景與注意

適合長期使用固定模型組合、且對啓動體驗有要求的 DSH 用戶,尤其是需要區分主模型與子代理輕量模型的場景。

需要注意三點。第一,插件以當前 DSH 進程的權限運行,安裝前應先檢查源碼與許可證(MIT),判斷是否有權限和合規風險。第二,它依賴 DSH 的 agentDefaultModel 注入與 profile bundle 機制,版本不匹配時功能可能靜默失效,裝完要驗證一次。第三,狀態文件默認落在 ~/.dsh/model-memory.state.json,多套 profile 共用同一路徑時需自行指定 stateFile,避免相互覆蓋。

結尾

dsh-startup-model 的價值很集中:把「每次啓動重新選模型」這一步消除掉,順帶給出子代理隔離、防抖落盤和 Provider 降級,實現成本只是一個不侵入渲染層的 Host 端服務。對希望 DSH 開箱即用、維持上次工作狀態的用戶來說,這是一個值得嘗試的小插件。

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

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

小夜