DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

643048695 /

643048695/dsh-auto-retry

Verified

DSH plugin: retry failed model requests automatically — 2s/5s/10s/20s backoff ladder, per-step counters, abort-aware.

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@beec8238

dsh-auto-retry

English | 中文

给 DeepSeek Harness 加一层模型请求自动重试:某个 step 的请求因为网关抖动、限流或超时失败时,插件拦住这次失败,等一段时间后把这个 step 重跑一遍,而不是让整轮对话直接结束。

provider 返回 503 / 429 / "upstream_error" …
        ↓  agent/request-error waterfall
   dsh-auto-retry(prepend,最先拿到这次失败)
        ↓  等待 2s → 重试;再失败等 5s → 重试 …
   重跑同一个 step

它解决什么

中转站、聚合网关、以及被限流的官方接口,常见失败是一次性的:同一个请求隔几秒再来就成功了。默认行为是这次失败直接冒到界面上、这一轮宣告结束,你得手动再点一次。

装上之后,这类抖动会被就地消化:日志里能看到「第 1/4 次自动重试,等待 2 秒」,然后对话自己继续。

装法

dsh plugin add github:643048695/dsh-auto-retry

或者在 profile 的 package.json 里写依赖、把 dsh-auto-retry 加进 dsh.profile.bundles,再把目录链接进 node_modules。

退避阶梯

默认最多重试 4 次,最坏累计静默 ≈ 37 秒:

第几次 等待 累计
1 2 秒 2 秒
2 5 秒 7 秒
3 10 秒 17 秒
4 20 秒 37 秒

计数按 provider + turn + step 为键,所以重试的是「同一个 step」,不会把整轮对话从头再跑一遍。

配置

设置页里可改,字段都是 volatile(改完立即生效,不需要重启):

字段 默认 说明
enabled true 总开关
maxRetries 4 最大重试次数;阶梯延迟超出表长后固定用最后一档(20 秒)
log true 每次拦截与等待是否写日志

边界与取舍

  • 它拦的是全部错误,不做分类。 这是有意的:中转站经常把「额度用完」「模型不存在」包成一句 upstream_error 或干脆不给状态码,按状态码分类反而漏拦。代价是不可恢复的错误也会被重试(例如密钥失效、请求体不合法),表现为多等几十秒后才报同样的错。要避免,把 maxRetries 调小或关掉插件。
  • 用户按停止(signal.aborted)时立即放弃,不会在后台偷偷重试。
  • 只重放当前 step,不改写请求内容、不换模型、不换 provider。换模型的活儿交给路由类插件。
  • 一直失败时,日志会明确写「已达到最大重试次数,停止重试」,不会静默吞掉。

兼容性

  • 依赖宿主暴露的 agent/request-error waterfall,以及处理函数返回 { kind: "retry" } 的契约。
  • 与 DSH 0.2.1-rc.3(当前桌面版内置核心)逐项核对过:这两处接缝与返回契约都在。更早的 0.1.7 线同样具备。
  • 若宿主改动这两处契约,插件的最坏表现是不生效(监听不到,或返回值不被识别),不会让原本正常的请求失败。

验证

npm test 跑 8 个用例,覆盖阶梯递增、次数上限后的回落、计数键隔离、开关关闭、以及「已中断 / 等待中中断」两条中断路径(用 node:test 的假定时器推进,不真等 37 秒)。CI 额外校验市场要求的 dsh.bundle 清单与入口文件。

许可

MIT。见 LICENSE。

—/ 5

No ratings yet

Verified DSH bundle

Commit beec82388617

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout