dsh-model-pin:固定 DSH 新會話默認模型

前言

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 註冊(推薦)

  1. 確認插件目錄已在上述固定位置。
  2. 在 DeepSeek Harness 中新建對話,對 Agent 說明(路徑換成你的絕對路徑):
   把 ~/.dsh/local-plugins/dsh-model-pin 作爲本地插件註冊到當前 profile。

Agent 會通過 plugin_manager 的 install_bundle 完成依賴鏈接與 bundle 註冊。

  1. 完全退出並重新打開 DeepSeek Harness。
  2. 打開 設置 → 模型固定,確認或修改固定值後點 保存。

方式二:手動註冊

適合批量部署或不想讓 Agent 代操作的情況。

  1. 編輯 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"
         ]
       }
     }
   }
  1. 在 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
  1. 完全退出並重新打開 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(可改爲「手動」)

典型用法

日常固定默認模型

  1. 打開 設置 → 模型固定,在「默認對話模型」中選擇 供應商 / 模型 / 推理強度,點 保存。
  2. 新建會話:默認即爲你固定的一組;在會話內用選擇器或 /model 臨時換模型,隻影響當前會話。
  3. 需要長期改默認時,只改設置頁或 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
羽毛球分组比赛记分
小程序二维码

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

小夜