dshbase

插件目录 / Developer / dsh-reconnect

dsh-reconnect

未验证 MistRain-1

✓ 持续维护 基于 4 个官方 DSH 包

查看 GitHub ↗ ← 返回插件目录

3Stars
0Forks
0未关闭 issue
语言
2026-08-21最近推送
跨平台平台

功能简介

断线无限重新连接,适用于不稳定的API或者中转站

我们的评价
未验证 — 尚未实测

断线无限重新连接,适用于不稳定的API或者中转站 尚未验证——请自行安装测试。

「未验证」表示我们的自动化 CI 尚未安装过该插件。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。

你是插件作者? 想拿到「已验证」标签——提交你自己的验证证据(截图、日志或短视频),我们审核通过后即改为「已验证」。

提交验证证据 ↗

README

dsh-reconnect

Safe model-request retry for DeepSeek Harness with exponential backoff, relay/proxy failure recovery, and a unified settings panel.

Version: 2.0.0

Project Description

dsh-reconnect is a Host-side plugin for DeepSeek Harness (DSH). It retries failed model requests so temporary network failures do not interrupt an agent turn or a long-running task.

The plugin listens to the DSH agent/request-error waterfall event. After the built-in normal Provider retry policy gives up, or when a Provider's always policy delegates recovery downstream, the Agent loop sends the same request again according to this plugin's policy.

Suitable Use Cases

  • Unstable relay stations, reverse proxies, API gateways, or forwarding services
  • Relay nodes that disconnect, reset connections, or return incomplete responses
  • Intermittent network failures and transport errors
  • Temporary provider outages, server-side 5xx errors, rate limits, and timeouts
  • Long-running tasks that should survive short-lived provider or network failures

Retry Policy

Condition Behavior
EMPTY_RESPONSE / RATE_LIMIT / SERVER / STREAM_CLOSED / TIMEOUT / TRANSPORT Retry indefinitely (transient connection/service failures)
Model missing or not configured (MODEL_NOT_FOUND, MODEL_NOT_CONFIGURED, or matching Provider text) Retry indefinitely while waiting for model/account configuration to recover
QUOTA (insufficient balance or exhausted quota) Do not retry by default; retried when retryQuota: true
Unknown errors such as PI_AI_ERROR Retry indefinitely by default; disable retryUnknown to apply the configurable consecutive-failure cap
Tool/argument/unknown-tool/auth/credential/context-overflow/aborted Never retried; step ends immediately

Key design points:

  • Only retries failures that "resending the same request" can fix — dropped connections, rate limits, timeouts, 5xx.
  • Tool execution errors (tool/result) are outside this plugin's retry boundary. Error routing uses the machine code from agent/request-error, rather than guessing from message text; an unknown machine code uses the configured unknown-error path (bounded only when retryUnknown is disabled).
  • Permanent errors (credentials, request content, context overflow) stop immediately; missing or unconfigured models are the deliberate exception and keep retrying while configuration recovers.
  • retryQuota and retryUnknown control this plugin's fallback chain. The Host always policy delegates recovery to downstream waterfall listeners, so this plugin handles the recoverable failure categories once and does not create a second parallel retry loop.

Backoff and Cancellation

  • Exponential backoff: 1s -> 2s -> 4s -> ..., capped at 60s by default (the settings panel offers 1/2/5/10/30/60/120 seconds or a custom value; maxDelayMs overrides in milliseconds)
  • Honors a positive providerRetryAfterMs when available. It is a provider minimum wait and is not capped by the local exponential-backoff limit; only the Node timer maximum applies.
  • Logs the provider, error code, turn, step, retry count, and delay
  • Emits standard llm/retry events so the Harness conversation UI shows the continuous retry count and countdown
  • Stops when the current turn is aborted, the plugin is stopped, or the plugin is hot-reloaded; active waits are drained during cleanup.

Visual Configuration

Open Settings → Plugin configuration. ReConnect is shown as a plugin card in that page:

  • Max wait per attempt: drop-down presets (1/2/5/10/30/60/120 seconds) or a custom value
  • Retry on quota: toggle, off by default
  • Retry unknown errors indefinitely: toggle, on by default
  • Max retries for unknown errors: default 3. Missing or unconfigured model errors are not subject to this cap and always retry.

Changes take effect immediately without restarting DSH.

YAML Configuration

The plugin accepts optional values in its Cordis row config:

  • maxDelayMs (integer milliseconds, default 60000): caps the local exponential-backoff delay; for example 15000 produces 1s -> 2s -> 4s -> 8s -> 15s -> 15s... indefinitely. A positive Provider Retry-After remains authoritative.
  • retryQuota (boolean, default false): whether QUOTA errors are also retried.
  • retryUnknown (boolean, default true): whether unknown errors are retried indefinitely.
  • unknownMaxRetries (integer, default 3): bounded cap for consecutive unknown failures in the same model step; missing or unconfigured model errors do not use this cap.

The settings service persists the plugin card values. Restore defaults removes the user overrides and immediately returns to the schema/Cordis defaults; a restart is not required.

The plugin's own retry policy is the downstream recovery for both Provider normal and always policies. The two layers do not multiply retries: normal schedules only its configured codes before this plugin, while always delegates the decision downstream.

maxDelayMs caps the local exponential wait, not a Provider Retry-After value and not the total retry duration.

- insert:
    - id: reconnect
      name: dsh-reconnect
      config:
        maxDelayMs: 15000
        retryQuota: false
        retryUnknown: true

Invalid or missing maxDelayMs values fall back to 60000.

Download

The package is platform-independent. Choose one of the following methods.

Method 1: GitHub Web Download

  1. Open https://github.com/MistRain-1/dsh-reconnect.
  2. Select Code and then Download ZIP.
  3. Extract the archive and use the extracted dsh-reconnect-main directory as the plugin package.

Method 2: Git Clone

Windows PowerShell:

git clone https://github.com/MistRain-1/dsh-reconnect.git "$HOME\dsh-reconnect"

macOS:

git clone https://github.com/MistRain-1/dsh-reconnect.git "$HOME/dsh-reconnect"

Linux:

git clone https://github.com/MistRain-1/dsh-reconnect.git "$HOME/dsh-reconnect"

Method 3: Download the ZIP from a Terminal

Windows PowerShell:

Invoke-WebRequest -Uri https://github.com/MistRain-1/dsh-reconnect/archive/refs/heads/main.zip -OutFile dsh-reconnect.zip
Expand-Archive -Path dsh-reconnect.zip -DestinationPath .

macOS:

curl -L https://github.com/MistRain-1/dsh-reconnect/archive/refs/heads/main.zip -o dsh-reconnect.zip
unzip dsh-reconnect.zip

Linux:

wget https://github.com/MistRain-1/dsh-reconnect/archive/refs/heads/main.zip -O dsh-reconnect.zip
unzip dsh-reconnect.zip

After downloading, register the package in the DSH Cordis composition:

- insert:
    - id: reconnect
      name: dsh-reconnect

A DSH restart is required after installing the persistent plugin package.

Requirements

  • DSH Host plugin
  • Uses the agent/request-error waterfall event and the Host settings service
  • Client side provides a unified-format settings card and never reads credentials

License

MIT

安装

🧩 让 Agent 自动装(推荐)

装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:

dsh plugin add dshbase-catalog

然后对 agent 说「帮我装 dsh-reconnect」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包

该插件是 GitHub 源码(未发 npm)——直接从仓库装:

Web profile:

dsh plugin --profile web add github:MistRain-1/dsh-reconnect

Headless(CLI)profile:

dsh plugin --profile headless add github:MistRain-1/dsh-reconnect

实测报告

尚未 L3 验证——若已跑过,见下方失败备注。

状态:pending · 最近测试 2026-08-25
备注:验证: install-fail 浏览全部待验证失败 →
安全:尚未扫描——我们的每日静态扫描将很快覆盖它。

分享徽章

Developer 里更多

浏览全部 7789 个插件 →