前言¶
在 DeepSeek Harness(dsh)里换模型,熟悉做法是打开内置 /model 弹窗,在几十条候选里点选。对话里若想让当前模型「帮我换成 glm」,它拿不到和弹窗同源的目录,也无法走同一条写入路径。社区插件 dsh-model-switcher(维护者 skyrocks)把「查目录 / 切模型」注册成 Host 侧可调用的 find_models 与 switch_model,数据来自 sessionController.modelCatalog(),切换走 selectModel(),与 /model 一致。本文介绍其定位、工具参数、安装步骤与使用注意。
这是什么¶
dsh-model-switcher 是 DSH 的 Host 插件(包名 @skyrocks/dsh-model-switcher,当前版本 0.2.1,MIT 许可)。分类属于 模型推理:在对话中用自然语言或关键词查当前会话可选模型,并在用户明确选择后切换;手动点选仍用 /model,插件不另做界面。
项目地址:GitHub - skyrocks/dsh-model-switcher
生态目录:SkillHub 插件页
核心功能¶
两个工具¶
| 工具 | 参数 | 作用 |
|---|---|---|
find_models |
query?(自然语言或关键词) |
查当前会话真正可选的模型;不带 query 返回完整目录;带 query 按相关度排序,最多 25 条 |
switch_model |
model(必填)、provider?、reasoningEffort? |
从下一次模型请求起生效,并保存为默认模型 |
find_models 返回值含 current(当前模型)、models(候选及推理档位)、failures(某 provider 目录读取失败时的说明,不影响其它 provider)。
与 /model 同源¶
候选来自 DSH 模型目录(sessionController.modelCatalog()),切换使用同一 selectModel()。插件不硬编码模型列表,不读写用户文件,不执行 shell,不发送外部网络请求。
多版本与歧义¶
说「glm」可能同时命中 glm-5.2、glm-5.3、glm-5.3-flash 等时,find_models 会列出全部候选并等待用户选定;switch_model 遇歧义会报错并列出候选,不会自动猜测。仅当查询整串字面唯一匹配时才会自动选中。同一 model id 出现在多个 provider 下时,须带上 provider。
环境要求¶
| 项 | 要求 |
|---|---|
| DSH | >= 0.2.1-rc.3 < 0.3.0(桌面版与 dsh web 均可) |
| Node | >= 18 |
| 运行时依赖 | 无(纯 ESM) |
0.2.0 及更早依赖已移除的 apiProxy,在 0.2.1-rc.3 上会报错,需升级到 0.2.1 线。0.3.x 下 engines.dsh 会拒绝安装。
安装与启用¶
插件以当前 DSH 进程的 Host 权限运行;安装前可在 GitHub 查看源码与 MIT 许可证。
桌面端(图形界面,推荐)¶
- 打开 DSH 桌面端,进入 设置 → 插件。
- 点「添加插件」,在弹窗中粘贴:
github:skyrocks/dsh-model-switcher
- 确认安装,等待依赖解析完成。
- 完全退出 DSH 再重新打开(macOS 用
Cmd+Q;Windows 从托盘退出)。只关窗口不够,Host 插件仅在启动时加载。 - 新开会话,说「列一下模型」验证。插件列表中显示
@skyrocks/dsh-model-switcher(插件行 id 为model-switcher)。
命令行(可选)¶
# GitHub(推荐)
dsh plugin --profile desktop add github:skyrocks/dsh-model-switcher
# 本地目录(开发)
dsh plugin --profile desktop add /absolute/path/to/dsh-model-switcher
desktop 为桌面版 profile;若使用 dsh web,将 --profile desktop 换为 --profile web。安装完成后同样需要完全退出并重启 DSH。
典型用法¶
在对话中直接说明意图,由当前模型决定是否调用工具,例如:
有哪些模型?
列一下 glm 系列
换到 claude haiku
用最便宜的那个
切到 deepseek 推理
也可使用精确 id(如「换成 glm-5.3」)。支持中英文混说及常见同义词(如 flash/turbo、pro/max、智谱 → glm 等)。切错可用内置 /model 改回。切换对当前这一轮回复可能仍用旧模型,从下一条消息起生效;行为与 /model 一致,会一并更新默认模型。
适用场景与注意¶
适合:经常在长对话中按口语换模型、希望模型先列候选再切换、不想记精确 model id 的 DSH 用户。
注意:
- 无独立 UI,手动点选继续用
/model。 - 每次调用
find_models读取实时目录(排序为启发式,生僻昵称可能需报精确 id)。 find_models中出现failures时,常见原因为该 provider 缺 Key,可在「设置 → 模型」补凭据。- 工具列表中没有
find_models时,检查是否已完全重启、是否装到当前 profile(desktop/web)。 - 非官方插件,与 DeepSeek 无隶属关系;SkillHub 等为社区目录,非官方应用商店。
结尾¶
dsh-model-switcher 把 DSH 已有的模型目录与切换路径暴露给对话里的 function call:查用 find_models,切用 switch_model,多候选时由用户拍板,避免误切。进一步了解见 SkillHub 目录页 与 GitHub 仓库。