enoughpower/dsh-desktop-mac--plugins-dsh-vision-router1

dsh-vision-router

Eyes for text-only DeepSeek Harness agents: built-in free vision chain (no key) + pixel-level vision tools (Q&A, grounding, crop, pixel diff, colors, OCR, SVG trace, cutout, screenshots). One-command install, no Python, image turns work like ordinary tool-calling turns.

包名
dsh-vision-router
版本
2.1.5
许可证
MIT
最近更新
2026年9月12日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:enoughpower/dsh-desktop-mac#f957acef9a0861cef94ae074c75d6bfab0c04379&path:plugins/dsh-vision-router

Configuration

Everything is optional; defaults work out of the box. Prefer Settings → Vision Router; profile overrides remain available for advanced deployments:

FieldDefaultMeaning
routingModeorderedordered keeps the configured model-chain order; auto delegates prioritization to measured capability evidence. Auto is never enabled by migration
routingPreferencebalancedAuto preference: balanced, quality, speed, or local; changes ordering only among already-authorized candidates
backgroundBenchmarkingoffbackground capability profiling authority: off, local-free, or all; enabling Auto does not change it, and authorized background work runs only while Auto is active
provider / modelvision-http / ovh/Qwen2.5-VL-72B-Instructshorthand vision backend route (adapter-backed provider + model that genuinely accepts images)
fallbacks[]backup image models for the shorthand vision provider
providersbuilt-in free vision-http pairmulti-provider vision backend chain { provider, model, fallbacks[] }, tried in order; do not put text-only models here
httpProvidersbuilt-in OVH entrydirect OpenAI-compatible endpoints { name, baseURL, model, apiKeyEnv, maxTokens }
autoWrapProviderstruediscover enabled provider/models and live-sync their internal vision wrappers; confidently owned wrappers are hidden from the stock model picker while original groups stay unchanged
wrappedProviders[{ provider: 'deepseek-official', models: [] }]optional manual wrapper scope { provider, models[] }, used after disabling auto-wrap or to restrict which models can enter an internal wrapper through “👁 Vision”; changes apply live, no restart
routingfalselegacy whole-turn chain routing (one-shot answer). false = tools-first flow (recommended)
reverseRoutingtruewith routing: true, route text turns back to textProvider
wrapperRoute / chainRoutedeepseek-vision / vision-chainadmission wrapper route name / fallback chain route name (empty disables)
stealthfalsetake over the official deepseek-official route (official row only; custom routes are auto-wrapped by default)
textProviderdeepseek-official / deepseek-v4-prothe model that reasons (your daily model)
tool / progressiveTools / autoActivateOnImagetrue / false / truevision tools on / progressive mounting (off by default for a stable tool schema) / image-turn auto-mount when progressive mode is enabled; progressiveTools is boot-time config
rewriteImagestruerewrite image blocks in the model input (cached description or tool-hint marker); the UI log keeps images
desktopScreenshotfalseprivacy opt-in for the model-callable vision_screenshot desktop-capture tool; checked live before every capture
freeFallbacktrueappend the anonymous OVH models after explicit local/custom HTTP backends; turning this off never disables an explicitly configured local backend
localOllama{ enabled: false, baseURL: 'http://127.0.0.1:11434/v1', model: 'qwen2.5vl', format: 'openai' }local vision backend; when enabled, local-ollama leads the HTTP vision chain, is skipped automatically when down, and supports OpenAI or Anthropic wire format
localLmStudio{ enabled: false, baseURL: 'http://localhost:1234/v1', model: '', format: 'openai' }local LM Studio backend after Ollama; enter the exact model identifier from LM Studio Developer or /v1/models
visionTurnBudgetMs0whole-turn vision wall-clock budget; 0 means unlimited. Concrete provider calls/tools still keep their own hard deadlines
downscale / downscaleMaxPixelstrue / 4000000pre-call downscale and its pixel budget (latency guard)
cache / cacheTtlSeconds / cacheMaxEntriestrue / 3600 / 200vision answer cache
timeoutMs120000per vision call deadline
artifactsDir.dsh-vision-router/artifactsartifact directory (relative to the session workspace)
proxy / proxyHosts'' / openrouter hostsoptional proxy for vision provider hosts only
catalogCorrectionstruebuilt-in catalog-routing corrections for known upstream wire-protocol mismatches; each correction disarms itself once the catalog is fixed upstream

Local Ollama vision backend (merged from dsh-vision)

Incremental author: shaoqiuyuavailable (router local-vision increment)

Design credit: the local vision backends (Ollama / LM Studio dual backends, structured recognition, screenshot identification, same-image memory dedup, failure fallback, concurrency protection and timeout handling) inherit their design from dsh-vision — merged into the HTTP vision chain here, with per-level fallback and dual-protocol support added on top.

An optional keyless local-first vision path for private, free, offline recognition. It plugs into the existing HTTP vision chain as local-ollama; if it fails, any configured cloud backends can still be tried unless you deliberately configure a local-only chain.

1. Install Ollama and pull a vision model