dsh-model-settings:用一块面板管住主模型、子代理与 goal 回合

前言

在 DSH 里改主会话的模型,界面里选一次往往只影响当前对话或新会话的默认路由;子代理、workflow 拉起的子任务、goal 激活期间的回合,可能仍走各自的默认配置。README 里记录的一次账单排查即与此有关:主会话已切到别的 provider,子代理仍继承创建时的 agent-default-model,大量请求落在另一套按量计费上。若你需要在 Web 端一眼看清三类「消费者」各自用哪家 provider、哪个模型、推理强度多少,并在保存后热更新、不必重启进程,dsh-model-settings(维护者 Howthemeaning,GitHub 约 2 stars)就是针对这一路由分散问题做的面板插件。

这是什么

dsh-model-settings 是 DSH 的 Web 端插件(dsh.client.platform: "web"),在界面左下角(工作区下方、设置之上)增加 模型设置 入口。它用同一面板分别配置三类独立调用模型的对象,每档可设 provider / model / reasoningEffort(推理强度),也可选「跟随默认」。当前包版本为 0.2.2(见仓库 package.json),许可证 MIT。

档位 管谁 何时生效(概要)
主模型 新会话默认,写 agent-default-model 「应用到全局」时写配置并立即切换当前对话
子代理(含 workflow) 子代理请求(agent/request 全局拦截) 热更新:运行中会话下一次拉子代理即生效
goal 回合 goal 激活期间的会话回合 热更新:下一个 goal 回合即生效

两个保存动作

面板上有两个按钮,含义不同,用错容易以为「已经全局改好了」:

按钮 行为
应用到全局 写入全局配置,并立即把当前打开的对话也切过去
仅应用到当前对话 只改当前会话,不写全局配置

日常面板保存走的是 settings 用户层;部署时若要为子代理或 goal 预置默认值,可在 profile 的 cordis.patch.yml 里用 update 覆盖插件 config(字段见下文配置节)。

安装与启用

插件以当前 dsh 进程权限运行,安装前建议自行查看 GitHub 仓库 源码与 LICENSE。社区目录页:SkillHub 插件条目。

Web 版(dsh 0.1.x / 独立 web profile)

下面从 GitHub 安装;dsh plugin 会把包装进 profile 并因 dsh.bundle.patch 自动加入 dsh.profile.bundles。需要重启 dsh 后插件入口才会出现。

dsh plugin --profile web add github:Howthemeaning/dsh-model-settings

DSH NEXT 桌面端(0.2.x)

桌面 desktop profile 由 Electron 管理,CLI 会拒绝 --profile desktop。在侧边栏 插件 → 添加插件 → 安装第三方插件 中填写 github:Howthemeaning/dsh-model-settings(也支持本机目录),然后重启客户端。

卸载(Web 版)

dsh plugin --profile web remove dsh-model-settings

DSH NEXT 在侧边栏 插件 页卸载;若曾手动放进 ~/.dsh/profiles/desktop/,需从 package.json 的 dependencies 与 dsh.profile.bundles 移除 dsh-model-settings 并删除对应 node_modules 目录。

典型用法

  1. 安装并重启后,打开 Web UI 左下角 模型设置。
  2. 分别设置主模型、子代理、goal 回合的提供方、模型与推理强度(或保持跟随默认)。
  3. 若希望今后新会话与当前会话一致,点 应用到全局;若只想临时试模型,用 仅应用到当前对话。
  4. 保存后无需重启:新会话用新主模型;已开会话的下一次子代理请求、下一个 goal 回合会走新配置。

团队若要在部署层把子代理钉在便宜模型上,可在 ~/.dsh/profiles/<profile>/cordis.patch.yml(Web 为 web,DSH NEXT 为 desktop)写入例如:

- update:
    - id: model-settings
      config:
        subagent:
          provider: deepseek-official
          model: deepseek-v4-flash
          reasoningEffort: low

config 里可选 subagent、goal 两个对象,字段均为 provider、model、reasoningEffort;主模型档不在此配置,由面板或 dsh 自身设置写 agent-default-model。

环境与兼容性

README 写明主目标路径为当前 @deepseek-ai/dsh 0.2.1-rc.2(与 DSH NEXT 2.0.19-next 内核一致),并在 0.0.1–0.2.x 多版本上做过验证。面板依赖宿主服务 agents、webServer(服务端)及 slots、locale(客户端)。若缺少 settings、llm、agentDefaultModel、goals 等可选服务,对应能力会降级(例如无法保存、模型列表为空、goal 档不生效),而不是整插件崩溃。

peer 依赖包括 @deepseek-ai/cordis、@deepseek-ai/dsh-llm、@deepseek-ai/dsh-settings、@deepseek-ai/schemastery 等,具体范围见仓库 package.json。

适用场景与注意

适合经常在 DSH 里混用主会话、子代理、goal,又希望三类路由一眼可控、保存即生效的开发者。它不能替代你对各 provider 计费规则的理解;README 中的起源说明的是路由继承机制与账单风险,而非插件替你记账。

DSH 生态强调「一切皆插件」;SkillHub 等社区目录与 DeepSeek / 幻方无官方从属关系,本文安装与能力描述均以仓库 README 与 package.json 为准。

结尾

dsh-model-settings 把主模型、子代理、goal 回合的 provider、模型与推理强度收进同一 Web 面板,区分「全局」与「仅当前对话」,并支持热更新。进一步了解可访问 GitHub:Howthemeaning/dsh-model-settings 与 SkillHub 目录页。

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

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

Xiaoye