dsh-custom-provider:DeepSeek Harness Web 自定义模型与子代理配置

DeepSeek Harness (DSH) Web 界面目前仅提供基础的模型列表展示,对于自定义模型(如 llm-pi-ai)的细粒度能力配置(如图片输入、推理等级映射)以及子代理委派时的模型选择策略,缺乏直接的操作入口。dsh-custom-provider 插件通过扩展设置页面,新增了「自定义模型」分区,补全了这些配置项。

插件简介

该插件是 DeepSeek Harness Web 设置页的扩展组件,由 homily707 维护。它将自定义模型的配置与官方的 Models 页面共存,通过新增的分区提供子代理模型白名单、图片输入支持及推理等级(Reasoning effort)映射功能。

核心功能

插件主要包含以下三个核心能力:

  1. 子代理模型白名单
    在设置面板顶部新增卡片,通过下拉框选择可用模型,不支持手动手填。启用后,subagent 工具会注册 list_subagent_models,允许在委派时从白名单中自选 provider、model 和 reasoning_effort。白名单外的路由会在创建子代理前被拦截。

  2. 图片输入支持
    针对不同模型提供逐模型能力映射:

    • llm-pi-ai:配置每模型的 input 字段。
    • llm-deepseek:配置每模型的 inputModalities 字段。
  3. 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,保存即可热加载。

已知限制与注意事项

  1. 模型默认档差异:llm-deepseek 路由无逐模型 effort 映射(适配器锁定在路由级);llm-pi-ai 逐模型字段仅包含能力映射,没有「每模型默认档」,默认档仅存在于路由级。
  2. 会话生效范围:子代理模型自选策略在会话创建时采样记录,仅对之后的新会话生效。
  3. Loader Patch 行为:loader patch 的 config 是整键替换,托管块需全量重声明 dsh-base 的 tool-subagent 基线。若 dsh 升级改变基线,需同步 index.js 中的 BASE_TOOL_CONFIG。
  4. 显式与隐式选择:省略显式选择的委派走父会话路由,不经白名单校验。

总结

dsh-custom-provider 解决了 DeepSeek Harness Web 界面在自定义模型能力配置和子代理委派控制上的缺失。通过直接修改设置页面的 wire,它实现了与官方 Models 页面共存且不冲突,适合需要对模型行为进行精细调优的开发者使用。

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

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

小夜