dsh-auto-shutdown:对话结束后自动关机(Windows)

前言

在 DeepSeek Harness(DSH)里跑长对话或批量任务时,常会等到 Agent 跑完再离开工位。若希望「这一轮真正结束就关机」,手动盯着界面再点系统关机既费事,也容易在子 Agent 还在跑时误关。社区插件 dsh-auto-shutdown(维护者 873360545)在 Settings → General 增加一个开关:打开后,下一次根会话对话完成时由本机调度关机,并弹出可一键取消的原生 Windows 倒计时对话框。插件仅支持 Windows,要求 DeepSeek Harness ≥ 0.2.1;当前包版本为 0.3.0,许可证 MIT。DSH 生态强调「一切皆插件」,插件目录托管在 SkillHub 等社区站点,与 DeepSeek / 幻方无官方从属关系。

这是什么

dsh-auto-shutdown 是分类为「客户端」的 DSH 插件:Host 侧监听回合结束事件,Client 侧在通用设置里渲染开关与配置项。它不替代系统电源策略,而是在你明确打开开关后,把「对话结束 → 延迟关机 → 可选取消」串成一条可复现的路径。

核心功能

  • 设置里的一键开关:文案为「对话完成后自动关机」(英文界面为 “Power off after the conversation finishes”),与 Host 配置表单绑定,修改无需重启 Harness。
  • 一次性触发:排定关机前会把 enabled 写回 false,重启 Harness 后也不会因残留配置突然关机。
  • 原生倒计时对话框:默认在关机前弹出 WinForms 窗口,可点「取消关机」执行 shutdown /a;也可在任意终端执行 shutdown /a 取消。
  • 根会话限定:只有根 Agent 的回合结束能触发;子 Agent / 团队成员回合忽略;若仍有其它 Agent 在跑,会等到下一次回合边界。
  • 可配置延迟与是否弹窗:delaySeconds 控制 shutdown.exe /s /t 的秒数;popup 为 false 时可不显示对话框(仍可通过 shutdown /a 取消)。

实现上,Host(lib/index.js)在 agent/turn-stopping 上过滤根 Agent、单次 latch、写回配置并 spawn shutdown.exe;取消窗由 lib/popup.js 与 assets/notify.ps1(PowerShell 5.1)拉起,文案经 argv 传入以保持脚本 ASCII-only,避免非 UTF-8 代码页破坏中文。

安装与启用

在 PowerShell 中执行官方安装命令之一:

dsh plugin add github:873360545/dsh-auto-shutdown

或从 GitHub Release 安装预构建包:

dsh plugin add https://github.com/873360545/dsh-auto-shutdown/releases/latest/download/dsh-auto-shutdown.tgz

安装后重启 Harness(重启 Host 即可),在 profile 中应能看到插件条目 auto-shutdown。

典型用法

  1. 打开 设置 → 通用,找到「对话完成后自动关机」,打开开关。
  2. 正常结束一次对话。该轮结束时插件会:将开关自动关回;执行 shutdown.exe /s /t <delaySeconds>;若 popup 为 true,弹出倒计时对话框。
  3. 在对话框中:
    - 点 取消关机 → 运行 shutdown /a,机器保持开机;
    - 点 继续关机、关闭窗口或倒计时归零 → 按计划关机。

配置项

以下字段可在设置页与插件页实时修改,无需重启:

字段 默认值 说明
enabled false 总开关;排定关机前会自动写回 false,保证只触发一次。
delaySeconds 60 关机延迟秒数(5–86400),与弹窗倒计时一致。
popup true 是否显示取消关机对话框。

适用场景与注意

适合:在 Windows 上用 DSH 跑完一轮根对话后希望自动关机、又不想长期开着「定时关机」的用户;需要离开前留几十秒缓冲、且希望能一键反悔的场景。

务必注意:

  • 插件以当前 DSH Host 进程所属用户权限运行;shutdown /s /t 对已登录用户可用,README 说明不需要管理员权限。安装前仍建议阅读 GitHub 仓库 源码与 MIT 许可证,确认行为符合你的环境策略。
  • 弹窗逻辑只会执行 shutdown /a,不会自行再排定关机。
  • 调试:在 Host 环境变量中设 DSH_AUTO_SHUTDOWN_DRYRUN=1 可只记录将要执行的命令而不真正关机;设 DSH_AUTO_SHUTDOWN_POPUP_LOG=<文件> 可将弹窗用户操作追加到日志文件。

结尾

dsh-auto-shutdown 把「对话结束」和「本机关机」绑成可撤销的一次性动作,配置简单、默认带安全取消路径。目录页:SkillHub - dsh-auto-shutdown;源码与完整说明:GitHub - 873360545/dsh-auto-shutdown。

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

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

Xiaoye