前言¶
在 DeepSeek Harness(DSH)里换模型、调推理强度,通常走对话栏的模型选择器。若网关是自建反代或第三方中转,配置里的模型 id 往往和 DSH 内置官方目录对不上:推理档位要么被写成统一的五档,要么干脆没有,和实际后端支持的 low/medium/high 等并不一致。上下文窗口若按中转站上报的值写满,还容易出现请求 400——报的窗口比真正能用的更大。
下面介绍社区插件 dsh-better-model-selector(维护者 Asaiuta,分类:模型推理)。它不做端点探测、不发网络请求,而是读取 DSH 安装包内自带的官方 pi-ai 模型目录,逐模型对齐推理档位,并在选择器里增加一行可点的「上下文长度」,方便在默认与若干固定档位之间切换。
这是什么¶
dsh-better-model-selector 给 DSH 模型选择器补两件事:
- 每个模型只暴露官方目录里有的推理等级(例如
sol认low/medium/high/xhigh,deepseek只有high/max,GPT 系列因型号而异),一档不多给。 - 第三行「上下文长度」:默认不改任何窗口配置;需要时再选 262K、524K、1M、2.1M 等,只作用于当前模型。
数据来自本机 DSH 官方目录,DSH 升级后目录会一起更新,新模型一般不必等插件发版,重启 DSH 即可同步。插件以当前 DSH 进程权限运行;安装前建议在 GitHub 查看源码与 MIT 许可证。
- 目录页:https://www.skillhub.cn/plugins/Asaiuta/dsh-better-model-selector
- 源码:https://github.com/Asaiuta/dsh-better-model-selector
- 当前版本(package.json):0.1.0
装完后的界面¶
根面板从两行变为三行:
模型 gpt-6.1-sol ›
推理等级 high ›
上下文长度 默认 › ← 插件增加
点「上下文长度」会整页替换选项(与「推理等级」交互一致),例如:
默认 ✓
262K
524K
1M
2.1M
| 选项 | 含义 |
|---|---|
| 默认 | 不写窗口配置,沿用 DSH 的 defaultContextWindow |
| 262K / 524K / 1M / 2.1M | 将该模型的窗口设为对应值 |
| 更小的值 | 不列出(低于 DSH 默认无意义) |
使用约定:
- 选中后立即生效,下一次请求按新窗口计算,无需重启 DSH(仅改 UI 时;档位同步在启动时读配置,见下文日志说明)。
- 只改当前模型;同网关下其他模型不动;仅当某模型的
maxTokens超过所选窗口时会随之降低。 - 按
Esc先退回三行根面板,再按一次关闭选择器。
档位如何确定¶
插件不维护独立模型表,而是从 DSH 内置官方目录加载(README 示例日志为约 1650 条、43 个 provider 数据文件)。
- 官方给过哪几档就写哪几档,不推断、不倍增。
- 同一模型有多条通道记录时,取票数最多的档位签名;平局取交集,交集为空则不改。
- 名称匹配失败时依次尝试:原 id → 去前缀后缀(如
[free]、z-ai/、-coding)→ 同族借用 → 仍失败则保持原样并在日志点名。 - 运行期零网络请求。
启动日志示例(用于确认插件在工作):
[better-selector] 官方目录已加载:1650 条(…/app.asar (43 个 provider 数据文件))
[better-selector] 目标配置: …\profiles\desktop\cordis.patch.yml / 档位: catalog / 容量: off
[better-selector] 已更新 34 个模型(启动),备份 cordis.patch.yml.bak-better-selector-…
[better-selector] 官方不给档位的模型 3 个,配置保持原样: ziyong/MiniMax-M3, …
安装与启用¶
本插件未发布到 npm(npm 上同名包属于另一实现 Khellendros97/dsh-better-model-selector),需从 GitHub 安装。
在 desktop profile 下执行:
cd ~/.dsh/profiles/desktop
pnpm add git+https://github.com/Asaiuta/dsh-better-model-selector.git
# 然后在 package.json 的 dsh.profile.bundles 里加上 "dsh-better-model-selector"
# 重启 DSH
本地调试可改为:
pnpm add link:/path/to/dsh-better-model-selector
SkillHub 等社区目录与 DeepSeek / 幻方无官方从属关系,安装步骤以仓库 README 为准。
配置(可选)¶
在 cordis.patch.yml 中为插件 better-selector 增加 config,字段均可省略:
- id: better-selector
config:
mode: catalog # 档位:catalog(默认,按官方重写)| fill(只补缺失)
capacity: off # 容量:off(默认,不写窗口)| fill(只补缺失)| catalog(按官方重写)
demote: false # 官方判定「无档位」时是否写 reasoningEfforts: false
patchPath: null # 不填则按 DSH_HOME/profiles/<profile> 推导
backup: true
watch: true # 监听配置变化后自动同步
日常默认值即可。只有希望插件把官方窗口也写入配置时才改 capacity;多数网关撑不住官方报的数值,默认 off 更安全。
典型用法与排查¶
手选上下文:在模型选择器第三行选 262K 等,仅影响当前模型;选「默认」即移除插件对该模型的窗口写入。
查看同步结果但不写盘:
node bin/sync.mjs --patch <cordis.patch.yml> --dry-run --explain
每行末尾会标注匹配来源:exact / normalized / family。
档位仍不对:确认已重启 DSH(配置与插件在启动时读取);插件只保证与官方目录一致,不能保证中转后端认每一档。
第三行显示「默认」但数值不是 262K:「默认」表示未写窗口项,具体由 DSH 的 defaultContextWindow 决定。
第三行灰字不可点:模型不在用户配置层 models 中,或整份设置为只读;悬停可看原因。
适用场景与注意¶
适合:使用自定义网关、模型 id 与官方目录接近或可通过规范化/同族匹配;希望选择器档位与 pi-ai 官方一致,并偶尔手动放大上下文窗口的用户。
务必知晓:
- 官方目录口径不等于网关能力;插件不探测端点,窗口默认不动是刻意设计。
- 同族借用是推断,不想要可删对应配置行或使用
mode: fill。 - 仅处理块序列写法的
models;models: []的 flow 写法会跳过并报错。 compat字段(如thinkingFormat)插件不修改,仍需自行配置。
卸载:从 dsh.profile.bundles 移除 "dsh-better-model-selector",执行 pnpm remove dsh-better-model-selector,重启 DSH。已写入 cordis.patch.yml 的档位与窗口会保留;插件曾自动备份最近 5 份 cordis.patch.yml.bak-better-selector-*,需要时可还原。
结尾¶
dsh-better-model-selector 用本机官方 pi-ai 目录重写每模型推理档位,并在模型选择器增加可切换的上下文长度行,避免「五档全开」和盲目写满窗口。安装前请核对 GitHub 源码与许可证;启用后以 [better-selector] 日志确认同步情况。