MacOS息屏后OpenClaw无法相应飞书Channel消息

问题表现

OpenClaw 运行在 MacBook Air 上,通过 WebSocket 长连接(飞书 SDK 的 WSClient)接收飞书消息。息屏一段时间后,从飞书发消息,机器人不响应。查看飞书开放平台的事件投递日志,失败原因为 app not online。
90e47bccdfbfa78fd7a9a4ba8bf0b49a
唤醒屏幕(移动鼠标/按键)后,等片刻,机器人恢复正常响应。
之前已经设置过sudo pmset -c sleep 0

解决方案

禁用 AC 电源下的 Standby:
sudo pmset -c standby 0

根本原因

macOS 的电源管理有两个独立机制:

机制 参数 作用
Idle Sleep sleep 长时间闲置后进入轻度睡眠
Standby / Hibernate standby + standbydelay 内存写入磁盘,深度休眠

sleep 0 只禁用了 Idle Sleep,而 Standby 是完全独立的机制。
Standby 会:

  1. 将内存内容写入磁盘(/var/vm/sleepimage)
  2. 完全冻结 CPU 和所有进程(包括 Node.js)
  3. 关闭网络栈
    Node.js 进程被冻结后,飞书 SDK 的 WebSocket 心跳(ping)无法继续发送。飞书服务器检测到连接超时,标记 app 为 not online,后续事件投递失败。
posted @ 2026-03-01 21:47  rxh1999  阅读(372)  评论(0)    收藏  举报