dsh-codex-effort-switcher:爲 DSH Composer 提供 Codex 風格的模型與推理強度選擇器

前言

在 DeepSeek Harness(DSH)裏寫智能體或日常對話時,Composer 右側的模型入口是高頻操作:既要換模型,又要調 reasoning effort(推理強度)。DSH 自帶模型選擇器能完成切換,但交互形態與 Codex 類產品裏「強度標籤 + 分段滑條 + 按 Provider 分組的列表」並不相同。若你更習慣那種卡片式選模,或需要在同一面板裏對比多個 effort 檔位而不反覆開關菜單,dsh-codex-effort-switcher 針對的是 Composer 這一塊的呈現與操作路徑,而不是另起一套會話或 Host 協議。

下面按「是什麼 → 能做什麼 → 怎麼裝 → 怎麼用 → 和 DSH 怎麼疊在一起」說明;事實以倉庫 README 與 package 信息爲準。

這是什麼

dsh-codex-effort-switcher(GitHub:AndyZh0/dsh-codex-effort-switcher)由 AndyZh0 維護,在 SkillHub 社區目錄中歸類爲「模型推理」。一句話定位:爲 DSH Composer 替換模型選擇 UI,用 Codex 風格卡片展示 effort 標籤、不透明分段滑條,以及按 Provider 分組的模型列表;底層仍走 DSH 原有的 modelDirectories 與單次 session.selectModel,不新增面向模型的 Host 面。

許可證爲 MIT,當前 package 版本爲 0.2.2(以 package.json 爲準)。

核心功能

Composer 模型位上的 Codex 風格卡片

插件在 Composer 的「模型位」(單佔用槽位)以 priority: -1 註冊第二個佔用者,在視覺上遮住內置選擇器,但不卸載內置實現。卡片包含:

  • Effort 面:當前強度(藍色、帶 chevron)在模型名上方;每個 advertised level 對應一個圓點;兩行合成一個按鈕,點任意處可進入模型列表。
  • 分段滑條:flat channel 上 solid pill 隨旋鈕移動;可點圓點或橫向拖動;圓形箭頭可將該模型恢復爲默認 effort;最高檔時 pill 由藍變紫,並帶有 light-violet 動效。
  • 選擇模型面:按 Provider 分組列表,當前模型帶勾選;換模型時,同一路由保留當前 level,否則採用目標路由的默認 level。

面板在改 level、改模型或改默認項時會保持打開,便於連續對比;點外部關閉;Esc 先從「選擇模型」回到 effort 面,再關閉。觸發器仍顯示模型名與 level,並保留 shipped 的可訪問名稱;Composer 緊湊模式仍會摺疊爲模型 glyph。

與內置路徑一致的狀態

/model 命令、設置裏的 Models 頁、以及 Host 選擇路徑均保持 shipped 行爲不變。在卡片裏改模型或在上述任一處改模型,另一側下次展示的是同一份選擇;Host 仍只收到一次 session.selectModel。

第三方 effort 檔位(codexModelTiers)

瀏覽器側提供客戶端服務 codexModelTiers(SeatTierRegistry)。其它 client 插件可注入該服務並註冊 SeatTier(需實現 id、label、description、available(model)、effort(model)、active(sessionId)、apply(sessionId, selection, model, select) 等),卡片會把註冊檔位接在 shipped effort 之後;最高檔使用 violet 的 data-ultra 皮膚。apply 內仍通過標準 select 調用,Host 依舊只見一次 session.selectModel。無貢獻者時註冊表爲空,卡片與僅安裝本插件時一致。

刻意不變與已知限制

  • 卡片爲不透明設計,使用主題的 selector surface,無搜索框,列表滾動。
  • 僅當目錄中存在多個 Provider 的模型時才顯示 Provider 標題;單 Provider 爲扁平列表。
  • 同一 priority 下若有兩個插件同時佔用模型槽會衝突拋錯;兩個 tier 共用同一 id 也會拋錯。
  • Desktop 由應用自帶插件管理器安裝;CLI 會拒絕寫入由 Desktop 管理的 profile。
  • 無 live patch 的 profile 在 boot 時 compose bundle,安裝後需重啓應用。
  • 卸載只移除 bundle 與卡片,不改動已保存的模型選擇與會話日誌。

安裝與啓用

插件不會自動寫入任何 profile;需在本地構建打包後再 dsh plugin add。請使用 DSH 支持的 Node.js 版本,在插件源碼目錄執行(命令來自官方 README):

npm install --ignore-scripts --workspaces=false
npm run build
npm pack
dsh plugin --profile <profile> add "./dsh-codex-effort-switcher-0.2.2.tgz"

也可在 DSH 插件管理器中選擇絕對路徑的 .tgz 安裝。請安裝到你實際使用的 profile;Desktop 用戶請用 Desktop 自帶插件管理器,勿用 CLI 寫 Desktop 管理的 profile。安裝完成後重啓應用。

安裝前建議自行閱讀倉庫源碼與 MIT 許可證;插件隨當前 DSH 進程權限運行,與任何社區插件一樣,應確認來源與行爲後再啓用。

典型用法

  1. 安裝並重啓後,點擊 Composer 右側的 model chip,卡片在 effort 面打開。
  2. 用圓點或滑條調整 reasoning effort;需要恢復該模型默認檔位時,點圓形箭頭。
  3. 在 effort 麪點擊模型名區域(或兩行按鈕區域)進入「選擇模型」,在分組列表中選中目標模型。
  4. 若同時在 /model 或設置 Models 頁修改模型,卡片與命令行/設置頁會保持一致。
  5. 需要擴展最高檔行爲時,由獨立 client 插件註冊 codexModelTiers,本包僅提供註冊表與 UI 掛載點。

開發或自測時可參考倉庫中的:

npm run typecheck
npm test
node tests/browser-smoke.mjs

適用場景與注意

適合誰: 長期在 DSH Composer 裏切換模型、並頻繁調整 reasoning effort 的開發者;希望 UI 接近 Codex 卡片、且不想破壞 /model、設置頁與 Host 協議一致性的用戶;需要爲 effort 增加自定義最高檔、並願意寫 client 插件註冊 SeatTier 的擴展作者。

注意: SkillHub(https://www.skillhub.cn/plugins/AndyZh0/dsh-codex-effort-switcher)是社區插件目錄,與 DeepSeek、幻方無官方從屬關係;DSH 生態強調「一切皆插件」,目錄站是獨立發現渠道,不是官方應用商店。README 寫明本層 Model Experience: None——不改變模型側能力,只改變 Composer 模型位的渲染與一次選擇的到達方式。

結尾

dsh-codex-effort-switcher 把 Composer 模型入口收成一張 Codex 風格卡片,effort 與模型列表共用 DSH 既有 modelDirectories 與 session.selectModel;卸掉插件即可恢復內置選擇器且無殘留。更多細節與 Issue 見 GitHub 倉庫;瀏覽與發現插件可打開 SkillHub 目錄頁。

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

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

小夜