AI・自動化 2026年5月9日

2026-05-09 初期導入(openclaw onboard --install-daemon)Node 24+、PATH 衛生と launchd ログ、openclaw doctor トリアージをヘッドレスのレンタルクラウド Mac で(HK / JP / KR / SG / US

MacXCode エンジニアリングチーム 2026年5月9日 約21分で読了

リースビルダーでの OpenClaw 退行の多くは伝説ほど難しくありません。対話式 SSH では /opt/homebrew/bin/node が見えるのに launchd は削られた PATH を引き継ぐ、あるいは上流プロジェクトが Node 24+ を要求するのに Node 22 で初期設定した、などです。openclaw onboard --install-daemon を Xcode のピンと同じ規律で扱い—ランタイムをインフラリポでセマバーし、plist の EnvironmentVariablesシークレット運用 と整合させ、導入直後に 可用性チェック用の curl を検証します。補助リンク: 導入ガイドセッションのチェックポイントと再起動、およびログローテ用に Mac mini M4 リースで NVMe に余白を。

運用スナップショット:Mac CI ホストでオンボーディングがまだ破綻する理由

チームは Xcode と AI 自動化が同一フリートを共有するためレンタルの Apple Silicon ゲートウェイに集中します。デーモンインストールは複数パッケージマネージャ共存で衝突します(Homebrew npm グローバル、Volta shim、pnpm ストアなど)。オンボーディング CLI は Node とパッケージマネージャを決定的に解決できることを前提に launchd ペイロードを書きますが、対話とバッチで解決結果がズレると環境ファイルは正しく見えても API キー空のまま起動します。

ガードレール:デーモン PATH は不変設定として扱い—OS イメージ更新ごとのゴールデン launchctl print からそのまま複製します。

Node 24+ に軸を置いたランタイム前提

アップストリームはオンボーディング前に Node.js 24 以上 を要求します。このピンを外すとネイティブモジュール導入が不安定になり doctor が TLS 検証で落ちます。標準チャネル(nix、asdf ピン、tarball、制御された brew bundle)で Node を用意し、plist が再利用する単一の絶対パスに記録します。

  • アーキ整合 — arm64 バイナリのみ。ゲートウェイでは Rosetta node を拒否。
  • 並行性 — 同一 UID を共有する並列 SSH でグローバル npm アップグレードを同時に走らせない。
  • 完全性 — エアギャップ向け tarball はチェックサム確認。

インストールパス:npm、pnpm、bun

ホスト種別ごとに主要インストーラを一つ。下流が npm グローバルを期待する場合でも symlink は文書化が前提。pnpm は plist で PNPM_HOME を明示。bun は BUN_INSTALL プレフィクスが対になります。固定されたパッケージマネージャ呼び出しで OpenClaw を正規化し、地域クローンでも再現性を保ちます(香港・東京・ソウル・シンガポール・米国)。

# デーモン化前の対話確認 hash -r command -v node node -v openclaw --version

初期導入(--install-daemon)後の launchd 配線

完了時ユーザー LaunchAgents ドメインへ plist が登録されます。macOS Sonoma/Sequoia に合う launchctl bootstrap をすぐ実行—旧来の load の意味づけはイメージ移行で齟齬を招きます。LimitLoadToSessionTypeThrottleIntervalSoftResourceLimits を AI エージェントがディスクとネットへ並列アクセスする負荷に合わせます。

ヒント:無関係テナント間でゲートウェイ UID を共有しない。マルチテナント Mac でホームが衝突すると plist EnvironmentVariables が他フリートへ漏れます。

plist 標準出力/標準エラーと OpenClaw ログルート

StandardOutPath/StandardErrorPath は Java 仮想マシンのガベージコレクション・ログと同等のアラート基準が妥当です。空のままだとクラッシュが無音で見逃されます。~/.openclaw/logs をハウスキーピングでローテするのが無難。大量の転写記録は機微トークンを伏せた後にだけ集中ログへ。タイムスタンプは複数リージョンの原因分析のため launchd と突き合わせます。

# フェイルオーバー練習中に両ストームを追尾 /usr/bin/log stream --predicate 'process == "node"' --level debug

openclaw doctor:順序付きトリアージ

オンボーディング直後、plist 編集のたび、週次カオス訓練でも実行します。典型的チェックは Node ABI、モデル到達性、状態ディレクトリ書込可否、プラグインフックです。警告はバックログ扱い—ゲートウェイリスナーへ本番を載せる前にクリティカルはゼロ。

  • Node は緑・ネットは赤 — 外向き TLS 傍受機器を点検。
  • ディスク赤 — クリーンアップ再実行か SKU 拡張、その後設定書換え。
  • プラグイン失敗 — 任意パッケージの semver ドリフトと突き合わせ。

doctor とログのトリアージマトリックス

症状 doctor シグナル 最初の修正
デーモンが即終了 インタプリタ欠落 絶対 NODE_BINARY を注入して plist 再読込
認証スコープ枯れ API ローテ警告 launchd 承認済み env リロードで鍵ローテ
夜間サイレントクラッシュ doctor はクリーン stderr を開き launchd throttle 時刻と比較
デプロイ後の高 CPU プラグインウォームアップフラグ プラグインピンと冷却スケジュール

再現性あるオンボーディングの 7 段ランブック

  1. アップグレード前に ~/.openclaw と launchd plist をスナップショット。
  2. Node 24+ を入れパッケージマネージャプレフィクスを整合。
  3. 自動化ユーザーで openclaw onboard --install-daemon を実行。
  4. LaunchAgent を再読込し PID が 5 分安定するか確認。
  5. ブロッカーが消えるまで doctor を繰り返す。
  6. プローブガイドの合成 curl とチームチャットの通知経路を叩く。
  7. フェイルオーバー担当へ絶対パスを ops wiki に記録。

SLO 表:レンタル Mac 上のデーモン鮮度

シグナル しきい値 対応
デプロイ後の doctor 退行 クリティカルが > 0 トラフィック停止;初期導入の再実行と plist の差分確認
stderr トランスクリプト欠落 説明不能再起動が いずれか StandardErrorPath ACL を是正
PATH ドリフト監査 四半期でホストの > 1% が不一致 ゴールデン機械イメージ再構築/プロファイル復元

FAQ

質問 実務的回答(2026-05-09)
外部ボリュームの pnpm ストア? plist が PNPM_STORE_DIR を出し APFS クォータ監視なら可—ホットゲートウェイは NFS 回避。
sudo でオンボーディングしてよい? 専用自動化ユーザーを推奨—sudo は LaunchAgents の所有権トラップを悪化させます。

OpenClaw デーモンに Mac mini M4 ベアメタルが合う理由

NVMe の尾部レイテンシと決定的な Apple Silicon クロックが WebSocket ファンインを安定化—隣ノイズだらけの巨大 VM より優位です。ハード選定は 地域別価格 と組み合わせ、PATH 難題はレンタルビルダー向け リモートアクセス手順 でエスカレーションしてください。

退行が広がる前にゲートウェイを用意

HK / JP / KR / SG / US · SSH/オプション VNC