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.

  1. Enable multi-model routing: Enable the feature with the top-level master toggle. After disabling it, route_agent refuses calls and statistics are paused.
  2. 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.
  3. 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.
  4. 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.
  5. 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