前言¶
在 DeepSeek Harness(DSH)裏換模型、調推理強度,通常走對話欄的模型選擇器。若網關是自建反代或第三方中轉,配置裏的模型 id 往往和 DSH 內置官方目錄對不上:推理檔位要麼被寫成統一的五檔,要麼乾脆沒有,和實際後端支持的 low/medium/high 等並不一致。上下文窗口若按中轉站上報的值寫滿,還容易出現請求 400——報的窗口比真正能用的更大。
下面介紹社區插件 dsh-better-model-selector(維護者 Asaiuta,分類:模型推理)。它不做端點探測、不髮網絡請求,而是讀取 DSH 安裝包內自帶的官方 pi-ai 模型目錄,逐模型對齊推理檔位,並在選擇器裏增加一行可點的「上下文長度」,方便在默認與若干固定檔位之間切換。
這是什麼¶
dsh-better-model-selector 給 DSH 模型選擇器補兩件事:
- 每個模型只暴露官方目錄裏有的推理等級(例如
sol認low/medium/high/xhigh,deepseek只有high/max,GPT 系列因型號而異),一檔不多給。 - 第三行「上下文長度」:默認不改任何窗口配置;需要時再選 262K、524K、1M、2.1M 等,只作用於當前模型。
數據來自本機 DSH 官方目錄,DSH 升級後目錄會一起更新,新模型一般不必等插件發版,重啓 DSH 即可同步。插件以當前 DSH 進程權限運行;安裝前建議在 GitHub 查看源碼與 MIT 許可證。
- 目錄頁:https://www.skillhub.cn/plugins/Asaiuta/dsh-better-model-selector
- 源碼:https://github.com/Asaiuta/dsh-better-model-selector
- 當前版本(package.json):0.1.0
裝完後的界面¶
根面板從兩行變爲三行:
模型 gpt-6.1-sol ›
推理等級 high ›
上下文長度 默認 › ← 插件增加
點「上下文長度」會整頁替換選項(與「推理等級」交互一致),例如:
默認 ✓
262K
524K
1M
2.1M
| 選項 | 含義 |
|---|---|
| 默認 | 不寫窗口配置,沿用 DSH 的 defaultContextWindow |
| 262K / 524K / 1M / 2.1M | 將該模型的窗口設爲對應值 |
| 更小的值 | 不列出(低於 DSH 默認無意義) |
使用約定:
- 選中後立即生效,下一次請求按新窗口計算,無需重啓 DSH(僅改 UI 時;檔位同步在啓動時讀配置,見下文日誌說明)。
- 只改當前模型;同網關下其他模型不動;僅當某模型的
maxTokens超過所選窗口時會隨之降低。 - 按
Esc先退回三行根面板,再按一次關閉選擇器。
檔位如何確定¶
插件不維護獨立模型表,而是從 DSH 內置官方目錄加載(README 示例日誌爲約 1650 條、43 個 provider 數據文件)。
- 官方給過哪幾檔就寫哪幾檔,不推斷、不倍增。
- 同一模型有多條通道記錄時,取票數最多的檔位簽名;平局取交集,交集爲空則不改。
- 名稱匹配失敗時依次嘗試:原 id → 去前綴後綴(如
[free]、z-ai/、-coding)→ 同族借用 → 仍失敗則保持原樣並在日誌點名。 - 運行期零網絡請求。
啓動日誌示例(用於確認插件在工作):
[better-selector] 官方目錄已加載:1650 條(…/app.asar (43 個 provider 數據文件))
[better-selector] 目標配置: …\profiles\desktop\cordis.patch.yml / 檔位: catalog / 容量: off
[better-selector] 已更新 34 個模型(啓動),備份 cordis.patch.yml.bak-better-selector-…
[better-selector] 官方不給檔位的模型 3 個,配置保持原樣: ziyong/MiniMax-M3, …
安裝與啓用¶
本插件未發佈到 npm(npm 上同名包屬於另一實現 Khellendros97/dsh-better-model-selector),需從 GitHub 安裝。
在 desktop profile 下執行:
cd ~/.dsh/profiles/desktop
pnpm add git+https://github.com/Asaiuta/dsh-better-model-selector.git
# 然後在 package.json 的 dsh.profile.bundles 里加上 "dsh-better-model-selector"
# 重啓 DSH
本地調試可改爲:
pnpm add link:/path/to/dsh-better-model-selector
SkillHub 等社區目錄與 DeepSeek / 幻方無官方從屬關係,安裝步驟以倉庫 README 爲準。
配置(可選)¶
在 cordis.patch.yml 中爲插件 better-selector 增加 config,字段均可省略:
- id: better-selector
config:
mode: catalog # 檔位:catalog(默認,按官方重寫)| fill(只補缺失)
capacity: off # 容量:off(默認,不寫窗口)| fill(只補缺失)| catalog(按官方重寫)
demote: false # 官方判定「無檔位」時是否寫 reasoningEfforts: false
patchPath: null # 不填則按 DSH_HOME/profiles/<profile> 推導
backup: true
watch: true # 監聽配置變化後自動同步
日常默認值即可。只有希望插件把官方窗口也寫入配置時才改 capacity;多數網關撐不住官方報的數值,默認 off 更安全。
典型用法與排查¶
手選上下文:在模型選擇器第三行選 262K 等,僅影響當前模型;選「默認」即移除插件對該模型的窗口寫入。
查看同步結果但不寫盤:
node bin/sync.mjs --patch <cordis.patch.yml> --dry-run --explain
每行末尾會標註匹配來源:exact / normalized / family。
檔位仍不對:確認已重啓 DSH(配置與插件在啓動時讀取);插件只保證與官方目錄一致,不能保證中轉後端認每一檔。
第三行顯示「默認」但數值不是 262K:「默認」表示未寫窗口項,具體由 DSH 的 defaultContextWindow 決定。
第三行灰字不可點:模型不在用戶配置層 models 中,或整份設置爲只讀;懸停可看原因。
適用場景與注意¶
適合:使用自定義網關、模型 id 與官方目錄接近或可通過規範化/同族匹配;希望選擇器檔位與 pi-ai 官方一致,並偶爾手動放大上下文窗口的用戶。
務必知曉:
- 官方目錄口徑不等於網關能力;插件不探測端點,窗口默認不動是刻意設計。
- 同族借用是推斷,不想要可刪對應配置行或使用
mode: fill。 - 僅處理塊序列寫法的
models;models: []的 flow 寫法會跳過並報錯。 compat字段(如thinkingFormat)插件不修改,仍需自行配置。
卸載:從 dsh.profile.bundles 移除 "dsh-better-model-selector",執行 pnpm remove dsh-better-model-selector,重啓 DSH。已寫入 cordis.patch.yml 的檔位與窗口會保留;插件曾自動備份最近 5 份 cordis.patch.yml.bak-better-selector-*,需要時可還原。
結尾¶
dsh-better-model-selector 用本機官方 pi-ai 目錄重寫每模型推理檔位,並在模型選擇器增加可切換的上下文長度行,避免「五檔全開」和盲目寫滿窗口。安裝前請覈對 GitHub 源碼與許可證;啓用後以 [better-selector] 日誌確認同步情況。