Skip to content
dsh-market Browse plugins GitHub 中文

ZI-LV68/dsh-deepseek-model-router

Auto-switch DeepSeek models: routes every request to the vision model when images are present, to the pro model for complex tasks, and to the fast model otherwise; includes a switch_model tool for manual overrides.

Stars ★ 0 Category Tools & Capabilities Listed 2026-08-24

Install

Inside DeepSeek Harness, with dsh-market

dsh plugin --profile web add dshmarket

Or from the command line

dsh plugin --profile web add github:ZI-LV68/dsh-deepseek-model-router

Installing runs third-party code with your own permissions — it can read your files, use your credentials and reach the network. Review the source first, and pin a commit (github:owner/repo#sha) when you can.

README

Auto-switch DeepSeek models for DeepSeek Harness. No manual model picking: every model request is routed automatically, and a switch_model tool gives you a manual override when you want one.

How it works

Before every model request, the plugin inspects the conversation and replaces the frozen provider/model:

Situation Model used (defaults)
Conversation contains images deepseek-v4-flash-vision-exp (vision)
Complex task — long text, code, math, analysis keywords (score ≥ threshold) deepseek-v4-pro
Everything else — chat, short questions, routine work deepseek-v4-flash

It hooks the same agent/request waterfall the built-in model selection uses, installed after it, so the routed model is the final one for the call. The prompt variables (provider/model) stay in sync with what actually runs.

Manual override tool

switch_model(mode, reason?) — mode is one of:

  • auto — back to automatic routing
  • fast — force deepseek-v4-flash
  • pro — force deepseek-v4-pro
  • vision — force deepseek-v4-flash-vision-exp

The override is per-session and takes effect from the next request.

Install

From the plugin market (once published), or locally:

dsh plugin --profile web add dsh-deepseek-model-router

The bundle patch activates the router for the whole profile after a restart. Configuration lives in the bundle patch (cordis.patch.yml → row config): provider, fast/pro/vision models, complexity threshold, tool name, enabled.

Configuration

All fields optional (defaults shown):

config:
  provider: deepseek-official   # only sessions on this provider are routed
  fastModel: deepseek-v4-flash
  proModel: deepseek-v4-pro
  visionModel: deepseek-v4-flash-vision-exp
  complexityThreshold: 2       # task score >= threshold -> pro
  toolName: switch_model       # registered tool name
  enabled: true

Notes

  • Only deepseek-official sessions are routed; other providers pass through untouched.
  • If images are present, the router always prefers an image-capable model (visionModel); if that model is not image-capable in your catalog, the current model is kept.
  • The composer's model seat still shows the session's default selection; the actual model used per call is decided by the router and recorded in the session's request header. Use switch_model to pin a model explicitly.

License

MIT

Content from the project README on GitHub ↗

Comments

Comments live in GitHub Discussions. Sign in with GitHub to post or react.