本質はツールの個数ではなく、復旧可能な状態・予測可能な中断・計測できる副作用です。thread_id・checkpoint・interrupt・クォータを揃えれば、ノートブックでもリモート Mac でも長時間安定して回せます。

推論・RAG・ゲートウェイ・サンドボックスは 推論RAGOpenClawIDE ブリッジ と併読。ホーム購入は閲覧のみログイン不要。意思決定表・受入・HowTo は下記。

次元 設計の要点 リモート Mac 長時間実行のヒント
thread_id セッションあたりキーは一つ。ユーザー/セッション対応と監査、同一キーへの同時書き込み禁止 ゲートウェイで発行・返却し、クライアント任意文字列の衝突を防ぐ
checkpoint デプロイ単位と名前空間を一致、グラフ版とアップグレード時のマイグレーション 書き込み増幅:DB・SQLite ファイル・WAL、vacuum 窓の監視
SQLite / Postgres 低同時・素早い立ち上げ:SQLite+WAL、ローカル SSD 複数ワーカー・監査:Postgres+プール。SQLite はネットワークボリュームに置かない
interrupt 承認ノードで待機、待機状態と UI 文言を保存 無応答時は既定分岐・安全終了でワーカー占有を防ぐ
tool timeout ツールのハードタイムアウト+サブグラフ予算+LLM の初トークン・総時間 RTT・p95 を織り込み、OpenClaw のヒューズ・ログ項目と揃える
ディレクトリクォータ workspace・checkpoint・アーティファクト・一時ダウンロードを分離、ソフト上限とハード上限 inode・小ファイル嵐、掃除周期(IDE ブリッジ 参照)

checkpoint:SQLite か Postgres か

SQLite:単一プロセス・低同時、WAL+ローカル SSD、iCloud 外。長時間はファイル増とロックに注意。Postgres:複数ワーカー・監査向け、プール・マイグレーション・autovacuum。リモート実行+中央 DB なら 時刻ずれと再接続 を統合テストへ。

サンドボックスクォータ受入チェックリスト

  • thread_id とファイル接頭辞を連動させ、セッション削除時に scratch を連鎖削除できる。
  • checkpoint とアップロード用ディレクトリを分離する。
  • ツールごとのファイル・ディレクトリ上限と inode アラートを設定する。
  • interrupt 待機中もリソースを占有するため、キュー TTL やワーカー移譲を決める。
  • tool timeout 後は SIGTERM→SIGKILL でゾンビを残さない。
  • 強制終了後に最新 checkpoint から復旧し、不変条件を比較する。

HowTo の要約

thread_id 固定 → DB とマイグレーション → interrupt/resume 契約 → 階層タイムアウト → クォータと掃除を CI → リモート Mac で数時間負荷とディスク曲線を確認。

リモート Mac 長時間実行の運用メモ

launchd/コンテナでは ログ・checkpoint・scratch を同一ローカルディスクに置きディスクアラートを先に。同一 thread_id の同時書き込みを避け、再接続は最新 checkpoint から。

# 命名例(チーム接頭辞に合わせて調整) CHECKPOINT_DIR="$HOME/agent-state/checkpoints" SANDBOX_WORKSPACE="$HOME/agent-state/scratch/$THREAD_ID"

関連: OpenClaw ツール呼び出し · ホーム · 購入