前言¶
在 DeepSeek Harness(DSH)Web 客户端里,Composer 顶部的模型选择器默认只显示模型名,例如 Example Chat · High。当你在同一套配置里挂了多个供应商、模型名又相近时,光看触发器很难确认当前会话实际走的是哪一路。社区插件 dsh-model-show(维护者 ken95573,分类:模型推理)不改下拉菜单结构,只把触发器、悬停提示和 ARIA 标签改成 Provider/Model 形式,与内置模型选择插件配合使用。
下面介绍插件定位、能力边界、安装方式与验收步骤。事实以 GitHub 仓库 README 与 package.json 为准;目录页见 SkillHub 插件页。
这是什么¶
dsh-model-show 是面向 DSH web 客户端的插件包(当前版本 1.0.1,许可证 MIT)。它在 Composer 的模型选择器触发器上同时展示 供应商名称 与 模型名称,格式固定为 Provider/Model;若模型上报 reasoning effort,DSH 原有的 · <effort> 后缀仍会保留。
README 中的对比示例:
| Composer 触发器文案 | |
|---|---|
| 安装前 | Example Chat · High |
| 安装后 | Example Provider/Example Chat · High |
下拉菜单本身不被改写:各行仍是在供应商分组标题下的纯模型名,搜索仍按纯模型名匹配;供应商名称不会参与菜单内搜索。供应商显示名来自你自己的模型配置里每个 provider 行的 displayName(例如 Example Provider)。
核心功能¶
- 触发器文案:当前选中项在 Composer 上显示为
Provider/Model(及可选的 effort 后缀)。 - 无障碍与悬停:hover tooltip 与 ARIA label 与可见触发器使用相同
Provider/Model文本。 - 阴影内置席位:插件复用内置
@deepseek-ai/dsh-client-ui-model-selection的modelDirectories服务,以更低优先级注册 Composer seat,覆盖内置展示逻辑;内置模型选择插件需保持启用。 - 无配置项:展示格式固定,README 明确说明 No configuration。
环境与依赖¶
- DSH 版本(
engines.dsh):>= 0.2.0-rc.1 < 0.3.0-0或>= 0.2.1-rc.1 < 0.4.0-0;面向 web 客户端平台。README 写明在 Desktop runtime0.2.0-rc.2上开发,并在0.2.1-rc.2上重新 vendoring 与测试。 - 内置插件:
@deepseek-ai/dsh-client-ui-model-selection必须保持启用;本插件只「阴影」Composer 席位,不替代整套模型目录服务。
安装与启用¶
插件以当前 DSH 进程权限运行。安装前建议在 GitHub 查看源码与 MIT 许可证(lib/client.js 衍生自 DeepSeek 内置 bundle,见仓库 NOTICE.md)。
插件市场¶
在目标 DSH 应用中打开插件市场,搜索包名 dsh-model-show,安装后启用。
Desktop CLI¶
Desktop 应用自带 CLI(desktop profile 仅由该应用管理)。在 Windows 上示例命令如下(路径来自 README):
"%LOCALAPPDATA%\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add dsh-model-show
从 GitHub 或本地目录添加时,README 给出的形式为(将 <user>、路径替换为实际值):
"%LOCALAPPDATA%\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add github:<user>/dsh-model-show
"%LOCALAPPDATA%\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add "C:\path\to\dsh-model-show"
卸载:
"%LOCALAPPDATA%\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop remove dsh-model-show
在 DSH 会话中¶
可在会话里让智能体通过 plugin_manager 的 action: install_bundle,以插件目录为 target 安装。
安装后请刷新页面。若要用不同构建替换已加载的插件,README 要求 重启应用。
典型用法与验收¶
本插件没有额外配置文件或 API 调用;启用并选好模型后,直接观察 Composer 触发器即可。
README 建议的验收步骤:
- Composer 触发器显示
Provider/Model(若模型有 reasoning effort,则还带· <effort>)。 - 悬停触发器,文案与可见文本一致。
- 打开下拉菜单:分组标题下仍是纯模型名;用供应商名搜索 不应 匹配到模型项。
仓库文档截图示例:供应商 OpenCode Zen、模型 DeepSeek V4.1 Flash,触发器类似 OpenCode Zen/DeepSeek V4.1 Flash 加 DSH 自带的 Default 等 effort 后缀(见 README 与 docs/composer-trigger.png)。
实现要点(便于排查)¶
- Node 侧
lib/index.js为空实现,用于挂载 bundle;浏览器侧经dsh.client与exports["./client"]加载。 cordis.patch.yml插入插件行(id: model-show,name: dsh-model-show)。lib/client.js为内置模型选择浏览器 bundle 的 vendored 副本,含六处 documented 编辑;可见变化主要来自对choices[].model.name加供应商前缀,以及以priority: -1注册 Composer seat。- 标签前缀加在触发器读取的
currentChoice?.model.name上,因此菜单分组与搜索逻辑保持不变。
适用场景与限制¶
适合:多供应商、多模型并存,需要在 Composer 上一眼区分「哪家的哪个模型」,又不想改下拉或搜索行为的使用者。
限制(README Limitations):
lib/client.js随上游内置 selector 演进可能失效;engines.dsh、vendoring 脚本与npm test是维护时的护栏。- 继承内置控件的样式与触发器宽度
min(360px, 45cqw);过长的Provider/Model会被省略号截断,不会换行。 - 不能随意裁剪 vendored bundle 的 inject 服务列表,否则可能出现首屏渲染错误且静默回退到内置席位。
- 未来 DSH 若重做内置模型选择器,可能需要作者重新 vendoring 并更新编辑锚点。
结尾¶
dsh-model-show 用最小改动回答一个问题:当前 Composer 会话到底用的是哪个供应商下的哪个模型。安装启用后刷新(或必要时重启),按上文三步验收即可。
- 社区目录页:https://www.skillhub.cn/plugins/ken95573/dsh-model-show
- 源码与说明:https://github.com/ken95573/dsh-model-show