前言¶
在 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 目录。
典型用法¶
- 安装并重启后,打开 Web UI 左下角 模型设置。
- 分别设置主模型、子代理、goal 回合的提供方、模型与推理强度(或保持跟随默认)。
- 若希望今后新会话与当前会话一致,点 应用到全局;若只想临时试模型,用 仅应用到当前对话。
- 保存后无需重启:新会话用新主模型;已开会话的下一次子代理请求、下一个 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 目录页。