前言¶
在 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 状态。查阅说明与版本历史: