AI・自動化 2026年5月8日

2026-05-08 OpenClaw セッション状態チェックポイントゲートウェイ再起動復旧:ヘッドレス レンタル Apple Silicon クラウド Mac(HK/JP/KR/SG/US

MacXCode エンジニアリングチーム 2026年5月8日 読了時間 約23分

ヘルスプローブが安定した矢先、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 マトリクスを必ず走らせます。

メンテ窓の前のチェックポイント手順

  1. 凍結:npm/Mint のピンを固定し依存ツリーをエクスポート。
  2. スナップショットtar または利用可能なら APFS スナップショットで OPENCLAW_STATE_DIR
  3. 通知:リプレイ検証中の重複配信の可能性を webhook 提供側へ。
  4. 再起動launchctl kickstart でゲートウェイを—即席の kill -9 は避ける。
  5. 検証:合成インバウンドで重複排除キーが再生成されるか。

各ステップの経過分を公開し、追加のウォッチノードを借りるか事故 MTTR を伸ばすかを財務が比較できるようにします。

障害モード表

兆候 考えられる原因 緩和
再起動後に顧客へ重複メール 重複排除キャッシュ消失 リプレイ安全な webhook id +外部台帳
アップグレード後のツール拒否 ポリシーファイル未移行 プラグイン文書どおりに許可リストを版管理
再起動後の RSS 増 スキルバンドル二重ロード npm ls ツリーと tarball バックアップを比較

プラグインとファイル転送の隣接

2026-05-07 のファイル転送プラグイン は再起動後も存続すべきファイルシステム意味論を足します。許可が揮発性の環境変数だけだと、再起動で静かにアクセスが狭まります。状態ディレクトリ配下に Git または密封設定で追跡するポリシーファイルを置き、チャンク規律 と組み合わせて再開セッションが巨大 fetch を叩かないようにします。

セキュリティ:セッションチェックポイントに顧客断片が含まれる場合があります—規制データならオフサイトバックアップを暗号化してください。

構造化ログと相関 ID

ゲートウェイの各イベントに セッション idゲートウェイ世代カウンタ再起動 nonce を載せ、Grafana がバウンス前後を分離できるようにします。リプレイ負荷でインバウンドが尖るときは リバースプロキシガイダンス に沿って nginx エッジとログを結びつけます。

8 段階の復旧手順

  1. プロセス開始時刻とハートビートずれで再起動を検知。
  2. 状態ディレクトリ tarball のハッシュと実ディレクトリを比較。
  3. ステージングチャネルへ合成 CLI 会話。
  4. 冪等トークン付き webhook サンプルをリプレイ。
  5. プラグインポリシーが意図しないルートを依然拒否するか検証。
  6. 破損が疑われれば npm ピンを前進ロール。
  7. 再起動 nonce とともにインシデント時系列を記録。
  8. ウォッチノードが MTTR を縮めるかレトロを設定。

SLO 表

シグナル 閾値 アクション
セッション再開失敗 再接続の > 0.5% デプロイ凍結、plist の環境を監査
重複排除衝突 いずれかの 副作用の重複 リプレイ台帳の整合チェック
チェックポイント tarball の鮮度 > 36時間 古い 夜間スナップショットジョブを自動化

FAQ

質問 実務回答(2026-05-08)
ZFS/APFS スナップショットは? リース契約次第—プロバイダと調整;不可なら tarball をオブジェクトストレージへ。
チェックポイントをリージョン横断同期? いいえ。セッションは地域ローカル。設定は複製し、ライブ会話キャッシュは複製しない。

ステートフルゲートウェイに Mac mini M4 が合う理由

統合メモリと高速 NVMe は、インシデント中のチェックポイント比較と tarball diff を現実的にします—GB 規模の状態ツリーを圧力下で比較するには、ノイジーな近傍より予測可能なハードが勝ちます。予算は 地域別料金、オンボーディングは ヘルプ、GUI 同意が避けられない場合は VNC を併用してください。

セッションが運命共有になる前にウォッチノードを追加

HK/JP/KR/SG/US · SSH/任意の VNC