在 DeepSeek Harness (DSH) Web GUI 中,切换会话的模型或服务商通常需要进入设置页面。对于需要频繁切换模型的开发者或调试场景,这种方式效率较低。下面介绍一个客户端插件,它通过在会话标题栏增加滑块按钮,将模型切换逻辑下沉到客户端,实现一键切换。
核心功能¶
该插件主要解决会话级别的模型切换问题,核心能力如下:
- 两级联动选择:替换原生模型选择器,采用两级设计。顶部显示服务商 Chips(服务商标签),点击后下方联动显示该服务商的可用模型列表,点击模型即可完成切换。
- 配置过滤:面板通过检查
llm.providers、settings.describe和credentials.describe,仅显示已配置好 API Key 的服务商。补全 Key 后,服务商会自动出现在列表中。 - 状态显示:当前选中的服务商和模型会以蓝色高亮并标记“✓”。
- 实时同步:模型目录与
/model命令及 Composer 席位共享同一份状态,任意入口切换都会实时刷新目录。 - 异常提示:针对服务商不可用、目录加载失败等情况提供异常提示。
- 会话限制:子代理会话不支持模型切换,插件会自动禁用并提示。
安装与启用¶
推荐使用 DSH 自带的 CLI 安装,它会自动处理依赖和配置写入。
dsh plugin --profile web add github:2275803244-cpu/dsh-model-switcher
安装完成后,需要重启 DSH 程序,会话标题栏才会出现滑块按钮。
典型用法¶
- 在会话标题栏找到滑块按钮并点击,弹出模型选择面板。
- 先点击顶部的服务商 Chips,下方联动显示该服务商的模型列表。
- 点击目标模型,完成切换。
注意:子代理会话禁用此功能。
技术实现与注意事项¶
- 运行环境:纯浏览器侧实现,依赖
react/react/jsx-runtime,零构建过程。 - 状态同步:通过订阅
modelDirectories状态(使用react.useSyncExternalStore),与 DSH 内部模型目录保持一致。 - 槽位位置:插入到会话标题栏的
conversation.session.header.actions槽位(order=25)。 - 依赖:服务商目录来源于设置中的适配器配置。
若需查看更多信息,可访问插件目录页或 GitHub 仓库。