dsh-auto-retry:DSH 工作流自动恢复插件

前言

DeepSeek Harness (DSH) 采用插件化架构,允许用户扩展功能。在使用 DSH 进行工作流编排时,常会遇到网络波动、服务端报错或模型流输出中断的情况。内置的重试机制有时不够用,或者执行太快导致用户无法感知,而断开的回合往往需要手动介入。

dsh-auto-retry 插件旨在解决这些问题。它提供请求级补充重试、回合级自动继续以及挂起自动唤醒。通过这些机制,插件能在后台自动处理大部分异常,并将过程可视化,避免用户盯着屏幕干等。

核心能力

请求级补充重试

当 DSH 内置重试耗尽后,插件会针对 8 种触发情况进行追加重试。这 8 种情况包括:限流 (429)、服务端错误 (5xx)、响应超时、空响应、网络传输错误、未知错误、HTTP 4xx 错误以及请求中断。用户可以在设置中逐项勾选并设定重试次数(0~20 次)。

回合级自动继续

对于重试无法挽救的回合,插件会延迟一段时间(默认 5 秒)后自动以用户身份发送“继续”消息,恢复上下文。这包括输出被截断后的续写,以及因无可用模型等原因导致的停摆。为了避免在网络彻底断开时无限空转,插件内置了熔断机制,连续失败达到阈值后会暂停自动继续,直到回合成功。

无响应看门狗

dsh 的流式输出默认没有超时保护。如果模型长时间不输出任何内容(零活动),任务会永远挂起。插件通过“看门狗”机制检测这种情况:一旦判定时长(默认 180 秒)内无流帧或事件,主动取消当前请求并触发自动继续。

实时状态展示

为了解决“后台到底发生了什么”的盲区,插件在界面底部增加了实时倒计时横幅,显示重试进度、触发原因和剩余时间。同时,右上角会弹出轻量级战报通知,每条通知 4 秒后自动消失。

数据看板

在设置页底部提供可折叠的数据看板。它会记录重试次数、成功所需平均重试次数、错误码分布、模型分布以及按日统计的趋势。数据持久化在本地(~/.dsh/auto-retry-stats.),重启后保留最近 5000 条记录。

内置策略展示与输入优化

设置页会直接展示各 Provider 当前生效的内置重试策略,帮助用户理解插件追加重试的时机。同时,针对 UI 输入框,插件修复了数值框“边输边改”的问题,支持输入时自由书写,失焦后自动校验修正。

主/子智能体分治

插件采用分治策略:主智能体负责处理重试和自动继续;子智能体仅负责请求级重试。当子智能体彻底失败时,错误会返回给主智能体,由主智能体自行判断是否重试或继续,避免越权操作。

安装与启用

进入 profile 目录:

cd ~/.dsh/profiles/web

使用插件命令安装:

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

安装完成后,重启 DSH Web。进入设置页,即可看到“自动重试”板块。

配置与设置

设置页从上到下包含以下板块:

  1. 总开关与实时通知:一键停用插件,或仅关闭弹窗通知。
  2. 触发情况:勾选 8 种需要触发补充重试的错误类型,并设置各自的重试次数。
  3. 主智能体:配置自动继续的延迟时间、熔断上限、继续文案、看门狗判定时长以及截断续写开关。
  4. 子智能体:仅开启补充重试,并查看相关说明。
  5. 高级:选择间隔策略(指数退避或固定间隔)及参数。
  6. 内置重试策略:查看当前生效的配置。
  7. 数据看板:点击展开统计面板。

默认配置即推荐值,通常无需调整。

注意事项

  • 恢复范围:插件只恢复“看门狗取消”和“真报错”两种情况。手动点击停止的回合不会自动继续。
  • 追加而非替代:插件尊重 DSH 内置重试,只在它耗尽或不覆盖时出手,不会双重重试。
  • 数据存储:统计数据存储在本地,文件名为 ~/.dsh/auto-retry-stats.。

兼容性

该插件兼容以下 DSH 版本:

  • dsh 0.1.7-alpha.1
  • dsh 0.1.7-alpha.2
  • dsh 0.2.0-rc.1
  • dsh 0.2.0-rc.2

结尾

dsh-auto-retry 将繁琐的手动干预工作自动化,适合网络环境不稳定或需要长时间运行的任务场景。更多详情与源码,请访问 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜