dsh-composer-model-controls:把模型與推理強度放到 Composer 輸入行

前言

在 DeepSeek Harness(DSH)裏調模型和推理等級,默認要經輸入框工具行的小 chip,打開 /model 彈層,再進二級列表。發消息前如果經常在這兩項之間切換,路徑偏長,當前檔位也不夠一眼可見。dsh-composer-model-controls 是社區維護者 timxiang-948 的純 UI 客戶端插件:把模型選擇和推理強度直接嵌進輸入卡片底行,與權限控件同一行、發送按鈕左側;推理強度用 Codex 風格的滑塊面板操作,並與 /model 共用同一份會話狀態。

這是什麼

插件全名 dsh-composer-model-controls(npm 包名同),當前版本 0.4.5,許可證 MIT,面向 DSH 客戶端插槽 API(engines.dsh 要求 >=0.2.2-rc.1 <0.3.0)。它是瀏覽器半端 UI 擴展:Node 半端 apply 爲空,前端由 package.json#dsh.client 聲明,經 @deepseek-ai/dsh-client-modules 加載;不修改 DSH 內置包,只使用公開插槽與 ctx.modelDirectories、ctx.shortcuts。

與默認交互的差異

DSH 默認把模型與推理等級收在 /model 裏。本插件在同一 ModelDirectory 上讀寫,任意一側切換,另一側即時同步:

  • 模型 chip:按供應商分組列出目錄中的全部模型,當前項勾選。
  • 推理強度 chip:顯示當前檔位,點開爲滑塊面板;檔位完全來自當前模型在模型目錄裏公開的 reasoning.efforts,不做硬編碼。

子代理(subagent)會話不渲染這些控件;新會話 hero 階段尚無 dock/工具行時,會通過 conversation.hero.options 出現在 workspace/preset 選項行。

核心功能

控件位置

註冊在 conversation.input.model 插槽(priority: -1),渲染在輸入卡片底行:權限 chip 右側、發送按鈕左側。

推理強度滑塊

點擊或拖動軌道可切換檔位,鬆手吸附到最近檔位。軌道僅滑塊左側着色並帶向左發射的星塵粒子;右側留白。顏色隨檔位與拖動過程變化:Off 爲中性色 #5b6270,Low 綠、High 藍、Max 橙,其它自定義檔位在綠→藍→橙之間插值;長跨度過渡會柔化飽和度與亮度,避免途中出現刺眼鮮紅或熒光青。輸入框與卡片通過 box-shadow 內描邊加外柔光顯示 1px 彩色描邊(DSH 卡片本身 border:0,直接改 border 不會顯示),拖動時顏色跟軌道同步,鬆手後穩定在已確認檔位。

支持 Shift + Tab 從低到高循環切換推理等級(跳過 Off,到頂後回到最低檔),經 ctx.shortcuts 註冊;若 id 被佔用或服務不可用,會降級爲 document 級 keydown 監聽。

select() 提交期間保留樂觀檔位,避免吸附後閃回舊檔位;失敗則回滾並調用 directory.load() 重新同步;選擇進行中兩個 chip 會禁用,避免併發切換。

未聲明 reasoning.efforts 的模型

若目錄中無 reasoning.efforts(常見於自接 provider),點開推理強度 chip 會顯示指引,說明在 profile 的 cordis.patch.yml 裏爲 provider 的 models 聲明 reasoningEfforts,並給出可複製的 YAML 片段。資料註明:settings.yaml 爲舊版入口,當前配置寫在 profile 的 cordis.patch.yml。

示例片段(來自 README):

my-provider:
  displayName: My Provider
  apiKeyEnv: MY_PROVIDER_API_KEY
  api: openai-completions
  baseURL: https://example.com/v1
  models:
    - id: my-model
      name: My Model
      reasoningEfforts:
        off:            # 關閉推理
        low: low        # 低
        medium: medium  # 中
        high: high      # 高

開發與預覽(維護者向)

lib/client.js 爲手寫瀏覽器模塊,僅依賴 react、react-dom 與 @deepseek-ai/dsh-client-ui-primitives,無需構建。維護者可用 tools/preview/build.mjs 生成獨立 Composer 卡片預覽頁,在 headless Edge 中做視覺與交互驗證。一般用戶安裝插件即可使用,無需本地編譯。

安裝與啓用

插件以當前 DSH profile 的依賴形式安裝,會寫入 profile 的 dependencies 與 dsh.profile.bundles;支持 HMR,頁面未更新時可刷新一次。

公開發布後從 npm 安裝:

dsh plugin --profile desktop add dsh-composer-model-controls

本地開發可用路徑安裝(README 示例爲 Windows 路徑,Linux/macOS 請換成自己的絕對路徑):

dsh plugin --profile desktop add D:\MyProjects\harness\deepseekharness\dsh-composer-model-controls

也可在 DSH 插件管理界面用「本地路徑安裝」,或從社區插件市場安裝(目錄頁見文末鏈接)。安裝前請自行查看倉庫源碼與 MIT 許可證;插件在 DSH 進程權限下運行,與所有客戶端插件一樣,應對來源與行爲有基本判斷。

典型用法

1、安裝並啓用插件後,打開桌面版 DSH(資料記錄已在 0.2.2-rc.1 實機驗證),進入普通會話(非 subagent)。

2、在輸入卡片底行查看模型 chip 與推理強度 chip:點模型 chip 按供應商切換模型;點推理強度 chip 打開滑塊,拖動或點擊軌道切換檔位,鬆手吸附。

3、需要快速循環檔位時,在輸入框聚焦狀態下使用 Shift + Tab(若與宿主其它快捷鍵衝突,可在快捷鍵設置中改綁,或留意插件是否已退回 document 監聽)。

4、模型與 /model 彈層中的選擇保持同步;任一處修改,另一側應立即一致。

適用場景與注意

適合誰:經常在 Composer 裏切換模型或推理強度、希望檔位有顏色與描邊反饋、又不想到 /model 裏找二級菜單的 DSH 桌面用戶。

兼容性:面向 DSH 0.2.2-rc.1 一代客戶端 API;node 引擎要求 >=20。若宿主已佔用 Shift+Tab,需注意衝突與降級行爲。

安全與信任:社區插件目錄(skillhub.cn)與 GitHub 倉庫由維護者獨立發佈,與 DeepSeek / 幻方無官方從屬關係;安裝即信任其前端代碼在瀏覽器中執行,請從官方 README 給出的命令與路徑安裝,勿編造未文檔化的安裝串。

結尾

dsh-composer-model-controls 把模型目錄與推理檔位搬到輸入行,用滑塊、顏色與快捷鍵縮短操作路徑,並與 /model 共享 ModelDirectory 狀態。查閱說明與版本歷史:

羽毛球分组比赛记分
小程序二维码

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

小夜