Introduction¶
In DeepSeek Harness (DSH), selecting a model for subagents usually follows three common approaches: relying on tools called by the model itself, rule-based automatic routing, or manually entering commands. These methods are either unpredictable or lack visible state feedback. The dsh-subagent-model-picker plugin offers a deterministic alternative: through a visual dropdown menu, it lets you manually control the model selection and reasoning effort for all subagents in each session, with persistent state.
Plugin Introduction¶
This is a Web plugin for DeepSeek Harness (DSH), maintained by developer ringoage. Its core feature is to provide a subagent model picker beside the main model selector in the Web interface. You can decide the model and reasoning effort used by subagents at the session level, achieving precise control over subagent routing.
Core Features¶
- Manual selection: You can directly specify the model used by subagents and its reasoning effort (e.g., off / high / max).
- Visual UI: Displays a dropdown menu next to the main model selector in the Web Composer.
- Deterministic routing: The selection is bound to a session and remains effective after restarts; each subagent strictly follows your selection.
- Global override: Through the host-side
agent/requestlistener, it overrides the child nodes generated bysubagent,subagent_fork, and workflow fan-out. - Reasoning effort support: Provides corresponding menu options for models that support reasoning effort.
- Default inheritance: By default, subagents inherit the main model’s configuration.
- Localization: Supports Chinese and English interfaces.
Installation and Enablement¶
Install using the official plugin marketplace-compatible command, or manually edit the configuration file.
Official Command (Recommended)¶
dsh plugin --profile web add github:ringoage/dsh-subagent-model-picker
Manual Installation¶
Add the dependency and declare the bundle in the Profile directory used by Web (such as .dsh/profiles/web/package.json):
{
"dependencies": {
"dsh-subagent-model-picker": "^1.0.0"
},
"dsh": {
"profile": {
"bundles": ["dsh-subagent-model-picker"]
}
}
}
Typical Usage¶
In the DeepSeek Harness Web interface, you will see the Subagent Model dropdown to the left of the main model selector.
- Click the dropdown and choose a specific model.
- If the model supports reasoning effort, a Thinking effort option appears in the dropdown; select the corresponding level.
- Once selected, all subagents generated in that session will use that model and reasoning effort.
- To restore the default behavior, select Inherit main model.
Applicable Scenarios and Notes¶
- Applicable scenarios: Scenarios requiring strict control over subagent cost, speed, or specific model behavior. For example, you may want subagents to use a cheaper model with slightly weaker reasoning, while the main agent retains high performance.
- Runtime scope: The plugin only applies to in-process subagents driven by DSH, including
subagent,subagent_fork, and workflow fan-out nodes. External CLI agents (such as claude-code and codex) manage their own model selection and are not affected by this plugin. - Editing method: The routing logic runs on the host side, so routing remains effective even if the Web GUI is not open; however, editing the picker UI must be done in the Web Composer.
Technical Implementation¶
The plugin implements its functionality through two cooperating parts:
- Host side (
lib/index.js): Registers anagent/requestlistener, identifies subagent requests viasubagentDepth, and traverses up the parent session chain to override the model configuration. - Persistence service: Uses the Typert Remote service (
subagent-model-picker) to store the mapping fromsessionIdto model configuration, avoiding reliance onapiProxywhitelist configuration.
Conclusion¶
dsh-subagent-model-picker is not intended to replace automatic routing plugins, but instead provides a deterministic manual override. It returns routing decisions for subagents to you, making it suitable as a complement to automatic routing strategies when precise control over subagent behavior is needed. For more details, see the GitHub repository.