编程智能体运行时,如何防止 Mac 或 PC 进入睡眠
用 caffeinate 或睡眠设置,防止 Mac 或 Windows 电脑在编程智能体执行长任务时进入睡眠,任务结束后再恢复原来的设置。
想在编程智能体运行时让 Mac 保持唤醒,可以打开“终端”,运行 caffeinate -i,并让窗口一直开着,直到任务结束。在 Windows 11 上,把“设置”里接通电源时的睡眠时间设为“从不”(Never),事后再改回来。笔记本电脑要接上电源适配器,并保持盖子打开。
本文介绍 macOS 和 Windows 11,不涉及合盖运行笔记本电脑。Reunified 的 Mono 可以在智能体工作时让 Mac 保持唤醒,但这些步骤适用于任何智能体。
1. 了解睡眠对智能体会话的影响
睡眠会暂停所有程序(包括智能体),并断开它们的网络连接。会话之后不一定能顺利恢复。
- 显示器睡眠只是关闭屏幕,程序会继续运行。
- 闲置睡眠会在一段时间没有输入后让电脑停止工作。智能体再忙也不算输入。
- 合上笔记本电脑的盖子通常会让它进入睡眠,无论闲置设置如何。
- 关机或重启会结束会话。
不要指望用手机唤醒已经睡眠或关机的电脑。
举个虚构的例子:午饭前,你让智能体在“tidy-recipes”项目里升级依赖并运行测试,然后离开。这项工作大约需要 40 分钟,用的是一台接着电源的 MacBook Air。
2. 用 caffeinate 让 Mac 在单个任务期间保持唤醒
caffeinate 是 macOS 自带的命令。加上 -i 后,它在运行期间会阻止闲置睡眠。它停止后,你平常的设置会重新生效。
| 命令 | 效果 |
|---|---|
caffeinate -i |
保持唤醒,直到你按 Control-C 停止它 |
caffeinate -i <command> |
运行该命令,在命令退出前保持唤醒 |
caffeinate -i -t 3600 |
保持唤醒 3600 秒(一小时) |
caffeinate -i -w <pid> |
保持唤醒,直到该进程退出 |
caffeinate -d |
让显示器保持开启 |
tidy-recipes 的智能体运行在桌面应用里,无法通过 caffeinate 启动。所以你改为运行 caffeinate -i -t 3600,为 40 分钟的工作留出一小时,并让这个“终端”窗口一直开着。-w 需要的 ID 可以在“活动监视器”的 PID 列中找到,man caffeinate 会列出所有选项。
3. 会话较长时,修改 Mac 的睡眠设置
如果智能体要运行好几个小时,或者每天都要运行,就改用系统设置。Apple 的睡眠和唤醒设置指南说明了设置的位置:
- 笔记本电脑:前往“系统设置”>“电池”>“选项”,打开“使用电源适配器供电且显示器关闭时,防止自动进入睡眠”。
- 台式电脑:前往“系统设置”>“能源”,打开“显示器关闭时,防止自动进入睡眠”。
Apple 提醒,阻止睡眠可能会增加能耗。“唤醒以供网络访问”只是让 Mac 为共享服务短暂唤醒,并不能让智能体持续运行。
在 Mac 版 Mono 中,“设置”>“代码”里有“智能体工作时阻止睡眠”,默认打开。它会在智能体完成本轮工作前阻止闲置睡眠。合上盖子后,Mac 仍会进入睡眠。“锁屏时继续工作”同样默认打开,可以让已打开的会话在锁屏时继续运行。Windows 版 Mono 没有睡眠设置。
4. 让 Windows 电脑保持唤醒
在 Windows 11 中,按 Microsoft 的电源设置指南所示,依次打开“开始”>“设置”>“系统”>“电源 & 电池”>“屏幕、睡眠 & 休眠超时”。在台式机上,这个页面可能叫“电源”(Power)。
找到“在以下时间后使设备进入睡眠状态”,记下“接通电源后”的值,然后把它设为“从不”,或者设成远长于任务所需的时间。
第二天,你在“den-pc”上运行一个类似的 40 分钟任务。这是一台 Windows 台式机,闲置 30 分钟后会进入睡眠。这比任务时间短,所以你记下“30 分钟”,然后选择“从不”。
之后如果想在终端里把计时改回去,可以用 powercfg,数值以分钟为单位:powercfg /change standby-timeout-ac 30。
5. 为无人值守的长任务做好准备
离开前填好这张表。
| 检查项 | MacBook Air | den-pc(Windows) |
|---|---|---|
| 电源和盖子 | 接上适配器,盖子打开 | 台式机,已接通电源 |
| 靠什么保持唤醒 | caffeinate -i -t 3600 |
睡眠设为“从不” |
| 需要恢复的值 | 无 | 30 分钟 |
| 更新已安装,没有等待中的重启 | 是 | 是 |
| 智能体在运行,提醒已测试,手机已充电 | 是 | 是 |
盯着智能体完成第一步,以免它卡在登录提示或缺少的工具上。设置好编程智能体通知,在它完成任务或需要审批时提醒你;再参考远程编程指南,用手机跟进进度。
6. 任务结束后恢复设置
- 按 Control-C 停止
caffeinate,或者等它的时间用完。 - 关闭你在 Mac 上打开的睡眠相关选项。
- 在 Windows 上,恢复你记下的睡眠时间(den-pc 上是 30 分钟)。
然后确认没有别的东西还在让电脑保持唤醒。在 Mac 上,在“终端”中运行 pmset -g assertions,查看“Listed by owning process”下面的内容。这里不应再出现 caffeinate,音频或系统相关的条目则属正常。在 Windows 上,以管理员身份打开终端,运行 powercfg /requests。它会列出让显示器保持开启或让电脑保持唤醒的应用和驱动程序。
