dsh-subagent-tiering:子智能體默認走父模型的廉價同級路由

前言

在 DeepSeek Harness(DSH)裏,主會話常用 Opus、Qwen max 等高檔路由,而 subagent 工具會再開一條子會話做並行或專項任務。若子會話不顯式指定 provider、model 或 reasoning_effort, stock 的 ptc 預設不會給 subagent 單獨的下沉規則,子智能體往往沿用父路由與 effort——例如 Opus 5.5 @ max。子調用一多,總賬單會明顯高於「主模型貴、子任務便宜」的常見分工。

下面介紹社區插件 @lucagiftzek/dsh-subagent-tiering:在子調用未點名路由時,按內置規則把子智能體默認切到父模型同生態裏更便宜的一檔;主智能體若自己傳了上述三個字段,仍以主智能體的選擇爲準。

這是什麼

維護者 lucagiftzek 在 npm 與 GitHub 發佈該包,分類屬於模型推理。一句話定位:子智能體默認使用父模型對應的廉價同級路由,除非主智能體在調用裏指定了路由。

插件通過 Cordis 的 tools/pre-execute 在 subagent 執行前補全缺失的 provider / model / reasoning_effort,再走 DSH 原有的校驗流程。規則寫在包內 src/rules.js,也可在 profile 的 cordis.patch.yml 裏用 - id: subagent-tiering 的 config.rules 覆蓋(形狀與內置一致)。

內置降級規則(摘要)

當子調用未指定路由且滿足下文「前置條件」時,第一條匹配的規則生效。README 中的對照表如下(2026-09-29 起 Anthropic 默認子模型爲 claude-sonnet-5-5 @ medium,解析失敗時回退 claude-sonnet-5):

父路由 子默認
anthropic Opus / Fable / Sonnet anthropic claude-sonnet-5-5 @ medium(回退 claude-sonnet-5)
alibaba Qwen max/plus qwen3.8-flash @ high
alibaba / byteplus DeepSeek pro 對應 provider 的 DeepSeek flash @ high
byteplus GLM / Seed glm-5-3-flash-260828 @ high
deepseek-official deepseek-flash @ high
mistral large mistral-medium-latest
其它 mistral、alibaba GLM、hetzner 同模型,effort 上限爲 high(不會抬高)
其它情況 與 stock DSH 一樣繼承父路由

vision-toolkit-<x> 父路由會保留其 wrapper provider。規則項可配置可選的 child.fallbackModels(同 provider、同 effort 的模型 id 列表),當主模型不在會話 captured allow-list 或無法解析時按序嘗試。

subagent_fork 不會被修改——fork 必須留在父路由以複用緩存前綴。

工作機制與邊界

插件在 subagent 未傳入 provider、model、reasoning_effort 任一字段時,用第一條匹配規則填值,等價於模型自己點名路由。以下情況不改動調用,子會話仍繼承父路由:

  1. 主智能體已傳入上述三者之一(主智能體優先)。
  2. 當前 chat 沒有 model-selection policy(僅當 chat 創建時 subagent-model-selection.enabled 爲 true 纔會記錄;更早創建的 chat 不受影響)。
  3. 目標路由不在 policy 的 allowedModels 中。
  4. llm.resolveCallConfig 拒絕該路由;若僅 effort 被拒,會去掉 effort 保留路由。
  5. core DSH 凍結了執行記錄(會打一次日誌)。

系統提示中會追加約 90 token 的 subagent-tiering 段,說明默認行爲及如何覆蓋。

權衡: 子模型與父模型不同時無法複用父 prompt cache,單次 subagent 的首輪可能多付一次完整 cache write(README 提到 Anthropic 在 GenUI 移除後約 48k tokens 量級)。若子會話只有一輪調用,可能比改插件前略貴;README 稱該安裝上 subagent 中位數約 28 次調用,整體仍更省。

README 的動機說明(2026-09-27):某一 busy 安裝上 14 天會話日誌里約 70% 的 Anthropic 調用來自 subagent;在 stock ptc 下子會話無默認下沉時,按 human prompt 計 DSH 成本約爲同機 Claude Code 的 2.1 倍(單次調用量級接近)。tool-subagent 的靜態 agentOptions 無法表達「Opus 父 → Sonnet 子、Qwen max 父 → flash 子」這類按父路由變化的策略。

安裝與啓用

安裝命令須使用資料原文:

dsh plugin --profile web add @lucagiftzek/dsh-subagent-tiering
# or from GitHub: dsh plugin --profile web add github:lucagiftzek/dsh-subagent-tiering
# then restart dsh web

本地開發目錄也可用:dsh plugin --profile web add link:/absolute/path/to/dsh-subagent-tiering。

要求 Node 22.18 或更新;README 註明在 DSH 0.1.5 與 0.2.1 上使用。包聲明 dsh.bundle,dsh plugin add 會把 bundle 記入 dsh.profile.bundles,並由 patch 插入 subagent-tiering 條目。

沒有 subagent model-selection policy 時,插件不會改變任何行爲——安裝後務必覈對前置條件。

前置條件(Needs)

  1. settings 中啓用子智能體模型選擇,例如:

subagent-model-selection: { enabled: true, allowedModels: [...] }

在 DSH 0.2.x 中,該 harness 設置位於條目 subagent-model-selection-settings,不會從舊版 settings.yaml 自動導入(詳見倉庫 docs/TROUBLESHOOTING.md)。

  1. 使用 ptc / ptc-lean 預設裏帶 modelSelectionSettings: true 的 tool-subagent 行(stock 默認)。

  2. adaptive-reasoning 的路由列表裏不要包含 anthropic/claude-sonnet-5-5(或回退用的 claude-sonnet-5),否則會在每一步覆蓋子會話的 medium effort。

典型驗證方式

單元測試:

node --test test/*.test.js

端到端:新建一條 Opus 5.5 會話,讓主智能體在不帶 model 的情況下調用 subagent;子會話的 request/header 應出現 claude-sonnet-5-5 / medium(2026-09-29 之前爲 claude-sonnet-5)。README 記錄 2026-09-27 曾在生產環境驗證 Opus → Sonnet,沙箱驗證 Qwen max → Qwen flash;顯式指定 qwen3.8-max @ low 時保持不動。

適用場景與注意

適合: 頻繁用 subagent 做檢索、並行子任務、長鏈路工具調用,且希望主會話保持高檔模型、子會話自動下沉到 Sonnet / flash 等等價檔,又保留主智能體顯式改路由的能力。

注意:

  • 插件與 DSH 進程同權限運行;安裝前請閱讀 GitHub 倉庫 源碼與 MIT 許可證(package.json 版本 0.1.0)。
  • 自定義規則、故障排查:倉庫 docs/TROUBLESHOOTING.md、docs/ERRORS.md;可讓智能體加載 subagent-tiering-doctor skill(將 skills/subagent-tiering-doctor 複製到 ~/.dsh/skills/ 一次,步驟見 TROUBLESHOOTING)。
  • DSH 生態以「一切皆插件」爲方向;SkillHub 目錄頁 爲社區站點,與 DeepSeek / 幻方無官方從屬關係。

結尾

經過上面的步驟,dsh-subagent-tiering 把「子智能體默認廉價同級、主智能體可覆蓋」寫進 pre-execute 與內置規則表,在啓用 model-selection policy 的前提下降低大量 subagent 調用帶來的路由成本。目錄與源碼:

  • 目錄頁:https://www.skillhub.cn/plugins/lucagiftzek/dsh-subagent-tiering
  • GitHub:https://github.com/lucagiftzek/dsh-subagent-tiering
羽毛球分组比赛记分
小程序二维码

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

小夜