dsh-subagent-model-picker:DeepSeek Harness 的可视化子代理模型选择器

前言

在 DeepSeek Harness (DSH) 中,为子代理选择模型通常有三种常见做法:依赖模型自身调用的工具、基于规则的自动路由,或手动输入命令。这些方法要么结果不可预测,要么缺乏可见的状态反馈。dsh-subagent-model-picker 插件提供了一个确定性的替代方案:通过一个可视化的下拉菜单,允许你手动控制每个会话中所有子代理的模型选择和推理努力,且状态持久化。

插件介绍

这是一个 DeepSeek Harness (DSH) 的 Web 插件,由开发者 ringoage 维护。它的核心功能是在 Web 界面中,于主模型选择器旁边提供一个子代理模型选择器。你可以在会话级别决定子代理使用的模型和推理努力,从而实现对子代理路由的精确控制。

核心功能

  • 手动选择:你可以直接指定子代理使用的模型及其推理努力(如 off / high / max)。
  • 可视化 UI:在 Web Composer 的主模型选择器旁边显示下拉菜单。
  • 确定性路由:选择与会话绑定,重启后依然生效,每个子代理都会严格遵循你的选择。
  • 全局覆盖:通过主机端的 agent/request 监听器,覆盖 subagent、subagent_fork 以及工作流扇出产生的子节点。
  • 推理努力支持:为支持推理努力的模型提供对应的菜单选项。
  • 默认继承:默认行为是子代理继承主模型的配置。
  • 本地化:支持中英文界面。

安装与启用

使用官方的插件市场兼容命令安装,或者手动编辑配置文件。

官方命令(推荐)

dsh plugin --profile web add github:ringoage/dsh-subagent-model-picker

手动安装

在 Web 使用的 Profile 目录(如 .dsh/profiles/web/package.json)中添加依赖并声明 bundle:

{
  "dependencies": {
    "dsh-subagent-model-picker": "^1.0.0"
  },
  "dsh": {
    "profile": {
      "bundles": ["dsh-subagent-model-picker"]
    }
  }
}

典型用法

在 DeepSeek Harness 的 Web 界面中,你会在主模型选择器的左侧看到 Subagent Model(或 子代理模型)下拉框。
1. 点击下拉框,选择一个具体的模型。
2. 如果该模型支持推理努力,下拉框中会显示 Thinking effort 选项,选择对应的级别。
3. 一旦选择,该会话下生成的所有子代理都会使用该模型和推理努力。
4. 若要恢复默认行为,选择 Inherit main model 即可。

适用场景与注意

  • 适用场景:需要严格控制子代理成本、速度或特定模型行为的场景。例如,希望子代理使用更便宜但推理能力稍弱的模型,而主代理保持高性能。
  • 运行范围:该插件仅对 DSH 驱动的进程内子代理生效,包括 subagent、subagent_fork 和工作流扇出节点。外部 CLI 代理(如 claude-code、codex)由其自身管理模型选择,不受此插件影响。
  • 编辑方式:路由逻辑在主机端运行,即使 Web GUI 未打开,路由也会生效;但选择器的 UI 编辑必须在 Web Composer 中进行。

技术实现

插件通过两个协作部分实现功能:
1. Host 端 (lib/index.js):注册一个 agent/request 监听器,通过 subagentDepth 判断子代理请求,并向上遍历父会话链覆盖模型配置。
2. 持久化服务:使用 Typert Remote 服务 (subagent-model-picker) 存储 sessionId 到模型配置的映射,避免依赖 apiProxy 的白名单配置。

结语

dsh-subagent-model-picker 并非要取代自动路由插件,而是提供了一种手动覆盖的确定性手段。它将子代理的路由决策权交还给你,适合在需要精确控制子代理行为时作为自动路由策略的补充。更多详情可查看 GitHub 仓库。

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

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

小夜