前言¶
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