dsh-codex-effort-switcher:为 DSH Composer 提供 Codex 风格的模型与推理强度选择器

前言

在 DeepSeek Harness(DSH)里写智能体或日常对话时,Composer 右侧的模型入口是高频操作:既要换模型,又要调 reasoning effort(推理强度)。DSH 自带模型选择器能完成切换,但交互形态与 Codex 类产品里「强度标签 + 分段滑条 + 按 Provider 分组的列表」并不相同。若你更习惯那种卡片式选模,或需要在同一面板里对比多个 effort 档位而不反复开关菜单,dsh-codex-effort-switcher 针对的是 Composer 这一块的呈现与操作路径,而不是另起一套会话或 Host 协议。

下面按「是什么 → 能做什么 → 怎么装 → 怎么用 → 和 DSH 怎么叠在一起」说明;事实以仓库 README 与 package 信息为准。

这是什么

dsh-codex-effort-switcher(GitHub:AndyZh0/dsh-codex-effort-switcher)由 AndyZh0 维护,在 SkillHub 社区目录中归类为「模型推理」。一句话定位:为 DSH Composer 替换模型选择 UI,用 Codex 风格卡片展示 effort 标签、不透明分段滑条,以及按 Provider 分组的模型列表;底层仍走 DSH 原有的 modelDirectories 与单次 session.selectModel,不新增面向模型的 Host 面。

许可证为 MIT,当前 package 版本为 0.2.2(以 package.json 为准)。

核心功能

Composer 模型位上的 Codex 风格卡片

插件在 Composer 的「模型位」(单占用槽位)以 priority: -1 注册第二个占用者,在视觉上遮住内置选择器,但不卸载内置实现。卡片包含:

  • Effort 面:当前强度(蓝色、带 chevron)在模型名上方;每个 advertised level 对应一个圆点;两行合成一个按钮,点任意处可进入模型列表。
  • 分段滑条:flat channel 上 solid pill 随旋钮移动;可点圆点或横向拖动;圆形箭头可将该模型恢复为默认 effort;最高档时 pill 由蓝变紫,并带有 light-violet 动效。
  • 选择模型面:按 Provider 分组列表,当前模型带勾选;换模型时,同一路由保留当前 level,否则采用目标路由的默认 level。

面板在改 level、改模型或改默认项时会保持打开,便于连续对比;点外部关闭;Esc 先从「选择模型」回到 effort 面,再关闭。触发器仍显示模型名与 level,并保留 shipped 的可访问名称;Composer 紧凑模式仍会折叠为模型 glyph。

与内置路径一致的状态

/model 命令、设置里的 Models 页、以及 Host 选择路径均保持 shipped 行为不变。在卡片里改模型或在上述任一处改模型,另一侧下次展示的是同一份选择;Host 仍只收到一次 session.selectModel。

第三方 effort 档位(codexModelTiers)

浏览器侧提供客户端服务 codexModelTiers(SeatTierRegistry)。其它 client 插件可注入该服务并注册 SeatTier(需实现 id、label、description、available(model)、effort(model)、active(sessionId)、apply(sessionId, selection, model, select) 等),卡片会把注册档位接在 shipped effort 之后;最高档使用 violet 的 data-ultra 皮肤。apply 内仍通过标准 select 调用,Host 依旧只见一次 session.selectModel。无贡献者时注册表为空,卡片与仅安装本插件时一致。

刻意不变与已知限制

  • 卡片为不透明设计,使用主题的 selector surface,无搜索框,列表滚动。
  • 仅当目录中存在多个 Provider 的模型时才显示 Provider 标题;单 Provider 为扁平列表。
  • 同一 priority 下若有两个插件同时占用模型槽会冲突抛错;两个 tier 共用同一 id 也会抛错。
  • Desktop 由应用自带插件管理器安装;CLI 会拒绝写入由 Desktop 管理的 profile。
  • 无 live patch 的 profile 在 boot 时 compose bundle,安装后需重启应用。
  • 卸载只移除 bundle 与卡片,不改动已保存的模型选择与会话日志。

安装与启用

插件不会自动写入任何 profile;需在本地构建打包后再 dsh plugin add。请使用 DSH 支持的 Node.js 版本,在插件源码目录执行(命令来自官方 README):

npm install --ignore-scripts --workspaces=false
npm run build
npm pack
dsh plugin --profile <profile> add "./dsh-codex-effort-switcher-0.2.2.tgz"

也可在 DSH 插件管理器中选择绝对路径的 .tgz 安装。请安装到你实际使用的 profile;Desktop 用户请用 Desktop 自带插件管理器,勿用 CLI 写 Desktop 管理的 profile。安装完成后重启应用。

安装前建议自行阅读仓库源码与 MIT 许可证;插件随当前 DSH 进程权限运行,与任何社区插件一样,应确认来源与行为后再启用。

典型用法

  1. 安装并重启后,点击 Composer 右侧的 model chip,卡片在 effort 面打开。
  2. 用圆点或滑条调整 reasoning effort;需要恢复该模型默认档位时,点圆形箭头。
  3. 在 effort 面点击模型名区域(或两行按钮区域)进入「选择模型」,在分组列表中选中目标模型。
  4. 若同时在 /model 或设置 Models 页修改模型,卡片与命令行/设置页会保持一致。
  5. 需要扩展最高档行为时,由独立 client 插件注册 codexModelTiers,本包仅提供注册表与 UI 挂载点。

开发或自测时可参考仓库中的:

npm run typecheck
npm test
node tests/browser-smoke.mjs

适用场景与注意

适合谁: 长期在 DSH Composer 里切换模型、并频繁调整 reasoning effort 的开发者;希望 UI 接近 Codex 卡片、且不想破坏 /model、设置页与 Host 协议一致性的用户;需要为 effort 增加自定义最高档、并愿意写 client 插件注册 SeatTier 的扩展作者。

注意: SkillHub(https://www.skillhub.cn/plugins/AndyZh0/dsh-codex-effort-switcher)是社区插件目录,与 DeepSeek、幻方无官方从属关系;DSH 生态强调「一切皆插件」,目录站是独立发现渠道,不是官方应用商店。README 写明本层 Model Experience: None——不改变模型侧能力,只改变 Composer 模型位的渲染与一次选择的到达方式。

结尾

dsh-codex-effort-switcher 把 Composer 模型入口收成一张 Codex 风格卡片,effort 与模型列表共用 DSH 既有 modelDirectories 与 session.selectModel;卸掉插件即可恢复内置选择器且无残留。更多细节与 Issue 见 GitHub 仓库;浏览与发现插件可打开 SkillHub 目录页。

  • 目录页:https://www.skillhub.cn/plugins/AndyZh0/dsh-codex-effort-switcher
  • GitHub:https://github.com/AndyZh0/dsh-codex-effort-switcher
羽毛球分组比赛记分
小程序二维码

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

小夜