前言¶
在 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,在设置页保存一次可清理过时配置):
- 高级优先:高级模型可承担低级任务;默认交给「仍有空位的最上级」模型。
- 难者先占高级算力:批量并行时,父模型按高/中/低判复杂度,难任务先占高级空位,简单任务顺延。
- 满载顺延:某级并发满 → 下一级。
- 全部满载:任务数超过所有并发总和 → 按难度与各模型并发份额分配剩余任务。
- 关键词规则(可选):任务文本命中关键词时优先指定目标档案(有空位时;多条按优先级)。
复杂度判据会写入父会话提示词,例如:架构方案、复杂设计 → 高;代码审查、根因排查 → 中;检索、格式化整理 → 低。
三层决策¶
| 层 | 谁决策 | 在哪里 |
|---|---|---|
| 主路径 | 父会话大模型 | 读注入的档案表与策略,自行填 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 插件管理器(推荐)¶
- 侧栏 插件 → 安装(Install bundle);
- 输入:
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 已启用。
配置步骤¶
- 设置 → 插件 → Subagent → Model selection:启用并勾选允许子代理使用的模型(本插件档案只能从此列表选)。
- 插件 → subagent-model-director → Configure:添加档案(provider/model、智能程度、并发数、可选 reasoning effort);可选关键词规则与提示词注入模式。
- 页面底部 分派测试:一行一个任务,可用
high:/medium:/low:前缀表示复杂度,纯代码模拟、不调用大模型。 - 保存后 新会话 生效;父会话系统提示词会出现档案表与分配策略。
更新 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 三处。目录与文档: