dsh-session-resilience:DSH 安全重启与策略化会话恢复

前言

在 DeepSeek Harness (DSH) 的智能体开发场景中,本地宿主机重启、网络断开、Token 达到上限或检测到重复工作时,现有的会话往往会中断。手动恢复不仅耗时,还容易丢失上下文或导致状态不一致。

dsh-session-resilience 插件旨在解决这些问题。它通过在 DSH 配置文件中集成一个安全重启、基于令牌感知的重新连接以及策略化会话恢复的 Bundle,让 DSH 在重启后能够尽可能无缝地恢复或延续之前的任务。

插件定位

dsh-session-resilience 是一个 DSH 配置文件插件(Bundle),由开发者 hasan-aghayev 维护。

它的核心价值在于:
* 安全重启:记录活跃会话,启动替换宿主机,并在连接就绪前不报告成功。
* 策略化恢复:提供预设策略和手动控制,适应不同长度的任务。
* 本地优先:所有标记、日志和控制路由均运行在本地宿主机,不依赖远程服务或分析。

核心功能

插件提供以下已核实能力:

  1. 安全 DSH 重启:记录当前活动的根会话,在配置的端口启动新的 DSH 宿主机,并在确认新连接可用后才结束当前流程。
  2. 令牌感知重连:在浏览器后台交换新的启动令牌,请求 DSH 替换当前连接,并等待新连接建立后才报告成功。
  3. 策略化会话恢复:提供四种策略配置(Safe、Balanced、Long task、Manual),分别控制交接窗口、重试次数、扫描范围和退避策略。
  4. 就地重连:在保持当前页面和未发送草稿不变的情况下完成重连。
  5. 单一恢复中心:重启、停止、自动延续、循环保护、错误分类、通知、统计和暂停会话的控制均在一个设置卡片中管理。
  6. 无虚假成功:系统不会在替换宿主机不可达或未找到新的启动 URL 时报告就绪。
  7. DSH 原生控制面:使用 DSH 的语义令牌和紧凑字段密度,而非独立的视觉主题。

安装与启用

安装该插件需要将其安装到 DSH 配置文件所使用的环境中,并将其添加到配置文件的 Bundle 列表中,然后运行配置文件的常规 Reconcile 步骤。

安装命令如下:

dsh plugin --profile <profile> add https://github.com/hasan-aghayev/dsh-session-resilience

安装完成后,重启 DSH 实例即可生效。

使用方式与控制

模型工具调用

在模型侧,插件提供了两个原生的工具函数:
* restart_dsh:当用户明确要求重启 DSH 或当前任务逻辑需要重启时调用。
* shutdown_dsh:仅当用户明确要求停止时调用。

这两个工具均接受空对象作为参数。重启结果中会包含实例信息、前一个进程、端口、捕获的根会话以及帮助日志路径。

恢复策略配置

在 DSH 的设置界面(Settings → Plugins → DSH Session Resilience)中,可以通过卡片进行配置。卡片支持分步编辑,需点击保存后才会写入配置。

主要策略包括:

  • Safe:适用于短期或敏感任务。交接窗口 5 分钟,最多连续恢复 2 次,扫描范围较小。
  • Balanced:适用于日常工作。交接窗口 10 分钟,最多连续恢复 3 次,使用中等退避。
  • Long task:适用于构建、导入和长周期智能体会话。交接窗口 30 分钟,最多连续恢复 8 次,扫描范围更广。
  • Manual:适用于精细调整。使用卡片中的单个控件进行控制,初始值与 Balanced 保持一致。

安全行为

恢复引擎仅在机器中断、临时失败或 Token 限制时自动延续。用户中止和政策阻止的回合不会被自动恢复。在恢复前,幂等性守卫可以阻止重复调用已知的成功工具或验证未知结果。

注意事项

  1. 环境要求:

    • Node.js 版本需 >= 22.19.0。
    • DSH 版本需满足:>=0.1.0-rc.7 <0.2.0 或 >=0.1.7-alpha.1 <0.1.8 或 0.2.0-rc.2 或 ^0.2.0。
  2. 本地运行:

    • 重启标记、辅助日志和控制路由仅限于 DSH 宿主机本地。
    • 插件不包含任何分析功能或远程服务。
  3. 就绪状态:

    • 重启操作不会在替换宿主机可达且找到其新的启动 URL 之前被报告为就绪。

总结

dsh-session-resilience 提供了一套本地化、策略化的解决方案,用于处理 DSH 宿主机重启和会话中断的场景。通过将恢复控制集中在单一界面,并确保只有经过验证的连接才能被视为成功,它降低了手动干预的需求,提升了智能体任务运行的稳定性。

更多信息与源码请访问:GitHub 仓库

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

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

小夜