DeepSeek Harness (DSH) Web 界面目前僅提供基礎的模型列表展示,對於自定義模型(如 llm-pi-ai)的細粒度能力配置(如圖片輸入、推理等級映射)以及子代理委派時的模型選擇策略,缺乏直接的操作入口。dsh-custom-provider 插件通過擴展設置頁面,新增了「自定義模型」分區,補全了這些配置項。
插件簡介¶
該插件是 DeepSeek Harness Web 設置頁的擴展組件,由 homily707 維護。它將自定義模型的配置與官方的 Models 頁面共存,通過新增的分區提供子代理模型白名單、圖片輸入支持及推理等級(Reasoning effort)映射功能。
核心功能¶
插件主要包含以下三個核心能力:
-
子代理模型白名單
在設置面板頂部新增卡片,通過下拉框選擇可用模型,不支持手動手填。啓用後,subagent工具會註冊list_subagent_models,允許在委派時從白名單中自選provider、model和reasoning_effort。白名單外的路由會在創建子代理前被攔截。 -
圖片輸入支持
針對不同模型提供逐模型能力映射:llm-pi-ai:配置每模型的input字段。llm-deepseek:配置每模型的inputModalities字段。
-
Reasoning effort 映射
llm-pi-ai:支持每模型的reasoningEfforts配置(勾選等級生成選擇器,值爲線路拼寫,off可留空,false表示非推理模型)。llm-deepseek:推理等級集合固定且鎖定在路由級,此頁僅提供路由級字段。
安裝與啓用¶
安裝命令如下:
dsh plugin --profile web add "github:homily707/dsh-custom-provider"
安裝完成後,需將插件包名添加到 ~/.dsh/profiles/web/package.json 的 dsh.profile.bundles 數組中,重啓 dsh web 或 dsh --profile web 後刷新頁面,設置面板將出現「自定義模型」分區。
典型用法與配置¶
導航圖標(可選)¶
設置面板左列的圖標目前是宿主硬編碼的。若需讓「自定義模型」分區顯示與「模型」頁相同的圖標,需通過 Python 腳本修改宿主文件 client.js:
python3 - <<'EOF'
f = '<dsh 安裝目錄>/node_modules/@deepseek-ai/dsh-client-ui-settings-general/lib/client.js'
s = open(f).read()
old = '\t\tif (id === "agent-presets") return'
new = '\t\tif (id === "custom-provider") return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconDataOutline16, {\n\t\t\tclassName: SettingsRoot_module_css_default.navIcon,\n\t\t\tsize: 16\n\t\t});\n' + old
assert s.count(old) == 1
open(f, 'w').write(s.replace(old, new))
EOF
本地開發¶
本地開發時,使用 link 方式添加插件:
dsh plugin --profile web add link:<本倉庫檢出路徑>
子代理配置託管¶
子代理配置通過託管塊寫入 $DSH_HOME/cordis.patch.yml,使用 # >>>/<<< dsh-custom-provider subagent (managed) 標記塊。配置變更後,Web profile 的 patchReload 爲 live,保存即可熱加載。
已知限制與注意事項¶
- 模型默認檔差異:
llm-deepseek路由無逐模型 effort 映射(適配器鎖定在路由級);llm-pi-ai逐模型字段僅包含能力映射,沒有「每模型默認檔」,默認檔僅存在於路由級。 - 會話生效範圍:子代理模型自選策略在會話創建時採樣記錄,僅對之後的新會話生效。
- Loader Patch 行爲:loader patch 的
config是整鍵替換,託管塊需全量重聲明dsh-base的tool-subagent基線。若 dsh 升級改變基線,需同步index.js中的BASE_TOOL_CONFIG。 - 顯式與隱式選擇:省略顯式選擇的委派走父會話路由,不經白名單校驗。
總結¶
dsh-custom-provider 解決了 DeepSeek Harness Web 界面在自定義模型能力配置和子代理委派控制上的缺失。通過直接修改設置頁面的 wire,它實現了與官方 Models 頁面共存且不衝突,適合需要對模型行爲進行精細調優的開發者使用。