Skip to content
dsh.fish
Bundle

dsh-provider-auto

Automatically add reasoning-level controls to compatible DSH provider models.

Source
icekale
License
MIT
Updated
Updated 3 days ago

Readme

# dsh-provider-auto

Automatically adds reasoning-effort controls to compatible custom provider models in [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness).

[中文说明](README.zh-CN.md)

## What it does

`@deepseek-ai/dsh-llm-pi-ai` only shows a reasoning selector when a model declares `reasoningEfforts`. Custom OpenAI-compatible gateways often return model ids but no capability metadata. This plugin watches the `llm-pi-ai` settings section and fills the missing declaration for recognized reasoning models.

Defaults:

- Protocols: `openai-completions`, `openai-responses`
- Models: `gpt-5*`, `o1*`, `o3*`, `o4*`, other `o<number>*`, and `codex*`
- Levels: `off`, `low`, `medium`, `high`
- Exclusions: image, audio, embedding, moderation, and reranking models
- Existing `reasoningEfforts` declarations are never overwritten

The plugin updates the persisted `llm-pi-ai` section, so DSH's native model picker and request path remain authoritative.

## Install

Install directly from GitHub into the Web profile:

```sh
dsh plugin --profile web add github:icekale/dsh-provider-auto
```

Restart `dsh web` once after installation. Later provider/model changes are handled live through the settings service.

To remove it:

```sh
dsh plugin --profile web remove dsh-provider-auto
```

## Provider configuration

Add providers from the DSH Models page, or edit `~/.dsh/settings.yaml`:

```yaml
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 adds this only to `gpt-5.6-sol`:

```yaml
reasoningEfforts:
  off: null
  low: low
  medium: medium
  high: high
```

## Plugin configuration

Override the plugin row in `~/.dsh/profiles/web/cordis.patch.yml` when a gateway uses different model names or wire values:

```yaml
- 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
```

A provider that uses different wire values can map them explicitly:

```yaml
- id: provider-auto
  config:
    efforts:
      off: null
      low: lite
      medium: standard
      high: max
```

## Limits

This plugin does not implement provider protocols or authentication. DSH still supports only protocols available through its installed adapters. Model capability discovery is name-based because OpenAI-compatible `/models` endpoints generally do not report reasoning levels. For an exceptional model, declare `reasoningEfforts` manually; the plugin preserves it.

## Development

```sh
npm test
```

Requires Node.js 22 or newer.

## License

MIT

Install

dsh plugin --profile web add github:icekale/dsh-provider-auto#ddc840c19932697ad398bfdd20c367b8d58bb6da

Profile: web

Source