In the agent development scenario of DeepSeek Harness (DSH), model capability selection is usually controlled by the @deepseek-ai/dsh-llm-pi-ai component, which displays the reasoning selector only when a model declares reasoningEfforts. Many custom OpenAI-compatible gateways return only model IDs and no metadata. The purpose of the dsh-provider-auto plugin is to supplement missing declarations for recognized reasoning models in this scenario.
This is a DSH plugin maintained by icekale. Its core value is to automatically add reasoning effort control for compatible custom provider models.
Core Features¶
The plugin mainly handles the following:
- Protocol support: Supports the
openai-completionsandopenai-responsesprotocols. - Model matching: Recognizes models with the following naming patterns:
gpt-5*,o1*,o3*,o4*,o<number>*, andcodex*. - Control levels: Provides four reasoning effort levels:
off,low,medium, andhigh. - Exclusions: Automatically excludes image, audio, embedding, moderation, and reranking models.
- Declaration preservation: The plugin preserves existing
reasoningEffortsdeclarations in a model and never overwrites them.
Installation and Enablement¶
Install it into the Web profile through the official CLI:
dsh plugin --profile web add github:icekale/dsh-provider-auto
After installation, the dsh web process must be restarted. Subsequent provider or model changes will be processed in real time through the settings service.
Provider Configuration¶
Add a provider in DSH’s model page, or edit ~/.dsh/settings.yaml directly. The plugin monitors the llm-pi-ai settings section and injects configuration for eligible models.
For example, configure a provider named one2api:
llm-pi-ai:
providers:
one2api:
baseURL: https://one2api.top/v1
api: openai-completions
apiKeyEnv: ONE2API_API_KEY
models:
- id: gpt-5.6-sol
name: gpt-5.6-sol
- id: gpt-image-2
name: gpt-image-2
The plugin will automatically add only the following for gpt-5.6-sol:
reasoningEfforts:
off: null
low: low
medium: medium
high: high
Plugin Configuration Overrides¶
If the model names or internal mapping values used by a gateway differ from the default rules, you can override the plugin configuration by editing ~/.dsh/profiles/web/cordis.patch.yml.
- id: provider-auto
config:
api:
- openai-completions
- openai-responses
modelPattern: '^(gpt-5|o[0-9]|codex|my-reasoner)'
nonTextPattern: '(image|audio|embedding|rerank)'
efforts:
off: null
low: low
medium: medium
high: high
For providers that use different internal values, you can map them explicitly:
- id: provider-auto
config:
efforts:
off: null
low: lite
medium: standard
high: max
Notes¶
- Protocol and authentication: This plugin does not implement provider protocol or authentication logic. DSH still supports only the protocols supported by its installed adapters.
- Capability discovery mechanism: Because most OpenAI-compatible
/modelsendpoints do not report reasoning levels, the plugin relies on model names for capability discovery. - Manual declarations: For special models, it is recommended to declare
reasoningEffortsmanually. The plugin respects and preserves these declarations. - Environment requirements: The plugin requires Node.js 22 or later.
Summary¶
dsh-provider-auto solves the problem that custom gateways cannot correctly display reasoning controls in the DSH frontend. Through name matching and configuration injection, it integrates reasoning effort control into the workflow while preserving the authority of DSH’s native model selector.
For more details, see the SkillHub directory or the GitHub repository.