必须配置Heartbeat机制与Webhook联动,否则重启后监控中断、告警无法抵达;需确认Gateway监听8080端口、启用防火墙放行、编写macOS适配的CPU心跳检测、配置匹配token的Webhook端点、部署编译后的TypeScript告警脚本,并通过curl测试全链路。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在macOS上让OpenClaw持续感知服务器存活状态并自动响应异常,必须配置Heartbeat机制与Webhook联动——这一步不设为开机自启,重启后监控立即中断;不绑定Gateway端口,外部告警事件根本无法抵达智能体。
确认OpenClaw Gateway已运行并监听本地端口
打开终端,执行 ps aux | grep gateway,确认输出中包含 gateway --port 8080 或类似进程。若无,需先启动:进入OpenClaw安装目录 → 运行 ./gateway --port 8080 --config ./config.yaml。
用浏览器访问 http://localhost:8080/health,返回 {"status":"ok"} 表示网关就绪。若提示连接被拒绝,【务必检查是否在macOS“系统设置→隐私与安全性→防火墙”中允许gateway通过】。
编写Heartbeat心跳检测逻辑
在OpenClaw项目根目录下,新建文件 HEARTBEAT.md,内容如下:
## CPU负载检查- name: "macos-cpu-check" interval: 60s command: "top -l 1 -n 5 | grep 'CPU usage' | awk '{print $3}' | sed 's/%//'" threshold: 90 on_alert: "/webhook/cpu-overload"
这段配置表示:每60秒执行一次CPU使用率采集,提取数值后与90比对,超阈值即触发路径为 /webhook/cpu-overload 的Webhook。
注意:macOS的 top 命令输出格式与Linux不同,【不可直接复制Linux脚本,否则threshold永远不生效】。
配置Webhook端点接收告警
方法一:修改 gateway/config.yaml
在 webhooks: 节点下添加:
- path: "/webhook/cpu-overload" method: POST token: "sk-ocl-macos-hb-7x9f" handler: "./hooks/cpu_alert.ts"
方法二:使用环境变量免改配置文件
OpenClaw专家 — 用于任何OpenClaw问题或需求,包括配置错误、网关崩溃、网关未启动、斜杠指令、频道路由等。
启动Gateway时追加参数:--webhook-path /webhook/cpu-overload --webhook-token sk-ocl-macos-hb-7x9f --webhook-handler ./hooks/cpu_alert.ts。
两种方式任选其一,但必须保证token与后续curl请求中携带的一致,否则403拒绝。
部署告警响应脚本
第一步:在项目目录创建 hooks/ 文件夹
第二步:新建 hooks/cpu_alert.ts,写入以下内容:
import { exec } from 'child_process';export default async function handler(req, res) { const load = req.body.load || 'unknown'; exec('osascript -e \'display notification "CPU过载: ' + load + '%!" with title "OpenClaw Alert"\'', () => {}); res.status(200).send('OK');}
第三步:确保TypeScript运行时可用——执行 npm install typescript @types/node,再用 npx tsc hooks/cpu_alert.ts 编译为JS。
这一步不能跳过编译,Gateway只加载 .js 文件,直接放 .ts 会导致Webhook静默失败,无任何日志提示。
手动触发测试验证链路
① 在终端执行:curl -X POST http://localhost:8080/webhook/cpu-overload \-H "Authorization: Bearer sk-ocl-macos-hb-7x9f" \-H "Content-Type: application/json" \-d '{"load":"95"}'
② 等待2秒,macOS右上角应弹出通知:“CPU过载: 95%!”
③ 查看Gateway控制台输出,确认出现 [WEBHOOK] /webhook/cpu-overload → 200 OK 日志行。
若第②步无通知,检查 hooks/cpu_alert.js 是否存在、权限是否为可执行(chmod +x hooks/cpu_alert.js)。

















