dsh-subagent-model:为 DSH 子代理独立配置模型与预设

前言

DeepSeek Harness (DSH) 官方默认情况下,主 agent 调用的 subagent 继承主 agent 的同一个模型。你用旗舰模型当主 agent,委派出去的检索、整理、审计等杂活也全走旗舰模型——既慢又贵,纯属资源浪费。

本插件将两件事拆开:主 agent 模型继续用 DSH 官方自带的模型管理;子代理模型交给本插件。在官方模型菜单左侧多出一个「子代理模型」菜单,为所有委派出去的子代理统一配置 provider / model / 推理强度(全局生效)。

一句话:主模型干主活,子代理走你指定的(更便宜/更专用的)模型。

核心功能

  • 官方同款 UI:菜单样式、字体、两级结构与官方模型菜单 1:1 一致,零学习成本。
  • 与官方菜单互斥:打开「子代理模型」再点官方模型菜单,前者自动收起(反之亦然),同一时刻最多一个菜单展开。
  • 模型目录共享:读取与官方菜单同一份会话模型目录(modelDirectories),厂商/模型/推理强度列表与官方菜单完全同步,只加载一次。
  • 点选即存:选中模型、推理强度或档位立即持久化,无保存按钮(与官方行为一致)。
  • 子代理档位:为所有委派的子代理统一套用一个人格 + 工具面组合,与「设置 → Agent 预设」完全同源。支持内置(官方预设)、自定义(插件预置与用户自建)。
  • delegate_subagent 工具:主 agent 用它委派任务时,子代理真正运行在配置的模型与档位上,支持前台等待、后台启动与 fork 继承上下文。
  • 委派策略注入:向主 agent 注入一段简短 prompt,引导它优先用 delegate_subagent 委派独立任务。

安装与启用

DSH 插件以 npm 包形式挂载到 web profile。

  1. 放置本包(任意路径,例如 /root/DSH_exe/dsh-subagent-model)。
  2. 在 web profile 的 package.json 中声明依赖与 bundle:
   {
     "dependencies": {
       "dsh-subagent-model": "link:/root/DSH_exe/dsh-subagent-model"
     },
     "dsh": {
       "profile": {
         "bundles": [
           "...",
           "dsh-subagent-model"
         ]
       }
     }
   }
  1. 建立 link(或用 pnpm 安装):
   ln -s /root/DSH_exe/dsh-subagent-model /root/.dsh/profiles/web/node_modules/dsh-subagent-model
  1. 重启 dsh-web:
   systemctl restart dsh-web

使用

打开任意会话,composer 底部官方模型菜单左侧会出现「子代理」按钮。点开菜单选「子代理模型」、「推理强度」或「子代理档位」即可配置。之后主 agent 委派的子代理将运行在配置的模型与档位上。若要换回默认行为,选择与主模型相同且档位为「继承」。

配置与预设

  • 全局子代理模型保存在 $DSH_HOME/data/dsh-subagent-model/config.json:
  {
    "sub": {
      "provider": "kimi-coding",
      "model": "kimi-for-coding",
      "reasoningEffort": "off",
      "profile": "minimal"
    }
  }
  • 预设档位的人格文本取自预设自身,工具面裁剪;工具名不符时委派不会失败(自动降级)。
  • 旧版 dsh-model-manager 配置会在首次启动时自动迁移。

适用场景与注意

  • 仅支持 DSH web(浏览器端 UI)。
  • 需要 DSH 部署自带 dsh-client-ui-model-selection。
  • License: MIT

结尾

一句话:主模型干主活,子代理走你指定的(更便宜/更专用的)模型。

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

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

小夜