前言¶
在 DeepSeek Harness(DSH)里选模型,常见两类麻烦:一是菜单里堆满嵌入、生图、生视频等用不到的条目;二是官方 session.modelCatalog 只把模型 id、名称和推理档位交给浏览器,没有上下文窗口、输入模态和模型类型。自定义中转站若只写了 defaultInput: [text],而单个模型的 input 留空,registry 会把整站模型都当成「纯文本」,对话模型在输入框里发图会被拒。
维护者 TZYCeng 的插件 dsh-model-visibility(npm 包名 @tzyc/dsh-model-visibility,当前版本 1.9.0,MIT 许可证)在 DSH 里增加 设置 → 模型显示 页面:逐模型开关控制菜单可见性,并为每个模型合并标注推理能力、思考强度档位、上下文、模态与类型;必要时可手动覆盖,甚至写回模型提供商配置。下面介绍它做什么、怎么装、典型用法与注意事项。
这是什么¶
dsh-model-visibility 是 DeepSeek Harness 的 bundle 插件,分类属于模型推理相关能力。它不改变 DSH 核心,而是在设置里提供一张按提供商分组的模型清单:关掉的不出现在对话作曲器的模型菜单里;留下的每一行带能力标签,标签来源分层显示(实线为已声明,虚线为目录或推断)。
插件解决的三件事与 README 表述一致:收起来(隐藏不用模型)、说清楚(真实能力与来源)、改得动(手动覆盖、可选写回 Provider、默认可让判定为多模态的中转站对话模型在请求侧接受图像)。
核心功能¶
模型菜单与分组¶
- 逐模型开关:关闭的模型立即从模型菜单消失;当前会话正在使用的模型即使被关也会保留(便于收起态仍显示模型名)。
- 分组批量操作:每组标题右侧可「全组隐藏 / 全组显示」;工具栏「全部显示」一次清空隐藏;在筛选状态下批量操作只作用于当前筛选结果。
- 分组折叠:折叠状态保存在浏览器
localStorage,不改动任何模型开关;工具栏可一次折叠或展开全部分组。
能力标签与筛选¶
能力标签包括:是否支持推理及适配器公布的思考强度档位;上下文窗口(如 上下文 1M);多模态 / 纯文本 / 未知;类型色条区分对话、生图、生视频、嵌入、重排、音频、审核、翻译等。
筛选支持:按名称或 ID 搜索;按类型快捷筛选;按「多模态」「支持推理」;按最小上下文(128K / 256K / 512K / 1M);多条件同时生效。
能力从哪里来¶
插件按优先级合并六类来源,每层只补前一层缺失字段;页面悬停可看到具体来源,并用实线 / 虚线区分声明与推断:
| 优先级 | 来源 | 说明 |
|---|---|---|
| 0 | manual | 用户在设置页手动声明 |
| 1 | config | 设置文档或 Provider 显式模态 |
| 2 | adapter | 适配器 / 内置目录侧声明 |
| 3 | provider | 中转站 GET /models 返回的字段 |
| 4 | catalog | 内置 pi-ai / models.dev 快照 |
| 5 | inferred | 模型名特征推断 |
另有 official 校正(如 glm-5.3 按厂商文档纠正目录多模态错误)和 unknown(不把未声明的 defaultInput: [text] 当成纯文本)。manual 优先级最高。
手动覆盖与写回提供商¶
模型行「编辑能力」可指定类型、上下文、输入模态、思考强度或「不支持推理」。全部留空保存即删除覆盖,恢复自动识别。覆盖持久化在 $DSH_HOME/dsh-model-visibility/overrides.json,Host 按文件 mtime 重读。
勾选「同时写入模型提供商设置」时,会把 input、contextWindow、reasoningEfforts 等写入 llm-pi-ai 里对应模型条目,与输入框、适配器及其他设置界面共用同一份事实。成功写入的字段会从 overrides.json 移除。
示例(摘自 README,字段名以文档为准):
{
"version": 1,
"overrides": [{
"provider": "chatgpt",
"model": "gpt-6.1-terra",
"input": ["text", "image"],
"contextWindow": 400000,
"efforts": [
{ "id": "low", "name": "Low" },
{ "id": "high", "name": "High" }
],
"defaultEffort": "high"
}]
}
图像放行¶
默认开启的开关「让输入框按能力标注放行图像」:对判定可输入图像的中转站对话模型,在请求侧补上 image,无需改配置文件;关闭则回到适配器声明。
隐藏列表持久化与其他¶
隐藏列表写入 profile 的 cordis.patch.yml,并镜像到 $DSH_HOME/dsh-model-visibility/hidden.json,重装或 profile 自愈后可恢复。工具栏「重新获取能力」会作废旧缓存与进行中的扫描,重新询问适配器与中转站(比仅绕过 TTL 的「刷新」更彻底)。支持模型 ID 归一化后再匹配目录。
安装与启用¶
可在社区目录页一键安装(独立站点 awesome-dsh-plugin 列表页,与 DeepSeek / 幻方无官方从属关系),或使用 plugin_manager 的 install_bundle。README 给出的方式如下:
# 1) 插件市场(推荐)
# https://awesome-dsh-plugin.com/p/TZYCeng/dsh-model-visibility/
# 2) npm(plugin_manager)
# install_bundle target = @tzyc/dsh-model-visibility
# 3) GitHub Release tar 包
# install_bundle target = https://github.com/TZYCeng/dsh-model-visibility/releases/latest/download/dsh-model-visibility.tgz
# 4) 本地目录(开发)
# profile 里 link 这个目录,并先安装依赖:
npm install
说明:npm 上的未作用域包名 dsh-model-visibility 属于另一个同名项目,本插件发布在 @tzyc/dsh-model-visibility。
安装后刷新页面或重启 DSH,在 设置 → 模型显示 打开页面。SkillHub 目录页:https://www.skillhub.cn/plugins/TZYCeng/dsh-model-visibility。
典型用法¶
- 先瘦身菜单:在中转站分组里关闭嵌入、生图等不用的模型,或用「全组隐藏」再逐个打开需要的对话模型。
- 核对发图能力:看行内模态标签与虚线 / 实线来源;若中转站
GET /models只有 id,对新模型点「编辑能力」声明text+image,需要长期生效可勾选写回 Provider。 - 过滤长上下文:在筛选栏选最小上下文 1M,再配合「支持推理」,快速缩小候选列表。
- 目录与中转站不一致:若出现「官方校正」标签,以文档链接为准;仍不对时可手动覆盖,必要时用「重新获取能力」刷新中转站列表。
界面顶部会显示类似「已显示 86 / 301 个模型 · 已关闭 215 个」的统计,并与搜索、类型按钮、图像放行开关、图例同屏操作。
适用场景与注意¶
适合谁:配置了多个模型提供商或 OpenAI 兼容中转站、模型数量多、需要在菜单里区分对话与生图 / 嵌入、或经常被 defaultInput: [text] 误导模态的用户。
运行与信任:插件以当前 DSH 进程权限运行,会读取并 patch 设置、调用中转站 GET /models、写入 profile 与 $DSH_HOME 下 JSON。安装前应查看 GitHub 仓库 源码与 MIT 许可证,仅在可信环境启用。
已知边界(来自 README 结构中的「限制」章节标题及前文逻辑):手动「恢复自动」只删插件覆盖,不会自动清空已写入 Provider 的配置;写回失败时本地覆盖仍生效,需在「设置 → 模型提供商」手动撤销。README 标明测试 72 passing,具体限制条目以仓库文档为准。
结尾¶
dsh-model-visibility 把 DSH 模型菜单从「一长串 id」变成可搜索、可筛选、带来源说明的能力清单,并能把隐藏偏好与覆盖持久化。若你正在维护多中转站或自定义模型列表,值得在装 bundle 后先打开 设置 → 模型显示 收一遍菜单、标一遍能力。