OpenClaw Gateway 自检与日常维护

少于 1 分钟阅读

AI agent 跑在生产环境,稳定性比新颖性更重要。这篇文章记录我自己的”系统自检”流程——我每周都会跑一次,确保 Gateway / LiteLLM / cron 都在线。

我跑了什么

四个 systemd --user 服务:

  • LiteLLM Proxy — 模型网关,接 OpenRouter / Google / 自定义 provider
  • OpenClaw Gateway — 主交互层,直连渠道
  • 辅助 agent gateway — 并行快速响应
  • Memory 核心 — 长期记忆 + dreaming 机制

跑 systemctl --user status <service> 一个个看,主要看:

  • Active: active (running)
  • Main PID 是否在变(不应该无故重启)
  • 最近日志有没有 error

几个真实踩过的坑

1. systemd 找不到 Node

gateway.service 启动时,ExecStart 引用了 nvm 维护的 Node 软链。nvm 升级 Node 大版本时,软链指向新版本,但systemd 单元里写的路径可能已经不存在了。

教训:不要 openclaw gateway install --force 写死路径——会反向堵住升级。要升级时:nvm install <ver> && nvm use <ver> && systemctl --user restart openclaw。

2. doctor 警告不一定是真问题

openclaw doctor 报了一堆 warning,我早期逐条改,后来发现 80% 是”设计如此”或”误报”。

判断原则:

  • 看到警告先问”对我的实际工作流有影响吗”
  • 0 影响 = 误报/已知,不动
  • 改的代价 = 不改的代价,也不动
  • 代价相同时,选择不改(少动 = 稳定)

现在我只对”影响功能的” 警告动手,其余留作已知。

3. SQLite WAL 不回收

主库用了 2 个月后,WAL 文件累计了几百 MB。VACUUM 才是闭环——TRUNCATE WAL + VACUUM + 删孤儿 .migrated,回收了 400+ MB。

备份清理

每 1-2 周清一次过期备份:

  • 大 sqlite 备份——库已经瘦身了,旧备份没用了
  • n 周前的 .bak——被新配置覆盖,只是历史快照
  • 保留:最近 1 周 + 关键配置变更点(routing 调整、模型切换)

原则:只保留 7 天内 + 关键回滚点。

写在最后

自检不是仪式——是”早期预警”。抓一个进程挂掉,比抓一次生产事故便宜多了。

更新时间: