dsh-model-cascade:DeepSeek Harness 三级模型选择器

前言

DeepSeek Harness (DSH) 提供了通过插件扩展行为的能力。默认的模型选择器使用扁平列表,当模型库规模扩大时,滚动查找特定模型会降低操作效率。dsh-model-cascade 插件旨在解决这一问题,它将右下角的模型选择器重构为三级级联菜单,并在同一交互界面中提供了独立的思考强度设置入口。

核心功能

该插件主要提供以下能力:

  1. 三级级联选择:将模型选择拆分为供应商、系列、完整模型三个层级,减少单屏展示的模型数量。
  2. 面包屑导航:菜单顶部显示当前层级路径,支持点击返回上一级,或使用 Esc 键快速退级。
  3. 思考强度设置:当当前模型支持 reasoning 时,菜单顶部会出现独立的「思考强度」行,进入后可选择默认或指定档位。
  4. 状态同步:复用 DSH 内置的 ModelDirectory 服务,确保选中状态、加载提示与内置选择器保持一致。
  5. 遮蔽内置座位:通过 priority: -1 注册,自动遮蔽内置的两级模型列表。

安装与启用

安装此插件需要将文件放入 DSH 的 node_modules 目录,并修改 cordis.patch.yml 文件。

  1. 将插件文件放置到 node_modules 下对应目录。
  2. 在 cordis.patch.yml 中添加挂载配置:
- insert:
    - id: dsh-model-cascade
      name: dsh-model-cascade
  1. 修改配置后需要重启 DSH 实例,并在浏览器端进行硬刷新以加载浏览器半(lib/client.js)。

典型用法

启用后,输入框右下角的模型座位将变为级联菜单:

  1. 选择模型:点击模型按钮,依次选择供应商、系列,最后点击完整模型 ID 进行确认。
  2. 导航返回:在菜单顶部使用面包屑逐级返回,或在任意层级按 Esc 键退回上一级并关闭菜单。
  3. 设置思考强度:如果当前选中的模型支持推理,点击菜单顶部的「思考强度」行,在弹出的独立面板中选择强度值。

技术细节与依赖

  • 宿主与客户端:这是一个纯 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 服务层内部契约。

已知限制

  1. 系列分组逻辑:系列分组基于文本启发式切分(提取 ID 中 / 后和 - 前的字符串),而非基于元数据驱动。命名不统一(如版本号差异)会导致裂分成多个系列。
  2. 样式硬编码:CSS 锚点与宽度(min(280px, 100vw - 32px) 等)在代码中写死,样式注入仅执行一次。
  3. 预构建产物:lib/client.js 是 React JSX 编译后的预构建产物,非可直接阅读的源码。
  4. 子代理限制:在子代理会话(subagentAddress 存在)中,该座位不渲染。
羽毛球分组比赛记分
小程序二维码

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

小夜