OpenClaw 自愈系统
为 OpenClaw Gateway 提供五级自主恢复:从即时重启到 AI 诊断,把凌晨三点的告警留给机器先试一遍。
凭据以 chmod 600 的 .env 存储、提供 dry-run 预览、AI 可通过留空 ANTHROPIC_API_KEY 降级为 Level 2,文档对 Level 3 授予 AI 写配置/进程/日志权限有明示,外部效果披露较好;但 Level 3 本质上是给 AI 会话对活系统的写权限且无显式确认门,自动 doctor --fix 与预检会拒绝启动网关,回滚依赖手动备份,扣分主要在此。
变更日志诚实记录了多个严重历史缺陷(安装脚本 404 静默写坏脚本、关键脚本 base64 提交无法运行、plist 路径错配、validate-deployment.sh 路径不匹配),说明关键路径曾长期不可运行;虽然多数已在 Unreleased 修复,但静态审查无法验证修复效果,且仍有已知缺口(Level 2 告警不投递、Claude 路径硬编码),失败反馈文档较好,按锚点封顶 10 以下计 8。
目标场景(OpenClaw Gateway 长运行服务的崩溃恢复)、边界与非适用范围(不适用其他服务需改脚本、--dry-run 仅 macOS)在 README 中声明得非常清楚,触发条件逐层列出,中韩英多语言部分覆盖;但核心 Level 3 完全依赖 Claude Code CLI 和海外告警渠道(Discord/Slack/Telegram),对中国大陆网络可达性构成实质障碍,扣分。
信息架构分层清晰(SKILL.md + README + CHANGELOG + CONTRIBUTING),版本同步到 3.4.0、Keep-a-Changelog 格式、MIT 许可、'Known Gaps' 已知局限披露和安装器实际接线说明属于高质量治理范例;扣分在于部分文档承诺的 docs 文件(QUICKSTART 等在 CONTRIBUTING 中引用)与实际存在性无法在本次证据中全部核实,且历史上文档与实际行为长期不符。
宣称 64% 自治恢复率(14 起真实事故自查审计),核心价值主张明确且有对比表(对比裸 watchdog/supervisord);但该数据为作者自述、无独立验证,且静态审查无法确认修复后的脚本可直接产出可用结果,多个已知缺口(告警不投递、验证脚本误报)削弱开箱即用效果,静态锚点封顶 7 以下计 6。
有 CI lint 工作流徽章(bash -n 语法检查、ShellCheck)和详细的变更日志,可作为部分可审计材料;但 64% 恢复率仅为作者叙述,无提交的测试套件覆盖关键路径、无第三方执行证据,无法独立复现核心结论,静态锚点封顶 5 以下计 3。
- Level 3 会向 AI 会话授予 OpenClaw 配置、网关进程控制和日志写入权限,启用前请确认可接受;如不接受,留空 ANTHROPIC_API_KEY 可使链条止于 Level 2。
- 已知缺口:Level 2 watchdog 告警默认不投递(依赖仓库未提供的 alert.sh);validate-deployment.sh 检查错误路径会误报;Claude CLI 路径硬编码 /opt/homebrew/bin/claude,Intel Mac 和 Linux 需手动修改。
- 核心功能依赖 Claude Code CLI 及 Discord/Slack/Telegram 海外服务,中国大陆网络环境下可用性受限;无中文文档。
- 变更日志显示项目历史上存在安装器静默写入 404 内容为脚本、关键脚本 base64 编码不可运行等严重缺陷,多数修复尚未经独立执行验证。
- 64% 自治恢复率是作者自查数据,未经第三方验证。
这个 Skill 能做什么,适合哪些场景?
openclaw-self-healing 是一套围绕 OpenClaw Gateway 的五级自愈脚本体系(v3.4.0)。Level 0 在启动前校验配置,Level 1 由网关自身的服务单元负责秒级重启,Level 2 每 3–5 分钟做 PID、HTTP 和内存巡检并采用指数退避,Level 3 在 tmux 会话中调用 Claude Code CLI 读取真实日志后诊断修复,Level 4 通过 Discord、Slack 或 Telegram 告知人类。生产数据显示 14 起真实故障中有 9 起(64%)被完全自主解决。支持 macOS LaunchAgent、Linux systemd 和 Docker Compose 部署。
启动前校验二进制、node、.env 键和 JSON 配置并备份已知良好配置;以 3/5 分钟为周期执行 PID、HTTP 200 和内存检查,配置 schema 错误时自动运行 openclaw doctor --fix;连续失败 30 分钟后开启 tmux PTY 会话运行 Claude Code CLI,强制模型先读日志和配置再诊断,并输出恢复报告、推理日志和持久化的症状→原因→解法学习文件;自动化耗尽后向 Discord/Slack/Telegram 发送带日志路径的告警;导出 8 项 Prometheus 指标并支持每周事故摘要。
- 长期运行 OpenClaw Gateway 且被崩溃循环(重启无效的配置损坏类故障)折磨的个人运维者
- 希望在重启失效后先让 AI 读日志尝试修复、仍失败才收到带日志路径告警的 solo 开发者
- 需要 Grafana 面板和告警规则的团队,可用其 8 项 Prometheus 指标监控恢复率
- 使用 macOS LaunchAgent 或 Linux systemd(含 user lingering)管理服务的用户,一条 curl 命令即可安装
- 想用 Docker Compose 同时运行网关和看门狗的容器化部署者
这个 Skill 有哪些优点和局限?
- 五级恢复阶梯覆盖从秒级重启到 AI 诊断再到人工告警的完整链条
- Level 3 强制模型先读真实日志和配置,并以 tool_use=0 标记疑似幻觉报告
- 持久化学习文件记录症状→根因→修复→预防,可跨事故积累
- 生产验证:14 起真实事故中 9 起完全自主解决(64%)
- 部署验证脚本、--dry-run 安装预览、每周事故摘要等配套齐全
- 文档诚实列出已知缺口和误报问题
- Level 2 看门狗的告警依赖一个仓库并未提供的 alert.sh,开箱即用时告警只写日志不投递
- LLM 路由器已发布但未接入 Level 3,OPENCLaw_LLM_PROVIDER 设置无实际效果,Claude Code CLI 是硬依赖
- Claude CLI 路径硬编码为 /opt/homebrew/bin/claude,Intel Mac 和 Linux 需改脚本
- validate-deployment.sh 检查错误路径,会误报 Level 0 和 Level 2 脚本缺失
- emergency-recovery-v2.sh 不支持 Slack,gateway-preflight.sh 只支持 Discord 和 ntfy,通知渠道覆盖不均
- 仅针对 OpenClaw Gateway 测试,适配其他服务需直接编辑脚本
- 需要 systemd user lingering(Linux)、macOS 12+ 和 Homebrew 位于 /opt/homebrew 等特定环境
- 故障统计数据(64% 自主恢复)仅来自单实例 14 起事故的审计,样本有限
如何安装这个 Skill?
一键安装(macOS,Linux 会自动转交 install-linux.sh):curl -fsSL https://raw.githubusercontent.com/Ramsbaby/openclaw-self-healing/main/install.sh | bash。可先加 --dry-run 预览(仅 macOS 支持)。脚本会检查 tmux、claude、curl(Linux 另需 jq 和 systemd)等依赖,下载脚本、生成 ~/.openclaw/.env 并注册 LaunchAgent/systemd 定时单元。需手动编辑 ~/.openclaw/.env 填入 webhook 和网关 token。Docker 方式:克隆仓库、cp .env.example .env 后 docker compose up -d。注意:Level 3 的 Claude CLI 路径硬编码为 /opt/homebrew/bin/claude,Intel Mac 和 Linux 需手动修改。
如何使用这个 Skill?
安装后看门狗和健康检查作为定时单元自动运行。启用 Level 0 需将网关的 LaunchAgent/systemd 单元改为执行 gateway-preflight.sh(校验通过后它会 exec 真正的网关)。验证:launchctl list | grep openclaw.healthcheck(Linux 用 systemctl --user list-timers | grep openclaw);kill 掉网关进程后 tail -f ~/.openclaw/logs/watchdog.log 观察恢复;bash scripts/validate-deployment.sh 做五级全检(注意存在已知路径误报)。恢复报告和学习文件位于 ~/openclaw/memory/。
这个 Skill 与同类方案有什么区别?
README 中与基础 watchdog 和 supervisord 对比:后两者只有崩溃重启(supervisord 部分支持退避),而本系统额外提供 HTTP 健康轮询、指数退避、启动前配置校验、AI 根因诊断、openclaw doctor --fix 自动修复、多渠道告警和 Prometheus 指标。核心差距在于:当崩溃循环由重启无法解决的问题引起时,其他工具只会让人被呼机吵醒,而这套系统会先尝试读日志。