dsh-model-switcher:用对话查目录、切换 DSH 模型

前言

在 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 许可证。

桌面端(图形界面,推荐)

  1. 打开 DSH 桌面端,进入 设置 → 插件。
  2. 点「添加插件」,在弹窗中粘贴:
github:skyrocks/dsh-model-switcher
  1. 确认安装,等待依赖解析完成。
  2. 完全退出 DSH 再重新打开(macOS 用 Cmd+Q;Windows 从托盘退出)。只关窗口不够,Host 插件仅在启动时加载。
  3. 新开会话,说「列一下模型」验证。插件列表中显示 @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 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜