前言¶
DeepSeek Harness (DSH) 提供了通過插件擴展行爲的能力。默認的模型選擇器使用扁平列表,當模型庫規模擴大時,滾動查找特定模型會降低操作效率。dsh-model-cascade 插件旨在解決這一問題,它將右下角的模型選擇器重構爲三級級聯菜單,並在同一交互界面中提供了獨立的思考強度設置入口。
核心功能¶
該插件主要提供以下能力:
- 三級級聯選擇:將模型選擇拆分爲供應商、系列、完整模型三個層級,減少單屏展示的模型數量。
- 麪包屑導航:菜單頂部顯示當前層級路徑,支持點擊返回上一級,或使用
Esc鍵快速退級。 - 思考強度設置:噹噹前模型支持
reasoning時,菜單頂部會出現獨立的「思考強度」行,進入後可選擇默認或指定檔位。 - 狀態同步:複用 DSH 內置的
ModelDirectory服務,確保選中狀態、加載提示與內置選擇器保持一致。 - 遮蔽內置座位:通過
priority: -1註冊,自動遮蔽內置的兩級模型列表。
安裝與啓用¶
安裝此插件需要將文件放入 DSH 的 node_modules 目錄,並修改 cordis.patch.yml 文件。
- 將插件文件放置到
node_modules下對應目錄。 - 在
cordis.patch.yml中添加掛載配置:
- insert:
- id: dsh-model-cascade
name: dsh-model-cascade
- 修改配置後需要重啓 DSH 實例,並在瀏覽器端進行硬刷新以加載瀏覽器半(
lib/client.js)。
典型用法¶
啓用後,輸入框右下角的模型座位將變爲級聯菜單:
- 選擇模型:點擊模型按鈕,依次選擇供應商、系列,最後點擊完整模型 ID 進行確認。
- 導航返回:在菜單頂部使用麪包屑逐級返回,或在任意層級按
Esc鍵退回上一級並關閉菜單。 - 設置思考強度:如果當前選中的模型支持推理,點擊菜單頂部的「思考強度」行,在彈出的獨立面板中選擇強度值。
技術細節與依賴¶
- 宿主與客戶端:這是一個純 UI 插件。宿主半(
lib/index.js)的apply()函數爲空,僅用於在 Loader 中佔位。瀏覽器半(lib/client.js)註冊了conversation.input.model座位。 - 依賴服務:客戶端通過
inject獲取slots、modelDirectories、sessions、locale、remote、remote.session等服務。特別說明:雖然package.json聲明依賴ui-model-selection,但實際代碼require的是ui-primitives。 - 數據來源:數據直接讀取自
directory.subscribe和directory.getSnapshot(),包括groups、current、status及錯誤信息。 - 版本要求:依賴 DSH 0.1.5-rc.1 服務層內部契約。
已知限制¶
- 系列分組邏輯:系列分組基於文本啓發式切分(提取 ID 中
/後和-前的字符串),而非基於元數據驅動。命名不統一(如版本號差異)會導致裂分成多個系列。 - 樣式硬編碼:CSS 錨點與寬度(
min(280px, 100vw - 32px)等)在代碼中寫死,樣式注入僅執行一次。 - 預構建產物:
lib/client.js是 React JSX 編譯後的預構建產物,非可直接閱讀的源碼。 - 子代理限制:在子代理會話(
subagentAddress存在)中,該座位不渲染。