前言¶
在用 DSH 的「自动开发调度器2.0」(dsh-orchestrator2)时,经常需要为研究员、审核员、开发员这三个角色分别配置主模型与备模型,并在不同场景下快速切换。手动修改配置文件、重启进程或多次打开设置弹窗都很繁琐,容易出错。orchestrator2-region-switch 插件通过侧边栏一行按钮和设置弹窗,把多套「场景」做成可切换的容器,每个场景有自己的 A/B 两侧模型。它不触碰预设源码,只通过公开数据落点与 dsh-orchestrator2 交互。
插件定位¶
- 名称:orchestrator2-region-switch
- 维护者:zueston
- 分类:工作流
- 核心价值:为 dsh-orchestrator2 提供场景化主备模型切换,支持快速切换、失效自动顺序切换、模型变更管控与漂移提示。
核心功能¶
侧边栏一行按钮¶
[侧 A 名 | 侧 B 名]:点击一侧,将当前使用中的场景切换到该侧(主槽指向它)。设置:点击打开设置弹窗;点击该行任意空白处也能打开设置弹窗。
设置弹窗¶
- 场景 TAB 条:每个场景一个 TAB,文字为该场景两侧名字拼接的 A/B;选中 TAB 有底栏,当前使用中的场景带红环。
- 使用 / 应用 / 删除:TAB 条右侧提供使用、应用、删除操作,作用于当前选中的场景。
- 两侧名字:A/B 两格可改名,侧边栏按钮将使用这些名字。
- 三个角色 × 两侧:研究员 / 审核员 / 开发员,每个角色分别选择主侧与备侧的提供商 + 模型(下拉同时选择组和模型)。
- 失效自动切换顺序:限流/额度失败时按顺序切换到下一个场景。支持两列槽位(1 3 / 2 4 排布)、至少 4 格、空格留空、
✕清空槽位、重复选择自动互换、整轮冷却、每小时上限、模拟限流、重置历史。 - 模型变更管控(铁律):开启时,检测
model-routes.json是否被本插件以外的写入(如预设的set_role_model),若被检测到则回滚并记录一条回滚日志;需要其他工具修改文件时请关闭该开关。 - 漂移提示:当文件中的模型与当前使用中场景不一致时,顶部出现提示条,并按「哪个工作区、哪个会话」逐条列出,可应用到该会话或放弃。
安装与启用¶
插件为「宿主半体 + 浏览器半体」两段式,两半体都需要就位:
- 将本插件目录放到 DSH 的插件源目录,例如
<DSH_HOME>/plugin-src/orchestrator2-region-switch。 - 本插件自带
cordis.patch.yml(dsh.bundle.patch层),需要在 profile 的清单里登记为 bundle 依赖,并将包链到profiles/<profile>/node_modules/orchestrator2-region-switch(junction / symlink 均可)。 - 重启 DSH。侧边栏出现那一行即加载成功;在设置 → 插件 里应能看到
orchestrator2-region-switch。
若只登记在用户 patch 层而不进入 profile 清单,宿主半体会加载但浏览器半体不会激活,插件不会出现在侧边栏。
数据文件¶
所有数据位于 <DSH_HOME>/orchestrator2/ 下,DSH_HOME 默认为 ~/.dsh:
scenarios.json:场景表(本插件独占)。model-routes.json:预设读取的 v1 路由表,由当前使用中场景的主槽派生。guard.json:铁律开关、基线、回滚记录。sessions/<会话ID>.json:预设写入;本插件仅在「应用 / 覆盖」时修改roles[角色].overrideRoute字段。failover-signal.json:预设的route-fallback在限流时写入,本插件读取它触发顺序切换。
典型用法¶
- 安装并重启 DSH 后,侧边栏出现一行按钮。
- 点击
[侧 A 名 | 侧 B 名]一侧,切换当前使用中的场景主槽指向该侧。 - 点击任意空白处或「设置」按钮打开设置弹窗:
- 在场景 TAB 条上新建场景,输入两侧名字,为每个角色选择主侧与备侧的提供商与模型。
- 点击「应用」使当前场景立即生效。
- 如需调整失效自动切换顺序,在「失效自动切换顺序」区域配置槽位与规则。
- 如需关闭模型变更管控或重置历史,可在guard.json中操作。 - 当文件中的模型与当前使用中场景不一致时,顶部出现漂移提示,可选择应用到该会话或放弃。
适用场景与注意¶
- 适合需要在多个模型组合间快速切换、希望避免手动修改配置文件的场景。
- 插件以当前 DSH 进程权限运行,安装前建议检查源码与许可证(MIT)。
- 与
dsh-orchestrator2v2.10.3 的契约自查通过(5/5)。 - 若需要其他工具修改
model-routes.json,请暂时关闭模型变更管控(铁律)开关。
结尾¶
orchestrator2-region-switch 通过场景化容器与自动切换机制,简化了 dsh-orchestrator2 的主备模型切换流程。更多细节见插件目录页与 GitHub 仓库。
- 插件目录页:https://www.skillhub.cn/plugins/zueston/orchestrator2-region-switch
- GitHub:https://github.com/zueston/orchestrator2-region-switch