2026年10月5日 1 分钟阅读

AI 编码 Agent 总在半路睡着?Agents Sleep Preventer 让电脑只在工作时保持清醒

tinyash 0 条评论

让 Claude Code 或 Codex 重构项目,最烦的并不总是模型出错,而是电脑先睡着了。合上 MacBook 盖子去喝杯咖啡,Agent 可能随之暂停;Windows 的空闲睡眠也会让一段需要十几分钟的任务中断。Agents Sleep Preventer 是一个 MIT 许可的 Rust 工具,专门处理这个看似琐碎、实际上会直接丢失工作进度的问题。

它解决的是“执行窗口”问题

这个工具的核心行为很简单:检测受支持的编码 Agent 是否正在工作,工作期间阻止系统自动睡眠;任务完成后恢复正常睡眠。macOS 上,它还支持合盖继续运行;Windows 则通过系统托盘应用阻止空闲睡眠,并遵守系统已经配置的合盖和电源按钮行为。

这与一直运行 caffeinate 或修改电源计划不同。后者通常需要用户记得手动开启和关闭,容易造成电脑整晚不睡。Agents Sleep Preventer 的目标是把“保持清醒”绑定到 Agent 的工作状态,而且支持多个 Agent 实例:只要仍有实例在运行,电脑就保持唤醒。

安装:先用发行版,再考虑源码

macOS 需要 Apple Silicon 和 macOS 14 Sonoma 或更高版本。最省事的方式是下载 DMG,把应用拖到 Applications 后启动;项目也提供 Homebrew Cask:

brew install --cask charlontank/tap/agents-sleep-preventer

Windows 10/11 用户下载 ZIP,解压后在 PowerShell 中执行:

.\asp.exe install --yes

README 明确说明该安装流程不需要管理员权限,并会安装原生的 Claude Code/Codex hooks。安装完成后重启编码 Agent,让它重新加载 hooks。想从源码构建时,官方给出的最小流程是:

git clone https://github.com/CharlonTank/agents-sleep-preventer.git
cd agents-sleep-preventer
cargo build --release
./target/release/asp install

安装后可以用命令行检查和清理状态:

asp status
asp settings
asp cleanup
asp uninstall

其中 cleanup 很重要:如果 Agent 被 Ctrl+C 中断,或者某次会话没有正常结束,可以主动清理残留的防睡眠状态。项目也会在检测到空闲会话约 30 秒后自动识别这类情况,但在重要任务前手动确认一次更稳妥。

不只是防睡眠:本地语音输入

Agents Sleep Preventer 还包含本地语音转文字功能。macOS 默认按住 Fn+Shift 录音,松开后把转写内容插入当前输入位置;Windows 默认用 Ctrl+Alt+Space 切换录音。它提供 Whisper 和 Parakeet v3 两种引擎:前者偏准确性和自定义词汇,后者面向接近即时的英文转写。

首次使用语音功能时,需要授予麦克风和辅助功能权限,并下载本地模型。README 给出的模型信息是:Whisper Turbo 约 574 MB/1.6 GB,支持 99 种语言;Parakeet v3 约 670 MB,支持英语及 24 种欧洲语言。这里的体积是模型选择依据,不应理解为安装包本身的固定大小。

实际使用时的三个建议

第一,先验证 Agent 状态再合盖。安装应用后,启动一次 Claude Code 或 Codex,执行一个无风险的小任务,确认任务运行时睡眠被阻止、结束后又能正常休眠。

第二,给电池场景设边界。防睡眠会延长屏幕和系统运行时间,合盖运行尤其应该接入电源,并避免在电量不足时启动长任务。工具解决的是“任务被睡眠打断”,不是电源管理的全部问题。

第三,把 asp cleanup 纳入故障排查。如果任务被强行终止、终端崩溃或电脑恢复后状态异常,先清理,再重新启动 Agent;不要直接叠加多个防睡眠工具,否则很难判断到底是哪一个进程持有系统唤醒状态。

结语

Agents Sleep Preventer 的价值不在于功能复杂,而在于它补上了 AI 编码工作流里容易被忽略的一层:执行环境必须和 Agent 的生命周期同步。对经常运行长时间重构、测试或批量修改任务的人来说,让电脑“只在 Agent 工作时保持清醒”,比永久关闭自动睡眠更安全,也比每次手动运行系统命令更可靠。

它并不能替代权限隔离、任务确认和结果复核,但可以先消除一个非常具体的失败原因:模型还在工作,机器却先睡着了。

相关链接

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。