Bundle
dsh-llm-fallback
Provider/model fallback chain plugin for DeepSeek Harness — when the current model fails with an eligible error code (e.g. RATE_LIMIT or QUOTA), the agent loop automatically retries with the next provider/model in the configured chain.
- Source
- morphlinglan
- stars
- 1 stars
- License
- MIT
- Updated
- Updated 14 days ago
Readme
# dsh-llm-fallback
A [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) plugin that adds a provider/model fallback chain to the agent loop.
When a model request fails with an eligible error code (e.g. `RATE_LIMIT` from a 429, or `QUOTA`), instead of only retrying the same model, the plugin transparently moves to the next provider/model in the configured chain.
## Install
```sh
dsh plugin --profile web add github:morphlinglan/dsh-llm-fallback
```
Then restart `dsh web` if it is already running.
## Usage
Add an `insert` entry to the profile's `cordis.patch.yml` (or rely on the bundle default and configure it through your profile patch layer):
```yaml
- insert:
- id: dsh-llm-fallback
name: dsh-llm-fallback
config:
codes:
- RATE_LIMIT
- QUOTA
scope: turn
fallbacks:
# Replace these with your own backup providers/models.
- provider: backup-provider-a
model: backup-model-a
- provider: backup-provider-b
model: backup-model-b
```
The providers/models above are **placeholders only**. Replace them with providers and models you actually have access to.
### Config
| Field | Type | Default | Description |
| --- | --- | --- | --- |
| `codes` | `string[]` | `["RATE_LIMIT", "QUOTA"]` | Failure codes that trigger a fallback. |
| `fallbacks` | `{ provider, model }[]` | `[]` | Ordered chain of backup providers/models. |
| `scope` | `"step" \| "turn" \| "session"` | `"turn"` | How long the sticky fallback selection persists. |
### Scope behavior
- `step`: each step starts on the primary model; only retries within one step walk the chain.
- `turn`: once a fallback is selected, it is reused for the rest of the current turn; the next turn tries the primary again.
- `session`: once a fallback is selected, it stays selected until the chain is exhausted; best when the primary is durably down.
## License
MIT
Install
dsh plugin --profile web add github:morphlinglan/dsh-llm-fallback
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-llm-fallback from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.