前言¶
在 DSH 里切换模型,原生做法是输入 /model,在弹窗里点选。这个流程在桌面上没什么问题,但有两类场景会打断节奏:一是你通过 IM 机器人用手机和模型对话,手边没有面板可点;二是你和模型讨论到一半,想把剩下的任务交给另一个模型,却不想离开对话界面。
dsh-nl-model-switch 针对的就是这个缺口:在对话里直接说一句「切到 deepseek-v4-flash」,当前会话的模型就完成切换,上下文保留,新模型接着处理你刚才的请求。
这是什么¶
dsh-nl-model-switch 是一个 DSH 宿主插件,作者为 passingby000,采用 MIT 许可证,当前版本 0.1.1。它做的事情用一句话概括:用自然语言切换当前 DSH 会话的模型,不用离开对话界面,也不用记命令。
DSH 的理念是「一切皆插件」。这个插件属于纯宿主插件、零客户端 UI 依赖——它不修改任何客户端界面,切换发生在会话层。因此不管你用 Web 面板、TUI,还是通过 IM 桥接的微信、飞书聊天界面,都能在对话里直接切模型。
核心功能¶
- 自然语言一句话切换当前会话模型,例如「切到 deepseek-v4-flash」
- 跨界面生效:Web 面板、TUI、IM 机器人(微信、飞书等)均可使用
- 切换在同一会话内完成,上下文与对话历史完整保留
- 切换后新模型确认切换,并无缝接续处理原请求
- 与原生
/model互补,底层走同一个会话级模型选择接口sessions.selectModel,两者共存 - 纯宿主插件、零客户端 UI 依赖,不修改客户端界面
工作原理¶
插件的工作分三步:
1、向模型注册一个 switch_model(provider, model) 工具,执行体调用与原生 /model 相同的公开接口 ctx.apiProxy.sessions.selectModel,设置会话级模型选择,在下次 prompt 组装时生效。
2、通过 system prompt 引导模型:当用户用自然语言要求换模型时调用 switch_model,切换后明确确认并继续用户的请求。
3、tools/result 处理器在 switch_model 成功后结束旧模型的当前回合,以新模型开启一个新回合来发送确认、接续处理原请求。从外部看,仍是一次普通的一问一答。
因为切换发生在会话层而非界面层,它天然适用于 Web、TUI 以及 IM 桥接的各类聊天界面。
安装与启用¶
dsh plugin add dsh-nl-model-switch
安装后重启 dsh web,让新 bundle 加载,插件才会生效。
运行环境要求 Node >= 18(来自 package.json 的 engines 字段)。
使用前有两个前提:
1、目标模型已在 DSH 的 settings.yaml 中注册,即写在对应 provider 的 providers.*.models 列表里。
2、模型需要能识别并调用 switch_model 工具,主流模型均支持。
典型用法¶
在任意界面的对话里,直接用自然语言说:
切换到 deepseek-v4-flash 模型
切到 deepseek-v4-pro
换到 glm-5.3,帮我翻译这段文字
用 deepseek-v4-flash 模型重新回答
switch to deepseek-v4-flash model
模型识别到换模型的意图后,会调用 switch_model 工具完成切换;新模型确认后继续处理你刚才的请求。比如「换到 glm-5.3,帮我翻译这段文字」,翻译任务会由切换后的模型接续完成。
适用场景与注意¶
适合两类使用者:
- 主要通过 IM 机器人(微信、飞书等)与 DSH 对话、不方便操作面板的人,一句话就能切模型并继续任务。
- 在长会话中需要中途换模型的人,切换不丢上下文。
安装与使用前注意:
- 插件以当前 dsh 进程的权限运行,安装前建议先阅读源码确认其行为,再决定是否引入。
- 许可证为 MIT,README 与 package.json 中均有标注。
- 原生
/model仍然可用,两者共存,不冲突。
故障排查¶
- 说了切换指令但模型没有真的切换:可能是当前模型只口头回答「已切换」,没有实际调用
switch_model工具。可换一个对工具调用支持更好的模型重试。 - 提示模型未注册:确认目标模型 id 已写在
settings.yaml的对应 provider 下。 - 安装后不生效:重启
dsh web让新 bundle 加载。
小结¶
dsh-nl-model-switch 的价值在于把「切模型」从界面操作变成对话的一部分:一句话、同一会话、不丢上下文,并且与原生 /model 共存。如果你经常在 IM 里用 DSH,或者需要在不中断当前任务的情况下换模型,可以装上试试。
- 插件目录页:https://www.skillhub.cn/plugins/passingby000/dsh-nl-model-switch
- GitHub 仓库:https://github.com/passingby000/dsh-nl-model-switch
其中目录页为社区独立维护的站点,与 DeepSeek、幻方无官方从属关系。