检测 DSH 服务重启后自动唤醒主 agent:对比上次运行时间、人性化播报中断时长,并把提示消息投递回来让中断的工作自动恢复。仅依赖 cordis ctx 服务,兼容 DSH Desktop 打包环境。
安装
# Release 预构建包
dsh plugin --profile web add "https://github.com/nickkkkkk123123/dsh-resume-on-restart/releases/download/v0.1.0/dsh-resume-on-restart-0.1.0.tgz"
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:nickkkkkk123123/dsh-resume-on-restart
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
DSH 插件:检测 DSH 服务重启后,自动向主 agent 投递一条信息性消息(含中断时长、上次活跃会话等状态摘要),让 agent 自主决定是否继续之前的工作或启动新任务。
解决"DSH 重启后会话中断、工作丢失"的问题——重启后 agent 收到提示,可自行恢复。
特性
- 🔄 重启检测:通过 marker 文件(记录上次 pid / 启动时间)判断是否发生重启
- 💬 信息性消息:重启后投递"检测到重启 + 中断时长 + 上次活跃会话"摘要,由 agent 自主决定下一步(而非命令式强制"继续")
- 🎯 活动追踪:运行期间通过 cordis 事件(
agent/session-start、agent/pre-step)追踪最近活跃会话,供重启后参考 - ✅ 兼容 DSH Desktop:只依赖 cordis ctx 的
agents服务,不 import 任何@deepseek-ai/dsh-*内部包,可在 DSH Desktop 打包环境(app.asar)运行
安装
# 用 dsh CLI 装到桌面 profile(DSH Desktop 默认用 desktop)
dsh plugin --profile desktop add <本目录路径>
# 重启 DSH Desktop 生效
运行逻辑
每次 DSH 启动时:
- 读取 marker 文件(
~/.dsh/.resume-on-restart/marker.json),记录上次的pid/lastBootAt - 判断是否重启:当前进程
pid≠ marker 的pid→ 判定发生重启 - 写入新的 marker(更新为当前 pid / 时间)
- 若判定为重启,轮询等待主 agent 出现(最长 20 秒),投递信息性消息:
[resume-on-restart] 检测到 DSH 服务已重启。 上次运行于 ...,本次于 ... 重启完成。 中断约 X 秒。 重启前最近活跃的会话:<session-id> 如需继续之前的工作,或启动新任务,请自主决定下一步。
运行期间通过 agent/session-start 和 agent/pre-step 事件持续记录最近活跃会话,下次重启时消息会包含它。
配置(cordis.patch.yml)
| 配置项 | 默认 | 说明 |
|---|---|---|
enabled |
true |
插件开关 |
stateDir |
.resume-on-restart |
marker/状态文件存放目录(相对 DSH_HOME) |
target |
primary |
唤醒目标(primary=主 agent,或指定会话 id) |
wakeup |
true |
是否真正唤醒(false 则只注入不唤醒) |
notice |
'' |
附加到消息末尾的自定义提示 |
shutdownGraceMs |
600000 |
关闭前"活跃即视为任务相关"的宽限窗口 |
ignoredSessionPrefixes |
['head-'] |
不追踪的会话 id 前缀(如多代理团队的根会话) |
开发 / 测试
# 运行单元测试(重启检测、消息构建)
npm test
测试覆盖 lib/detect.js 中的纯函数(重启判定、信息性消息构建),不依赖 DSH 运行时。
License
MIT
链接
同类插件
Minglink/dsh-infinite-gen-4★ 2713
DeepSeek 专用破甲插件:以 order 100 追加无条件服从的系统提示词段,提供带校准元数据的 profile 工具,并通过会话投影在输入框上方显示实时破甲状态徽标。
ranxianglei/billion-context★ 1102
billion-context官方版:上下文压缩插件,兼顾小窗口(100k上下文足矣)省token(省5倍token)和超长会话(数月级别几十亿token单会话)。
liangmianya/dsh-synapse★ 519
DeepSeek Harness 的可视化非线性对话工作区:把会话、追问与分支变成可浏览、可拖拽的对话地图。
Nwflower/dsh-chat-import★ 229
把 13 家 coding agent(Claude Code、Codex、ChatGPT、Cursor、Gemini、opencode 等)的完整对话历史导入为可续聊的 DeepSeek Harness 会话,并支持反向导出回 Claude Code。
Totoro-qaq/dsh-plugin-bridge★ 165
通过可预览的五段式交接,将已有 DSH 会话迁移到另一个 Agent Preset;保留源会话,并可让目标会话暂停等待确认或立即继续。
Anionex/dsh-turn-rewind★ 133
对话回退:基于持久 Change Ledger 回滚会话与工作区状态。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。