Back to home@Blue-2571

dsh-image-model-router

No description

Stars
0
Language
JavaScript
Created
Aug 25, 2026
Updated
Aug 25, 2026
GitHub repo

Introduction

@blue/dsh-image-model-router

English · 简体中文

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

KeyDefaultDescription
providerdeepseek-officialProvider id the vision request is routed to.
modeldeepseek-v4-flash-vision-expVision 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