2026-05-08 OpenClaw セッション状態チェックポイント と ゲートウェイ再起動復旧:ヘッドレス レンタル Apple Silicon クラウド Mac(HK/JP/KR/SG/US)
ヘルスプローブが安定した矢先、npm アップグレード中に launchctl がゲートウェイを再起動し、Slack に「ボットが全部忘れた」と飛び交います。実際はモデルが忘れたのではなく、OPENCLAW_STATE_DIR をスナップショットしていない、あるいはジャニターが CI 成果物横の scratch を消したことで 永続境界 が動きました。香港・東京・ソウル・シンガポール・米国のレンタル Mac mini M4 での対処は手順です:セッション残骸を署名鍵と同等の データ面状態 として扱う。本 2026-05-08 ガイドでは、チェックポイントディレクトリが launchd 環境 とどう絡むか、合成トラフィックで復旧をリハする方法、および 構造化ログ・KeepAlive トリアージ・ゲートウェイ昇格/ロールバック・新しい ファイル転送プラグインの方針 とシグナルを束ねて再起動を退屈にする方法を説明します。
ゲートウェイ再起動が当番を出し抜く理由
OpenClaw は 高速反復 と 長寿命オートメーション の両立を狙います npm の postinstall がグローバルを変えたり、CI と同一ユーザーへ SSH するエンジニアがいると、プロセスはきれいに再起動しても 別の 環境解釈を読み込みます。チェックポイント規律なしではチャットだけでなく webhook 重複排除キャッシュやツール許可リストも失います。期待する永続化を launchctl ラベルと同じ README に明文化してください。
rm -rf を走らせない—先にスナップショット、次に diff。
OPENCLAW_STATE_DIR の解剖
層で考えます:
- セッション手掛かり — 再接続後にオペが期待する会話の足場。
- ツールキャッシュ — 短いゲートウェイ停止を越えて残る限界付きメタデータ。
- Webhook 台帳 — 二重履行を防ぐ重複排除キー。
可能なら層ごとにマウントまたは ACL を分け、CI 清掃がアシスタント状態へ上昇走査できないようにします。同一 UID を共有する場合は 並列 CI レーン の分離指針を踏襲してください。
launchd:ThrottleInterval、終了コード、再生成
攻撃的な KeepAlive では、人が気づく前に launchd がゲートウェイを再起動します。再生成トリアージ と併読し、終了コードを記録し、ThrottleInterval でタイトなクラッシュループを抑え、StandardOutPath で stderr 分岐を捕捉します。plist を変えたら、勝利宣言の前に ヘルスプローブ の curl マトリクスを必ず走らせます。
メンテ窓の前のチェックポイント手順
- 凍結:npm/Mint のピンを固定し依存ツリーをエクスポート。
- スナップショット:
tarまたは利用可能なら APFS スナップショットでOPENCLAW_STATE_DIR。 - 通知:リプレイ検証中の重複配信の可能性を webhook 提供側へ。
- 再起動:
launchctl kickstartでゲートウェイを—即席のkill -9は避ける。 - 検証:合成インバウンドで重複排除キーが再生成されるか。
各ステップの経過分を公開し、追加のウォッチノードを借りるか事故 MTTR を伸ばすかを財務が比較できるようにします。
障害モード表
| 兆候 | 考えられる原因 | 緩和 |
|---|---|---|
| 再起動後に顧客へ重複メール | 重複排除キャッシュ消失 | リプレイ安全な webhook id +外部台帳 |
| アップグレード後のツール拒否 | ポリシーファイル未移行 | プラグイン文書どおりに許可リストを版管理 |
| 再起動後の RSS 増 | スキルバンドル二重ロード | npm ls ツリーと tarball バックアップを比較 |
プラグインとファイル転送の隣接
2026-05-07 のファイル転送プラグイン は再起動後も存続すべきファイルシステム意味論を足します。許可が揮発性の環境変数だけだと、再起動で静かにアクセスが狭まります。状態ディレクトリ配下に Git または密封設定で追跡するポリシーファイルを置き、チャンク規律 と組み合わせて再開セッションが巨大 fetch を叩かないようにします。
構造化ログと相関 ID
ゲートウェイの各イベントに セッション id、ゲートウェイ世代カウンタ、再起動 nonce を載せ、Grafana がバウンス前後を分離できるようにします。リプレイ負荷でインバウンドが尖るときは リバースプロキシガイダンス に沿って nginx エッジとログを結びつけます。
8 段階の復旧手順
- プロセス開始時刻とハートビートずれで再起動を検知。
- 状態ディレクトリ tarball のハッシュと実ディレクトリを比較。
- ステージングチャネルへ合成 CLI 会話。
- 冪等トークン付き webhook サンプルをリプレイ。
- プラグインポリシーが意図しないルートを依然拒否するか検証。
- 破損が疑われれば npm ピンを前進ロール。
- 再起動 nonce とともにインシデント時系列を記録。
- ウォッチノードが MTTR を縮めるかレトロを設定。
SLO 表
| シグナル | 閾値 | アクション |
|---|---|---|
| セッション再開失敗 | 再接続の > 0.5% | デプロイ凍結、plist の環境を監査 |
| 重複排除衝突 | いずれかの 副作用の重複 | リプレイ台帳の整合チェック |
| チェックポイント tarball の鮮度 | > 36時間 古い | 夜間スナップショットジョブを自動化 |
FAQ
| 質問 | 実務回答(2026-05-08) |
|---|---|
| ZFS/APFS スナップショットは? | リース契約次第—プロバイダと調整;不可なら tarball をオブジェクトストレージへ。 |
| チェックポイントをリージョン横断同期? | いいえ。セッションは地域ローカル。設定は複製し、ライブ会話キャッシュは複製しない。 |
ステートフルゲートウェイに Mac mini M4 が合う理由
統合メモリと高速 NVMe は、インシデント中のチェックポイント比較と tarball diff を現実的にします—GB 規模の状態ツリーを圧力下で比較するには、ノイジーな近傍より予測可能なハードが勝ちます。予算は 地域別料金、オンボーディングは ヘルプ、GUI 同意が避けられない場合は VNC を併用してください。