dsh-subagent-model:强制子代理模型与推理努力

在 DeepSeek Harness 的工作流中,子代理通常会继承父代理的路由。如果没有显式配置,这会导致不可预测的模型使用。此插件提供了一种极简、有主见的方法,通过在下一步骤而不是回合结束后强制指定模型和推理努力,确保子代理始终在选定的配置下运行。

核心功能

  1. 强制模型选择:子代理必须指定 model 参数。Agent Teams 的 spawn_teammate 没有 model 参数,因此会使用允许列表中的第一条具体路由。无论是否配置强制,子代理都不会静默继承对话的模型。
  2. 强制推理努力:推理努力程度按路由设置,由你决定,而不是由委托代理决定。委托代理没有努力参数,也无法继承你的设置。
  3. 拒绝错误的努力:在发起任何提供商调用之前,会根据该模型声明的支持集验证配置的努力程度,避免在无效配置上浪费资源。
  4. 引导正在运行的子代理:它加入当前正在进行的回合,而不是等待下一回合。这意味着对正在运行任务的修正可以在下一步骤到达,而不是延迟到回合结束后。
  5. 在记录中显示路由:每次 subagent 调用都会渲染其运行的模型,便于在会话日志中核查。
  6. UI 可配置:在设置 -> 插件中,你可以配置路由和下拉列表,列表内容来自各模型实际支持的范围。

安装

通过命令行安装插件。这会挂载托管允许列表的设置命名空间,但不注册工具。

dsh plugin --profile web add /path/to/dsh-subagent-model

安装后,插件行为与内置工具完全一致,直到你编辑允许列表。

配置

通过 UI 配置

进入 DeepSeek Harness 的 Settings → Plugins → Subagent model。卡片列出了允许的路由,每个路由都有下拉列表用于选择推理努力。点击“Add a route…”可从模型目录中选择。

注意:编辑操作在本地暂存,点击 Save 后提交生效。

通过 YAML 配置

在 ~/.dsh/settings.yaml 中定义:

dsh-subagent-model:
  routes:
    - kiro/claude-opus-5
    - deepseek/deepseek-chat
    # - inherit/current  # 移除此行以禁止继承对话的模型
  efforts:
    kiro/claude-opus-5: high
    deepseek/deepseek-chat: provider/default
  • routes:允许列表,格式为 provider/model-id,包含可选的 inherit/current 条目。
  • efforts:指定每个路由对应的推理努力。

典型用法

此插件替换的是代理预设中的工具行。你需要创建本地副本进行编辑,不要直接修改已安装的预设(升级时会覆盖)。

编辑 ~/.dsh/.agent-presets/<your-id>/agent.cordis.yml,替换以下两个委托行(例如预设名为 ptc):

    - id: tool-subagent
      name: dsh-subagent-model/spawn
      config:
        provider: spawn
        toolName: subagent
        backgroundMode: continuable
        maxDepth: 1
        toolFilter:
          deny: [subagent, subagent_fork]

    - id: tool-subagent-fork
      name: dsh-subagent-model/spawn
      config:
        provider: fork
        toolName: subagent_fork
        backgroundMode: continuable
        maxDepth: 1
        toolFilter:
          deny: [subagent, subagent_fork]

选择本地预设开启新会话。验证工具架构是否现在要求 model 并枚举配置的路由。

注意事项

  • 默认行为:安装时允许列表种子包含 inherit/current,因此全新安装行为与内置工具一致。移除该条目后才会强制路由。
  • maxDepth 限制:maxDepth 是每个启动的绝对上限(根深度为 0),不是继承 ceilings。子代理可以通过具有更大 maxDepth 的不同前端绕过父级的限制。
  • 防止绕过:在每个子代理中使用 toolFilter 拒绝 subagent 和 subagent_fork,防止子代理创建更深层的委托。
  • 编辑机制:配置编辑在本地暂存,通过 revision-fenced 设置范围在保存后提交,不会影响正在运行的代理。

生态背景

DeepSeek Harness 的生态理念是“一切皆插件”。此插件由社区开发者 dat-lequoc 维护,遵循 MIT 许可证。插件目录与 GitHub 仓库可在此查看:Catalog | GitHub

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

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

小夜