前言¶
在 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 进程权限运行,与任何社区插件一样,应确认来源与行为后再启用。
典型用法¶
- 安装并重启后,点击 Composer 右侧的 model chip,卡片在 effort 面打开。
- 用圆点或滑条调整 reasoning effort;需要恢复该模型默认档位时,点圆形箭头。
- 在 effort 面点击模型名区域(或两行按钮区域)进入「选择模型」,在分组列表中选中目标模型。
- 若同时在
/model或设置 Models 页修改模型,卡片与命令行/设置页会保持一致。 - 需要扩展最高档行为时,由独立 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