dsh-subagent-model-director:为 subagent 按智能分级与并发分派模型

前言

在 DeepSeek Harness(DSH)里用 subagent 并行拆任务时,常见做法是全部走同一子模型,或靠人工指定 provider/model。任务复杂度不一、各模型吞吐也不同,简单检索和深度推理混在同一档上,要么浪费贵模型算力,要么在高级模型上排队。下面介绍社区插件 dsh-subagent-model-director(维护者 fred-chen):把「模型档案(智能程度 + 并发数)+ 复杂度判据 + 分配策略」注入父会话,并提供批量分派工具,让产生 subagent 的父会话按规则为每次委派选模型。

这是什么

dsh-subagent-model-director 是 DSH 的 bundle 插件,定位是 按智能分级与并发数为每个 subagent 挑选模型。父会话当前模型负责判断任务复杂度;插件向父会话系统提示词注入档案表与策略,并注册 subagent_assign_model,支持批量、并发感知的分派。

分类上属于「模型推理」类能力;仓库 GitHub,社区目录页 SkillHub。SkillHub 为独立社区目录,与 DeepSeek / 幻方无官方从属关系。

核心功能

模型档案

每个档案从 DSH 全局「Subagent → Model selection」允许列表里选 provider/model,并配置:

属性 说明
智能程度 高(深度推理/计划/设计/创造)· 中(代码分析/审查/推断)· 低(检索/整理)
并发数 该模型可同时运行的任务数;满载后顺延下一级
Reasoning effort 可选;留空则用所选模型默认档
启用 关闭的档案不参与分配

档案只能使用全局允许列表中的模型;保存与运行时都会校验。列表变更后,失配档案会在设置页标黄并在运行时跳过。

分派策略(v0.3.2 起)

模型 只按智能程度分级(高/中/低),不再依赖旧版的 tags/speed/loadBalancing 等字段(升级后旧字段会被忽略,档案保留,并发数默认 1,在设置页保存一次可清理过时配置):

  1. 高级优先:高级模型可承担低级任务;默认交给「仍有空位的最上级」模型。
  2. 难者先占高级算力:批量并行时,父模型按高/中/低判复杂度,难任务先占高级空位,简单任务顺延。
  3. 满载顺延:某级并发满 → 下一级。
  4. 全部满载:任务数超过所有并发总和 → 按难度与各模型并发份额分配剩余任务。
  5. 关键词规则(可选):任务文本命中关键词时优先指定目标档案(有空位时;多条按优先级)。

复杂度判据会写入父会话提示词,例如:架构方案、复杂设计 → 高;代码审查、根因排查 → 中;检索、格式化整理 → 低。

三层决策

层 谁决策 在哪里
主路径 父会话大模型 读注入的档案表与策略,自行填 provider/model/reasoning_effort
会话内兜底 大模型 + subagent_assign_model 批量传入计划委派,工具按策略返回路由并更新并发计数
设置页「分派测试」 纯代码 与第 2 层相同分配内核,预览规则链(不调用大模型、不计入并发)

并发计数以 subagent_assign_model 调用为准(30 分钟半衰、进程内存、重启清零);未走工具的直接委派不计入,主要影响均衡而非路由正确性。

其它组成

  • 设置页:侧栏 插件 → subagent-model-director → Configure,经 /api/dsh-subagent-model-director/* 读写配置。
  • 系统提示词段落 subagent-model-director:profiles:档案表、判据、策略、关键词规则;guidanceMode 可选简洁/详细/关闭。
  • 核心逻辑在 lib/core.js(纯函数,README 称 53 项场景单测覆盖)。

注意:subagent_fork 不能选子模型路由;分派对支持 agentOptions 的 subagent(如 spawn)生效。插件在 当前 DSH 进程权限 下运行,安装前宜自行查看源码与 MIT 许可证。

安装与启用

要求:DeepSeek Harness ≥ 0.1.7-rc.1(依赖宿主 settings 桥、tools API 与 subagent 组合)。Node ≥ 20。

方式一:DSH 插件管理器(推荐)

  1. 侧栏 插件 → 安装(Install bundle);
  2. 输入:
github:fred-chen/dsh-subagent-model-director

(或 https://github.com/fred-chen/dsh-subagent-model-director.git)
3. 确认安装后默认启用。

方式二:CLI

dsh plugin --profile <你的profile名> add github:fred-chen/dsh-subagent-model-director

方式三:手动 pnpm

cd ~/.dsh/profiles/<你的profile名>
pnpm add github:fred-chen/dsh-subagent-model-director

并在该 profile 的 package.json 的 dsh.profile.bundles 中加入 dsh-subagent-model-director。

安装后建议 重启 DSH,在插件页确认 subagent-model-director 已启用。

配置步骤

  1. 设置 → 插件 → Subagent → Model selection:启用并勾选允许子代理使用的模型(本插件档案只能从此列表选)。
  2. 插件 → subagent-model-director → Configure:添加档案(provider/model、智能程度、并发数、可选 reasoning effort);可选关键词规则与提示词注入模式。
  3. 页面底部 分派测试:一行一个任务,可用 high:/medium:/low: 前缀表示复杂度,纯代码模拟、不调用大模型。
  4. 保存后 新会话 生效;父会话系统提示词会出现档案表与分配策略。

更新 bundle 示例(README):

pnpm add github:fred-chen/dsh-subagent-model-director#main

重启 DSH。发布 npm 后也可 pnpm add dsh-subagent-model-director@latest。

典型用法

父会话在批量 spawn subagent 前,策略会建议先调用 subagent_assign_model,传入全部计划委派(含任务描述与复杂度),采纳工具返回的每个任务的 provider/model/reasoning_effort 再委派。

配置阶段用 分派测试 验证规则链,例如多行任务:

high: 设计跨服务鉴权方案
medium: 审查 PR 里的 SQL 注入风险
low: 整理 README 里的安装步骤

保存配置、开新会话后,父模型依据注入的判据与档案表为真实 subagent 填路由。

适用场景

  • 同一父会话里并行多种 subagent,希望 难任务占高级模型、简单任务占低档,并受 并发上限 约束。
  • 已在 DSH 里配置好多模型,且已在 Subagent Model selection 里放行,需要 可配置的档案表 + 提示词注入 + 工具兜底,而不是每次手写 model 参数。
  • 需要 关键词强信号 把某类任务固定到指定档案(在有空位时)。

不太适合:只 fork subagent、不 spawn 且依赖 KV 前缀复用同一模型的流程;或 subagent 只允许单一固定模型的极简环境。

结尾

dsh-subagent-model-director 把 subagent 模型选择从「全走同一档」变成「档案 + 复杂度 + 并发」的可重复规则,并落在 DSH 的设置页、系统提示词与 subagent_assign_model 三处。目录与文档:

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

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

小夜