Foreword

DeepSeek Harness (DSH) adopts an “everything is a plugin” architecture. If you use gpt-load to manage a model pool and want to connect it to DSH, dsh-plugin-gpt-load provides a direct solution. This plugin addresses the limitation of DSH’s native llm-pi-ai component, which handles protocols only at the provider-routing level, and allows OpenAI and Anthropic protocols to be used together within a single group without creating a separate provider for each protocol in the configuration file.

Core Features

  • Single group: Only one “GPT-Load” group is shown in the model selector, without splitting by protocol.
  • Protocol selection per model: By default, the protocol is determined by the protocols field returned by gpt-load. You can also pin any model to OpenAI or Anthropic in the settings, or restore automatic detection.
  • Automatic sync: The model pool is fetched from /api/models at startup and on a schedule, so the configuration list does not need manual maintenance.
  • Automatic capability detection: Context window size, maximum output, multimodal input capabilities, and Thinking tiers (low/medium/high) are read automatically.
  • Key security: The AccessKey is stored by DSH’s credentials service and is not written to settings.yaml.
  • Non-destructive writing: Sync operations only update their own gpt-load configuration section, without affecting other provider configurations or comments.

Installation and Activation

  1. Go to the target DSH profile directory (for example, ~/.dsh/profiles/web).
  2. Run the installation command:
cd ~/.dsh/profiles/web && npm install wesleyel/dsh-plugin-gpt-load
  1. After installation is complete, restart the DSH process. The plugin will then take effect.

Typical Usage

After installing and restarting, you can configure it in the Web UI:

  1. Go to Settings → GPT-Load.
  2. Fill in the gateway address (for example, http://127.0.0.1:3001) and the AccessKey.
  3. Click “Sync Models Now”.

You can also preset the configuration in the profile YAML file:

plugins:
  gpt-load-sync:
    endpoint: http://127.0.0.1:3001
    apiKey: gl-your-access-key
    displayName: GPT-Load
    defaultProtocol: auto
    syncOnStart: true
    syncIntervalMinutes: 60

Technical Notes

Implementation Principles

The llm-pi-ai component in Harness pins protocols to the provider-routing level, and any protocol specified on a model entry is ignored. As a result, settings.yaml cannot express “two protocols mixed in one group.” This plugin builds the provider accordingly and lets Harness’s built-in adapter handle request translation.

Protocol Determination Priority

  1. The model’s own protocol (explicitly selected in settings and retained after restart).
  2. Upstream protocols permits only one supported protocol → use that protocol directly.
  3. Upstream permits two protocols → use the global defaultProtocol if it is set; otherwise use the first entry in the upstream list (auto).
  4. Upstream does not declare protocols → use openai-completions.

Only openai-completions and anthropic-messages are supported. Other protocols declared upstream, such as openai-responses and gemini, are ignored.

Version Upgrade

Older versions that wrote gpt-load / gpt-load-anthropic entries into llm-pi-ai routing will be taken over automatically: the plugin first restores the endpoint and then removes these two routes. Other providers are not affected.

Applicable Scenarios

This plugin is suitable for developers who need to manage a model pool through gpt-load and want to flexibly use OpenAI or Anthropic protocols within a single DSH provider group. Before installing, make sure you have reviewed the source code and license.