核心用法
self-updater 是一款专为 OpenClaw 网关设计的 PowerShell 自动化更新工具,主打「智能调度」理念。核心流程包括:版本比对(semver)、计划任务避让(解析 ~/.openclaw/cron/jobs.json)、系统空闲检测(Windows API)、自动更新与网关重启、健康状态回检。
显著优点
- 零冲突更新:通过解析本地 cron 配置,主动避让用户任务窗口,降低服务中断风险
- 智能空闲感知:集成 Windows 空闲检测 API,仅在系统闲置时执行更新
- 自愈式流程:更新后自动重启网关并执行 HTTP 健康检查,确保服务可用
- 灵活执行模式:支持手动检查(dry-run)、强制更新、静默运行(cron 友好)
潜在缺点与局限性
- 平台锁定:依赖 Windows API 检测系统空闲,跨平台移植成本高
- 配置依赖:必须正确维护 ~/.openclaw/openclaw.json 与 cron/jobs.json,否则智能调度失效
- PowerShell 版本要求:需 5.1+,旧系统兼容性存疑
- 无回滚机制:更新失败时未提及自动回退策略,存在服务中断风险
- npm 依赖:需要外部网络与 npm 仓库访问,隔离环境受限
适合人群
- 需要每周无人值守维护的 OpenClaw 网关管理员
- 对服务可用性敏感、希望在业务低峰期执行更新的运维团队
- 已标准化 Windows + PowerShell 技术栈的企业环境
常规风险
- 智能调度逻辑复杂,配置错误或文件缺失会导致更新窗口不可预测
- 自动重启网关期间存在短暂服务不可用窗口
- 若健康检查配置不当,可能误判更新成功
- 静默模式下故障信息可能被忽略,需配合外部监控