READMESource: main@d086cc92
@blue/dsh-image-model-router
A DeepSeek Harness (dsh) plugin that routes an agent request to a vision model only when the user message contains an image, and keeps the original model otherwise.
- Text-only turns keep your normal model (e.g.
deepseek-v4-pro). - Turns that carry an image (a screenshot, a photo, a diagram) are routed to a multimodal model — by default
deepseek-v4-flash-vision-exp. - Per-agent, per-step: the flag is keyed by the agent object in a
WeakMap, so it can never leak across agents or turns.
Install
dsh plugin --profile web add @blue/dsh-image-model-router
The row is disabled by default so installing never silently changes routing. Enable it from the profile's own cordis.patch.yml:
- id: dsh-image-model-router
disabled: false
config:
provider: deepseek-official
model: deepseek-v4-flash-vision-exp
Then restart the profile (dsh web) and hard-refresh the browser.
Install from a Git checkout (development)
git clone https://github.com/Blue-2571/dsh-image-model-router.git
cd dsh-image-model-router
dsh plugin --profile web add .
Configuration
| Key | Default | Description |
|---|---|---|
provider |
deepseek-official |
Provider id the vision request is routed to. |
model |
deepseek-v4-flash-vision-exp |
Vision model id. Any image-capable route your provider advertises works here. |
How it works
user message with image
│
▼
agent/pre-step (waterfall) ── detect image block ──► flag agent
│
▼
agent/request (waterfall) ── flagged? ──► swap provider/model, clear flag
│
▼
vision model answers
Image detection walks nested tool-result content the same way the harness's own image policy does, so an image produced by a tool result is treated as image input too.
License
MIT
No comments yet. Be the first to write one.