前言¶
在 DeepSeek Harness 开发中,有时需要重启 Desktop 进程以刷新环境或重新加载插件。重启后,持久化会话通常会断开。dsh-self-restart 插件解决了这个问题:它允许一个会话请求 Desktop 重启,并在重启后自动恢复相同的会话并继续执行任务。
这是什么¶
dsh-self-restart 是一个社区插件,由 NecromanAlbert 维护。它仅运行在 Host 进程中。它读取交接文件,恢复会话,并发送后续任务。
核心功能¶
- 请求 Desktop 重启。
- 恢复持久化会话。
- 发送后续任务。
- 读取交接文件。
安装与启用¶
使用官方命令安装:
dsh plugin --profile desktop add github:NecromanAlbert/dsh-self-restart
安装后重启 Desktop。
典型用法¶
插件暴露了一个 Agent 工具,配置包含三个参数:
mission:必填。自包含的下一轮指令。reason:可选。存储在交接文件中。sessionId:可选。默认为currentInitiator。
示例配置:
{
"mission": "Reload plugin copies, then verify the notes pad still opens.",
"reason": "reload-client"
}
运行机制¶
Desktop 重启后,插件执行以下步骤:
- 读取
$DSH_HOME/self-restart/handoff.json(最大年龄 30 分钟)。 - 如果会话不活跃,调用
agents.resume。 - 发送带有
mission的插件通知。 - 清空文件。
适用场景与注意¶
- Host-only:插件仅在 Host 进程中运行,无客户端界面。
- 交接文件:一次只能存在一个交接文件。后续调用会覆盖之前的文件。
- 手动重启:如果 Host 不支持
desktopActions.requestRestart,插件会写入交接文件并提示用户手动重启 Desktop。 - 边界:这不是一个
dsh web进程杀手、侧边栏重启按钮或 systemd 集成。
短结尾¶
该工具通过处理交接文件和会话恢复,简化了重启后的工作流。适合需要重置环境但保持会话连续性的场景。
- GitHub 仓库:https://github.com/NecromanAlbert/dsh-self-restart
- 生态目录:https://www.skillhub.cn/plugins/NecromanAlbert/dsh-self-restart