dshbase

插件目录 / Developer / dsh-auto-retry

dsh-auto-retry

已验证 · 实测可装 Windsland52

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

查看 GitHub ↗ ← 返回插件目录

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

功能简介

Developer 类别的 DeepSeek Harness 插件。

✅
我们的评价
可用 — 实测通过,早期项目

Developer 类别的 DeepSeek Harness 插件。 实测能干净安装、正常启动。早期项目,但功能可用。

「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。

README

dsh-auto-retry

DSH 的有界后备恢复插件。它不会替换官方 @deepseek-ai/dsh-llm-retry,而是在官方提供方策略不再重试后接手。

它解决的是一类容易混淆的问题:中转方把可恢复的瞬时 429 标成 QUOTA,或者模型请求“正常结束”但没有可见输出。插件只在有明确证据时接手,并把重试次数、总等待时间和自动续行次数全部限制在配置预算内。

安装

从 GitHub 安装到 Web profile:

dsh plugin --profile web add "github:Windsland52/dsh-auto-retry#main"

安装器会把包含 dsh.bundle.patch 的依赖加入 profile bundle。GitHub 安装会通过包的 prepare 脚本构建 lib/;如果 pnpm 提示阻止构建脚本,按提示把该包加入 profile 的 pnpm-workspace.yaml allowBuilds 后重新执行安装。

安装后重启 DSH。配置写在 profile 自己的 cordis.patch.yml,不要直接修改 node_modules 里的 bundle 文件。

默认行为

  • 额外重试 RATE_LIMIT、HTTP 429、EMPTY_RESPONSE、STREAM_CLOSED。
  • 中转方把瞬时 429 误标成 QUOTA 时,只在错误详情包含 rate_limit_exceeded、rate limit、allocated quota exceeded 等特征时重试;真正的余额/credits 耗尽不会重试。
  • 最多额外重试 8 次,总等待时间不超过 15 分钟。
  • 优先使用提供方的 Retry-After,否则使用带抖动的指数退避(1.5 秒至 60 秒)。
  • 正常结束但没有可见文本/工具调用时,自动续行。
  • max-tokens 截断时自动续行。
  • 每个 turn 最多自动续行 2 次,避免空响应死循环。
  • AUTH、QUOTA、上下文超限、无效请求和用户取消不会被默认重试。

配置

- id: dsh-auto-retry
  name: '@dsh-external/dsh-auto-retry'
  config:
    # 空数组表示所有 provider;也可以只写 [scnet]
    providers: []
    retryCodes:
      - RATE_LIMIT
      - EMPTY_RESPONSE
      - STREAM_CLOSED
    retryQuota: true
    quotaRetryPatterns:
      - rate_limit_exceeded
      - rate limit
      - too many requests
      - allocated quota exceeded
      - temporarily unavailable
    maxRetries: 8
    maxElapsedMs: 900000
    initialDelayMs: 1500
    maxDelayMs: 60000
    jitterRatio: 0.2
    maxAutoContinuations: 2
    continueOnMaxTokens: true

每次后备重试都会复用 DSH 已有的 llm/retry 和 llm/retry-started 持久事件,因此会话重放和现有重试状态 UI 仍能理解它。内部自动续行使用 plugin 来源的 user message,不会伪装成人类输入。

和其他插件的边界

插件 主要职责 是否覆盖本插件的核心场景
官方 @deepseek-ai/dsh-llm-retry provider 自己声明的请求错误重试策略 它先处理;本插件只在它放弃后接手
dsh-llm-bounded-retry 对结构化 LLM 请求错误统一做有界重试 不处理静默成功响应、max-tokens 续行或 relay QUOTA 识别;不要和本插件同时接管同一 profile 的请求重试
dsh-retry-override 覆盖指定 provider 的 retry policy 不处理输出续行;适合需要按 provider 改策略的用户
dsh-client-auto-retry Web 客户端监听 turn/end 后发送“继续” 和本插件的 max-tokens/错误续行有重叠,不建议同时启用
dsh-autofix 工具调用错误的单次恢复动作 不处理模型请求或模型输出

本插件的定位是 Host 侧、provider-aware 的后备恢复:保留官方重试优先级,专门补齐中转方瞬时限流误报、空可见输出和输出截断这三个缺口,而不是再提供一个无限重试器。

兼容性

  • 已针对 DSH 0.1.0-rc.7 的 Web profile 验证。
  • 插件不切换模型或 provider,不修改请求内容,也不把自动续行伪装成人类消息。
  • 同一个 profile 只应有一个插件负责 agent/request-error 的全局重试预算;需要使用其他重试策略时,应按 provider 划分责任范围。

GitHub 发布

发布仓库后建议添加 dsh GitHub topic,方便社区目录发现。当前 package 保留了 private: true,表示只支持 GitHub 源码安装;如果以后要发布到 npm,需要删除该字段并改用正式的 npm 发布流程。

开发

npm install
npm test
npm pack --dry-run

安装

🧩 让 Agent 自动装(推荐)

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

dsh plugin add dshbase-catalog

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

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

Web profile:

dsh plugin --profile web add github:Windsland52/dsh-auto-retry

Headless(CLI)profile:

dsh plugin --profile headless add github:Windsland52/dsh-auto-retry

实测报告

验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。

安全:尚未扫描——我们的每日静态扫描将很快覆盖它。

分享徽章

Developer 里更多

浏览全部 7819 个插件 →