Mono
候补名单

编程智能体运行时,如何防止 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. 任务结束后恢复设置

  1. 按 Control-C 停止 caffeinate,或者等它的时间用完。
  2. 关闭你在 Mac 上打开的睡眠相关选项。
  3. 在 Windows 上,恢复你记下的睡眠时间(den-pc 上是 30 分钟)。

然后确认没有别的东西还在让电脑保持唤醒。在 Mac 上,在“终端”中运行 pmset -g assertions,查看“Listed by owning process”下面的内容。这里不应再出现 caffeinate,音频或系统相关的条目则属正常。在 Windows 上,以管理员身份打开终端,运行 powercfg /requests。它会列出让显示器保持开启或让电脑保持唤醒的应用和驱动程序。

最后,在提交任何内容之前,先审查智能体的改动。Mono 还没有正式推出,你可以加入候补名单。

作者

Reunified 打造能把分散的东西重新聚到一起的应用。

继续阅读

全部文章

即将推出

加入候补名单

留下你的邮箱,Mono 可以下载时我们会通知你。

你会在哪里使用 Mono?