Bundle
dsh-deepseek-model-router
Auto-switch DeepSeek models for DeepSeek Harness: routes every model 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 per-session overrides.
- Source
- ZI-LV68
- stars
- 1 stars
- License
- MIT
- Updated
- Updated 5 days ago
Readme
# dsh-deepseek-model-router **Auto-switch DeepSeek models** for [DeepSeek Harness](https://github.com/deepseek-ai/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: ```sh 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): ```yaml 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
Install
dsh plugin --profile web add github:ZI-LV68/dsh-deepseek-model-router
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-deepseek-model-router from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.