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

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

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

小夜