dsh-local-ai
Local-model (Ollama) integration for DeepSeek Harness: discover, pull, remove, and inspect local models, route requests to them by task type or keyword with automatic fallback to the cloud, and get a one-shot status overview via /ollama.
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:PerryLink/dsh-local-ai说明文档
阅读完整 README ↗Configuration
All tunables are Schemastery Config fields (changeable from cordis.yml). An id-targeted override replaces the whole row — restate every key you need. cordis.patch.yml documents each key inline.
| Key | Default | Meaning |
|---|---|---|
baseURL | http://127.0.0.1:11434 | Ollama HTTP API base URL; /api/* paths are appended |
requestTimeoutMs | 30000 | Per-request HTTP timeout (milliseconds) |
graceMs | 15000 | Subprocess terminate grace for the health-check CLI probe |
defaultContextWindow | 8192 | Context capacity used when a model has no exact value |
maxTokens | 4096 | Per-request output cap used when a model has no exact value |
temperature | (none) | Default sampling temperature (0..2); omitted leaves the provider default |
vision | true | Declare and serialize image support when the model reports vision; false keeps the route text-only |
models | [] | Harness-visible → Ollama model mappings |
models[].name | (required) | Harness-visible model name (GenerateOptions.model) |
models[].model | = name | Ollama model id |
models[].contextWindow | (none) | Per-model context capacity |
models[].maxTokens | (none) | Per-model output cap |
models[].temperature | (none) | Per-model sampling temperature |
backends | [] | OpenAI-compatible local backends (LM Studio / vLLM / llama.cpp) |
backends[].name | (required) | Backend name; registers provider id openai: |
backends[].baseURL | (required) | Backend base URL including /v1, e.g. http://127.0.0.1:1234/v1 |
backends[].apiKey | (none) | Optional bearer API key (most local servers leave it empty) |
backends[].models | [] | Harness-visible → backend model mappings |
backends[].maxTokens | 4096 | Per-backend output cap used when a model has no exact value |
backends[].temperature | (none) | Per-backend sampling temperature |
route | [] | Local-model routing rules (first match wins) |
route[].model | (required) | Target local model name |
route[].provider | ollama | Target provider id: ollama or openai: |
route[].purpose | (none) | Task type match: compaction / session-title |
route[].keywords | [] | Case-insensitive request keywords |
route[].always | false | Route every eligible request to this model |