前言¶
DeepSeek Harness(DSH)會給「沒有顯式指定模型」的新會話套用 profile 裏的默認 provider 與 model。內置服務 @deepseek-ai/dsh-agent-default-model 在提供默認值的同時,還會把會話內模型選擇器或 /model 的切換寫回 profile,於是臨時換模型也會改掉以後所有新會話的默認。若你希望長期固定某一組模型(例如配合 Codex 橋接器統一跑同一模型),又仍需要在單條會話裏臨時對比別的模型,就需要把「保存默認」和「當前會話生效」拆開。下面介紹社區插件 dsh-model-pin(維護者 SeyanaA,分類:模型推理)如何做到這一點。
這是什麼¶
dsh-model-pin 是面向 DeepSeek Harness Desktop 的 Cordis / DSH profile bundle 插件(當前版本 0.2.0,MIT 許可證)。它替換總線上的 agentDefaultModel 服務,並把 saveSelection() 變成空操作:新建會話始終使用你在配置裏固定的供應商、模型與可選推理強度;會話內模型選擇器和 /model 仍可用,隻影響當前會話,不會再改寫默認值。README 寫明其主要用途是與 Codex-to-DSH-Bridge 配合——橋接器在 DSH 裏創建會話,本插件保證新會話默認模型與橋接器期望的一組一致,避免橋接過程中被別的操作改掉默認。
目錄頁:skillhub.cn/plugins/SeyanaA/dsh-model-pin
源碼與文檔:github.com/SeyanaA/dsh-model-pin
核心功能¶
資料中可覈對的能力如下。
| 能力 | 說明 |
|---|---|
| 固定新會話默認 | 新對話使用 設置 → 模型固定 或 profile 裏保存的 provider / model |
| 固定推理強度 | 可選 reasoningEffort(如 max);留空則跟隨模型自身默認 |
| 保留會話內切換 | 選擇器與 /model 只作用於當前會話 |
| 不改寫默認 | 會話內切換不再寫入 profile,不會被下次新會話繼承 |
| 可視化配置 | 設置頁讀取實時模型目錄,下拉選擇後保存即生效 |
| 配置即數據 | 固定值在 profile 的 cordis.patch.yml 裏 dsh-model-pin 行的 config,可手工編輯 |
| 新模型提醒 | 按 modelCheckInterval 檢查已配置 provider 是否有目錄外的新模型;只提醒,不自動改配置 |
| 熱更新 | 配置字段爲 volatile,保存後新會話立即用新值,無需重啓 DSH |
| 可回滾 | 卸載插件後恢復系統自帶的默認模型行爲 |
插件爲純 JavaScript(ESM),無第三方依賴;除按週期訪問已配置的 provider 端點外,不讀取會話內容、也不發起其它網絡請求。
環境要求¶
安裝前請對照 README 中的約束:
- DSH Desktop:
>= 0.2.0-rc.3且< 0.3.0(engines.dsh已限制上界;驗證環境示例爲 macOS 上 DSH Desktop 0.2.1-rc.5); - Node.js:
>= 22(使用 DSH 自帶運行時即可,無需在插件目錄npm install); - peerDependencies:
@deepseek-ai/cordis、@deepseek-ai/schemastery由 DSH 宿主提供。
本插件不發佈到 npm,需通過本地目錄以 link: 依賴註冊到 profile;註冊後須保留插件目錄,不要刪除或移動。
安裝與啓用¶
「註冊」指在 profile 的 package.json 中加入 dsh-model-pin 依賴並在 dsh.profile.bundles 中登記 bundle;插件的 patch 會禁用內置 agent-default-model 並由本插件提供 agentDefaultModel 服務。資料給出三種獲取目錄的方式;下面以不依賴 git clone 的路徑說明推薦流程。
獲取插件目錄¶
用瀏覽器下載 GitHub 倉庫 的 ZIP 或 Release 源碼包,解壓到固定位置,例如:
~/.dsh/local-plugins/dsh-model-pin
後續註冊均使用該目錄的絕對路徑。
方式一:讓 DSH Agent 註冊(推薦)¶
- 確認插件目錄已在上述固定位置。
- 在 DeepSeek Harness 中新建對話,對 Agent 說明(路徑換成你的絕對路徑):
把 ~/.dsh/local-plugins/dsh-model-pin 作爲本地插件註冊到當前 profile。
Agent 會通過 plugin_manager 的 install_bundle 完成依賴鏈接與 bundle 註冊。
- 完全退出並重新打開 DeepSeek Harness。
- 打開
設置 → 模型固定,確認或修改固定值後點 保存。
方式二:手動註冊¶
適合批量部署或不想讓 Agent 代操作的情況。
- 編輯 profile 清單(Desktop 示例路徑):
~/.dsh/profiles/desktop/package.json
在 dependencies 中增加(路徑改爲本機絕對路徑):
{
"dependencies": {
"dsh-model-pin": "link:/Users/你的用戶名/.dsh/local-plugins/dsh-model-pin"
},
"dsh": {
"profile": {
"bundles": [
"dsh-model-pin"
]
}
}
}
- 在 profile 目錄安裝依賴:
cd ~/.dsh/profiles/desktop
pnpm install
若無全局 pnpm,可使用 DSH 應用內自帶的 pnpm(macOS 路徑示例,版本以本機爲準):
node "/Applications/DeepSeek Harness.app/Contents/Resources/runtime/primary-runtime/dependencies/pnpm/bin/pnpm.cjs" install
- 完全退出並重新打開 DSH,再到
設置 → 模型固定確認配置。
註冊成功的標誌¶
設置導航中出現 模型固定,含「當前固定」「模型檢索週期」等卡片;plugin_manager的list_plugins中dsh-model-pin爲enabled: true且fiberPhase: active,內置agent-default-model爲enabled: false;- 新開對話時,模型選擇器默認顯示你固定的那組模型。
首次註冊後,種子配置(可在設置頁修改)爲:
| 字段 | 種子值 |
|---|---|
provider |
opencode-go |
model |
deepseek-v4.1-flash |
reasoningEffort |
max |
modelCheckInterval |
7d(可改爲「手動」) |
典型用法¶
日常固定默認模型¶
- 打開
設置 → 模型固定,在「默認對話模型」中選擇 供應商 / 模型 / 推理強度,點 保存。 - 新建會話:默認即爲你固定的一組;在會話內用選擇器或
/model臨時換模型,隻影響當前會話。 - 需要長期改默認時,只改設置頁或
cordis.patch.yml中的dsh-model-pin配置,不要依賴會話內切換來「順便」改默認。
配置也可直接編輯 profile 內 cordis.patch.yml 裏 dsh-model-pin 行的 config,與設置頁寫入的是同一套字段;字段爲 volatile,保存後新會話立即生效。
與 Codex-to-DSH-Bridge 對齊¶
若使用橋接器,README 建議把固定值設成與橋接器一致的一組。橋接器側固定 DeepSeek-V41-Flash / MAX,在 DSH 中對應 deepseek-official / deepseek-flash,推理強度 max。橋接器升級若更換模型,同步修改本插件固定值即可。新模型提醒與橋接器任務無關,不會改動橋接器配置。
不裝橋接器時,本插件仍可單獨用來固定默認模型;不裝本插件時橋接器也能工作,只是 DSH 新會話默認可能被會話內切換寫回 profile。
新模型提醒¶
按 modelCheckInterval(默認 7 天)檢查你已配置的 provider 端點是否出現模型目錄裏沒有的新模型;僅在側邊欄、官方模型頁或模型固定頁提醒,不會自動修改任何模型配置。詳情與狀態文件說明見倉庫 README「模型檢索週期」一節。
工作原理(簡要)¶
本插件通過 bundle patch 禁用內置 agent-default-model,自行註冊 agentDefaultModel:getDefault() 返回固定配置,saveSelection() 爲空操作。因此係統仍暴露會話內選擇器,但「寫回默認」路徑被切斷。已有會話、子代理與 headless 等行爲以 README「已有會話 / 子代理 / headless 行爲」爲準;完整機制見倉庫「工作原理」章節。
適用場景與注意¶
適合誰
- 希望新會話始終從固定
provider/model/ 推理強度開始,又需要單會話內臨時換模型對比; - 使用 Codex-to-DSH-Bridge、需要 DSH 默認模型與橋接器一致且不被會話內操作覆蓋;
- 希望配置可版本管理(
cordis.patch.yml),並收到 provider 上新模型的被動提醒。
務必注意
- 插件在 當前 DSH 進程的權限 下運行,會按配置訪問 provider 端點做模型目錄檢查;安裝前應閱讀 源碼 與 LICENSE,確認符合你的環境與合規要求。
- DSH 0.3.0 及以上不在當前
engines.dsh支持範圍內,跨 minor 升級可能需要插件重新適配。 - 社區目錄 skillhub.cn 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;DSH 生態本身是「一切皆插件」,本插件是社區維護的 profile bundle,不是 DSH 內置組件。
- 卸載並恢復內置默認模型行爲的方式見 README「卸載與回滾」;已知限制見「已知限制」。
結尾¶
dsh-model-pin 解決的是「新會話默認模型」與「會話內臨時切換」混在同一條寫回路徑上的問題:固定前者,不劫持後者。若你正在 DSH 上跑固定模型策略或 Codex 橋接工作流,可在安裝前核對版本與源碼,再通過 設置 → 模型固定 或 profile 配置落地。
- 目錄頁:https://www.skillhub.cn/plugins/SeyanaA/dsh-model-pin
- GitHub:https://github.com/SeyanaA/dsh-model-pin
- 問題反饋:https://github.com/SeyanaA/dsh-model-pin/issues