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-completions and openai-responses protocols.
  • Model matching: Recognizes models with the following naming patterns: gpt-5*, o1*, o3*, o4*, o<number>*, and codex*.
  • Control levels: Provides four reasoning effort levels: off, low, medium, and high.
  • Exclusions: Automatically excludes image, audio, embedding, moderation, and reranking models.
  • Declaration preservation: The plugin preserves existing reasoningEfforts declarations 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 /models endpoints do not report reasoning levels, the plugin relies on model names for capability discovery.
  • Manual declarations: For special models, it is recommended to declare reasoningEfforts manually. 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.