前言¶
DeepSeek Harness 的核心设计理念是“一切皆插件”,但在实际运维中,当需要重启后端进程或进行资源重载时,往往面临会话中断、工作排空不及时或上下文丢失的风险。dsh-restart-resume 插件旨在解决这些问题,它不依赖复杂的内部机制,而是通过外部监督器来管理进程的生命周期,并提供重启后的同会话续接能力。
插件定位¶
这是一个面向 DeepSeek Harness 的安全自重启与同会话续接插件,由 Asteroid0449 维护,开源协议为 MIT。它专注于解决传统重启方式中容易强杀会话、破坏上下文或导致数据未持久化的问题。
核心功能¶
该插件提供以下核心能力:
- 等待工作排空:默认等待全部活跃会话、已发布子代理和后台 jobs 排空,防止重启过程中丢失工作。
- 受监督重启:由外部监督器重新拉起后端,且只响应退出码 75,避免普通崩溃导致无限重启环路。
- 同会话续接:重启后自动尝试恢复原会话的消息,保持上下文连续性。
- Web 页面自动恢复:续接落盘后,Web 页面会自动恢复。
- 状态工具集:提供
dsh_restart、dsh_restart_status、dsh_restart_cancel三个工具,用于控制重启流程和查询状态。
安装与启用¶
从 Releases 下载对应版本(0.2.2)的压缩包后,通过 DSH 的命令行工具安装到 Web profile:
dsh plugin --profile web add .\dsh-restart-resume-0.2.2.tgz
安装完成后,插件会注册三个工具到当前会话中。
典型用法¶
1. 首次验证¶
安装后,可以通过 Agent 工具查询自重启状态,确认插件已正常注册。
2. 监督器契约配置¶
DSH 必须由理解退出码 75 的监督器启动。监督器在每次拉起进程前需要设置以下环境变量:
DSH_RESTART_SUPERVISOR=1
DSH_BOOT_ID=<每次启动生成的新标识>
DSH_RUNTIME_VERSION=<启动器实际校验过的 DSH 版本>
3. 配置与调用¶
在调用重启工具时,可以配置 resumeMode:
* continue:继续原始任务中尚未完成的配置、验证和交付(默认)。
* report-only:用于独立测试。
工具调用示例:
* dsh_restart:安排受监督重启,默认写入持久化 marker。
* dsh_restart_status:查询当前阶段、倒计时、阻塞项及 bootId。
* dsh_restart_cancel:取消尚未退出的重启请求。
适用场景与注意¶
适用场景:适用于需要在不中断 Agent 上下文的情况下进行后端维护、版本升级或资源重载的生产环境。
注意事项:
1. 监督器依赖:DSH 必须由理解退出码 75 的监督器启动。插件不能凭空重新拉起已经退出的进程。没有监督器时,dsh_restart 工具会拒绝执行。
2. 排空机制:默认等待全部活跃会话、已发布子代理和后台 jobs 排空,期间出现新工作会退回等待状态。
3. 安全限制:原子 marker、有效期、频率限制和幂等消息机制,旨在避免重复续接与重启环路。
4. 检查源码:安装前应检查源码与许可证。
总结¶
该插件通过严格的监督器契约和原子 marker 机制,实现了 DeepSeek Harness 的安全自重启与同会话续接。它避免了盲目重启带来的风险,是维护长期运行智能体系统的实用工具。