DeepSHPlugins
dsh-subagent-model-picker 專案預覽
GITHUB / COMMUNITY PROJECT

dsh-subagent-model-picker

Agent 與自動化JavaScriptMIT

主模型選擇器旁的子代理模型選擇器:按會話選擇模型與思考程度,應用到所有程序內子代理。

1 Starsringoage 更新時間 2026-08-16
訪問 GitHub 倉庫
dsh-subagent-model-picker 專案預覽

專案介紹

中文

主模型選擇器旁的子代理模型選擇器:按會話選擇模型與思考程度,應用到所有程序內子代理。

English

A GUI subagent-model selector beside the main model seat: pick a model and reasoning effort per session, applied to every in-process subagent.

專案資訊與收錄訊號

快照 2026-09-11
作者 / 組織
ringoage
倉庫
ringoage/dsh-subagent-model-picker
GitHub Stars
1
Forks
0
開發語言
JavaScript
許可證
MIT
最近推送
2026-08-16
Manifest
資料中檢測到宣告

公開倉庫不自動等於可商用;許可證與當前相容性以原專案文件為準。Manifest 和資料評分不構成安裝安全認證。

資料評分

52/ 100
維護活躍
82
文件與實用資訊
99
生態關注度
9
安裝便捷訊號
75
專案宣告訊號
100

README 含完整安裝與使用說明;關注度尚低(1)。

評分來自已有資料快照的五維模型,僅作瀏覽參考,不是實際使用評測或安全檢測結論。

安裝與使用

所有專案資料與許可均以對應 GitHub 倉庫為準。

dsh plugin --profile web add github:ringoage/dsh-subagent-model-picker

複製命令不會自動執行。請先閱讀倉庫文件,確認環境要求與許可證。

專案截圖

倉庫 README

GitHub 原文

已儲存的倉庫文件快照;文件抓取時間未記錄,可能與上方目錄介紹處於不同版本。安裝前請核對當前倉庫說明。

儲存庫檔案保留原文,指令與授權文字不作自動改寫。

dsh-subagent-model-picker

The visual, manual subagent-model selector for DeepSeek Harness.

Pick a cheaper / faster model — and its reasoning effort — for every in-process subagent, right beside the main model seat, per session, with zero guessing.

Why this exists

"Route subagents to a cheaper model" has been done many ways in the last few days, but they all decide *for* you:

ApproachHow it picksWho decidesPredictable?
Tool-baseda tool the model itself callsthe model❌ run-dependent
Auto-routingrules / plan-mode classificationthe plugin's policy⚠️ only as good as its rules
Command-baseda /command you typeyou, imperatively✅ but no visible state
Manual GUI (this)a seat beside the model seatyou, visually✅ deterministic + always visible

dsh-subagent-model-picker is the only visual, manual selector in this category: a GUI control next to the main model seat, so the choice is explicit, visible at a glance, and applies deterministically to every subagent path.

What it gives you

  • Manual — you choose; not a policy, not the model itself.
  • Visual — a dropdown beside the main model seat (hover pill + click-outside-to-close + Escape).
  • Predictable — the selection is per-session state; every child gets exactly what you picked.
  • Global coverage — one host-side agent/request listener covers subagent, subagent_fork, and workflow fan-out children at any depth.
  • Reasoning effort — models that expose effort levels (e.g. off / high / max) get a matching "Thinking effort" menu.
  • Inherit by default — subagents stay on the main model until you opt in.
  • Per-session + durable — the choice follows the session and survives restart.
  • Localised — zh / en UI copy.

Complementary, not a replacement

Auto-routing plugins (tier/smart/adaptive routers, plan-mode classification) and tool/command approaches answer *"pick for me"*. This plugin answers *"let me pick"*. They compose: keep an auto-router as the default policy and use the picker to override a specific session manually — or the other way around.

How it works

Two halves cooperate without touching the apiProxy settings whitelist:

  1. Host (lib/index.js) registers one agent/request waterfall listener.

dsh-scope admits events *up* the scope chain, so this host-root listener sees every agent's requests; a child is recognised by agent.options.subagentDepth >= 1. It walks the parent chain to the root session and overrides { provider, model, reasoningEffort? } only for subagents.

  1. Persistence + transport go through a Typert Remote service

(subagent-model-picker, wire namespace subagent-model-picker) exposing get / set / clear. The client half mounts the Remote contribution (ctx.remote.$mount) and calls remote.subagent-model-picker.*; the service persists the sessionId -> { provider, model, reasoningEffort? } map host-side, so the apiProxy exposedNamespaces() whitelist is never consulted.

Install

One-liner (GitHub, market-compatible)

dsh plugin --profile web add github:ringoage/dsh-subagent-model-picker

This is the same github: install path the DSH plugin market uses, so it can be installed straight from this repository.

Manual (edit the profile)

In your web profile (.dsh/profiles/web/package.json), add the package as a dependency and list it in dsh.profile.bundles:

{
  "dependencies": {
    "dsh-subagent-model-picker": "^1.0.0"
  },
  "dsh": {
    "profile": {
      "bundles": ["dsh-subagent-model-picker"]
    }
  }
}

Then restart the harness. For a local checkout use a link: dependency pointing at this directory.

Usage

To the left of the main model selector you will see Subagent Model (or 子代理模型). Pick a model — and, if offered, a Thinking effort — and every subagent spawned from that session uses it. Choose Inherit main model (default) to restore default routing.

Limitations

  • Only in-process subagents are routed: subagent, subagent_fork, and

workflow fan-out children driven by DSH itself. External CLI agents (e.g. claude-code, codex) manage their own model selection and are not affected.

  • The selector is a web client feature; host routing works regardless of

whether the web GUI is open, but the selection itself is edited from the web composer.

Development

  • lib/index.js — host half (Remote service + agent/request routing).
  • lib/client.js — client half (slot UI + Remote contribution + locale).
  • cordis.patch.yml — the dsh.bundle.patch insert that mounts the plugin row.

The Remote service runs in SRC mode: methods are marked with the @Remote(name) contract applied in plain JS (no generated typert.host.js), and the client contribution ships hand-written strict descriptors.

License

MIT

使用前核對

安裝步驟、相容版本與授權範圍以原專案當前文件為準。Stars 和評分是快照中的導航訊號。

安裝與排錯 · 專案問題反饋

同類專案