dsh-resume-turn: 恢复中断的回复

前言

在 DeepSeek Harness (DSH) 的生态中,当模型请求在缓慢或不稳定的端点中途失败时,默认的 dsh-llm-retry 会重建同一个请求并从零开始重新运行。这意味着已经流式传输的文本(包括长推理链)会被丢弃,一个多分钟的尝试可能会被重复执行多次。dsh-resume-turn 改变了这一行为,它从部分输出中恢复中断的回复。

这是什么

dsh-resume-turn 是 DeepSeek Harness (DSH) 的一个插件,由 Harris Logic 维护。它属于模型推理类别,采用 MIT 许可证。该插件的核心作用是:在模型回复因网络中断或超时半途失败时,自动把已生成的部分输出带进下一轮,让模型从中断处继续,而不是从零全量重跑。

核心功能

  1. 从部分输出恢复:自动从已流式传输的可见文本和推理块中收集内容,而非重新生成。
  2. 可见引导消息:注入一条可见的“自动恢复”引导消息,引用部分输出并指示模型继续。
  3. 接管恢复流程:使用 { kind: 'retry' } 接管恢复逻辑。
  4. 支持特定失败码:支持 TIMEOUT、TRANSPORT、SERVER、RATE_LIMIT 等失败代码。

安装与启用

安装插件需要使用 DSH 的包管理器。执行以下命令即可完成安装:

npx @deepseek-ai/dsh plugin --profile web add github:Harris-Logic/dsh-resume-turn

安装后,重启配置文件(或 Web 主机)以激活插件。该插件声明了 dsh.bundle.patch,安装程序会自动将其附加到 dsh.profile.bundles 中,并自动应用其 cordis.patch.yml 插件行,无需手动编辑文件。

配置

插件没有强制要求的配置项。可选的配置项(在配置文件的 cordis.patch.yml 行 config 中或作为 bundle 配置)如下:

key default meaning
maxResumesPerTurn 3 每一轮的最大自动恢复次数;超过后默认重试接管
resumeCodes ["TIMEOUT","TRANSPORT","SERVER","RATE_LIMIT"] 有资格进行恢复的失败代码
initialDelayMs 2000 第一次恢复前的退避时间(每次尝试加倍,上限 30s)
maxPartialChars 12000 引用进恢复消息的最大部分输出字符数

工作机制与交互

插件在 agent/request-error 阶段介入:
* 条件判断:如果是用户取消、非瞬时性错误、没有部分输出、正在工具调用中或已用完恢复预算,则委托给默认处理逻辑。
* 恢复流程:收集当前尝试的块(助手/块事件),设置可取消的退避,调用 agent.steer(resume message)(可见的自动恢复行,包含部分输出和继续指令),最后返回 { kind: 'retry' }。
* 与 dsh-llm-retry 的交互:
* 在 retryPolicy 为 mode: always 的提供商上,插件会优先介入。返回 { kind: 'retry' } 会短路重试链。
* 在 mode: normal 提供商上,插件只有在重试链顺序位于 llm-retry 之前时才会被咨询。

限制与注意事项

  1. 边界句子重述:恢复会将部分输出引用到上下文中,继续的回答可能会重新表述边界句子(通过“不要重复”指令缓解)。
  2. 连续失败计数:如果端点在恢复后立即再次失败,尝试次数会计入每轮预算。预算用完后默认重试接管。
  3. 内存状态重置:主机重启会重置内存中的恢复预算/边界(存储的日志保持可读)。

结语

对于在慢速或不稳定端点部署的智能体,dsh-resume-turn 能显著减少因网络波动导致的算力浪费。更多详情可参考:GitHub | 社区目录。

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

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

小夜