核心用法
Agent Defibrillator 是一款专为 macOS 设计的 launchd 守护进程 watchdog 工具,核心功能是监控 AI Agent 网关服务的健康状态并在崩溃时自动恢复。安装后,它会以 10 分钟为周期执行健康检查,通过检测进程状态、响应能力和版本一致性来判断服务是否异常。
当检测到崩溃或僵死进程时,Defibrillator 会执行分级恢复策略:先进行最多 3 次带延迟的重试,若仍失败则触发完整重启,并启用 5 分钟冷却期防止重启风暴。用户可通过环境变量精细调整所有阈值,还可配置 Discord Webhook 实现故障实时推送。
显著优点
1. 原生 macOS 集成:深度利用 launchd 生态,无需 Docker 或第三方依赖,资源占用极低
2. 防御性设计:冷却期和重试机制有效避免「病急乱投医」式的过度重启
3. 透明可审计:Shell 脚本实现,代码可 Review,日志路径清晰,符合 Unix 哲学
4. 版本漂移检测:能识别升级后的版本不匹配问题,减少隐性故障
潜在局限
- 平台锁定:仅支持 macOS,Linux 用户需自行适配 systemd
- 单点风险:watchdog 本身若被意外终止,监控能力即丧失(建议配合系统级监控)
- 网络盲区:健康检查逻辑未明确说明是否覆盖网络连通性检测,可能漏检「假死」状态
- 通知渠道单一:仅内置 Discord,企业环境常见的 PagerDuty/Slack/飞书需二次开发
适合人群
- 个人开发者或小团队运行 OpenClaw 等 AI Agent 网关
- 需要 7×24 小时稳定服务但无专职运维的 macOS 用户
- 偏好轻量级 Shell 方案、排斥 Kubernetes 复杂度的场景
常规风险
| 风险类型 | 说明 |
|---------|------|
| 权限风险 | install.sh 需要修改 ~/Library/LaunchAgents,需警惕供应链攻击 |
| 误重启风险 | 配置不当可能导致正常服务被频繁中断,建议充分测试 DEFIB_MAX_RETRIES 阈值 |
| 日志累积 | 长期运行需配置 logrotate 防止磁盘占满 |
| 通知疲劳 | Discord 高频告警可能导致重要信息被淹没 |