DeepSeek Harness (DSH) is a plugin-based platform. For specific tasks such as visual recognition, translation, or speech transcription, specialized models and tools are usually required, which the main Agent may not handle well. dsh-agent-router is a DSH plugin that lets you create specialized Agents and bind them to independent models. It supports one-click sign-in for multimodal accounts, account-pool health routing, and real-time usage statistics.
Core Features¶
This plugin mainly addresses the limited capabilities of the DSH main Agent and extends its capability boundary in the following ways:
- Agent preset default models: Configure default models for the main Agent and subagent at the DSH preset granularity. During a new session or after switching presets, the dialog’s model selector immediately follows and displays the configured default model.
- Specialized Agent configuration: Supports five execution paths—chat remote models, full subagents, headless CLI subagents, image generation, and speech transcription. Each specialized Agent independently configures its provider and model; if not configured, it automatically reuses the main Agent’s model.
- ChatGPT subscription sign-in: Supports official Codex OAuth authorization sign-in. A subscribed account can be invoked directly as the main model, and the OAuth token is automatically injected and refreshed by the plugin. Agents bound to a subscribed account can also be used for image generation.
- Multimodal task routing: Supports image recognition (OCR, screenshots, charts), image generation, and speech transcription. After enabling a vision-oriented specialized Agent (capability tag includes
image), an “Add Image” button appears in the input box, and attached images are injected into the context. - Headless CLI subagents: Supports external agent tools such as codex, claude, and gemini. These tools execute multistep tasks in headless mode, with images and files injected using workspace paths.
- Multimodal accounts and account pool: Supports adding API keys from any provider via configuration. The account pool automatically selects accounts and fails over based on health, usage, and polling policies.
- Real-time usage statistics: Provides tiered views (preset, specialized Agent, account level, and global), supports daily persistence (retained for 90 days by default), and CSV export.
Installation¶
Prerequisites: DSH ≥ 0.1.5-rc.2.
Install using the standard management command:
dsh plugin --profile web add github:peterwangze/dsh-agent-router
Installing through install scripts requires host support; the standard dsh plugin management command above is recommended. For offline installation, you must use file: with the ./ prefix. For example:
dsh plugin --profile web add file:./
Restart DSH after installation.
Usage Guide¶
After installation and restart, open the configuration page in DSH under Settings → Agent Routing.
- Enable multi-model routing: Enable the feature with the top-level master toggle. After disabling it,
route_agentrefuses calls and statistics are paused. - Configure preset Agents: In the Preset Agents card, configure default models for the main Agent and subagent at the DSH preset granularity. After configuration, the model selector immediately follows in a new session or after switching presets.
- Configure specialized Agents: In the Specialized Agents card, manage custom specialized Agents, including selecting an execution path (chat/agent/cli/image/speech) and binding the corresponding model.
- Configure multimodal accounts: In the Multimodal Accounts card, add an API key or complete ChatGPT subscription sign-in. The system automatically maintains the account pool and selects accounts according to policy.
- View statistics: In the Statistics card, view the tiered usage breakdown.
Notes¶
- Version compatibility: This plugin is supported and tested with DSH ≥ 0.1.5-rc.2.
- Offline installation: For offline installation, the path must include the
./prefix; otherwise it is treated as a registry package name. - Statistics persistence: Usage statistics are persisted daily and retained for 90 days by default. To disable persistence, set
router.stats.persist=false.
Project URL: https://github.com/peterwangze/dsh-agent-router