2026年 クラウドMacにおけるOpenClaw CLIフックとコンプライアンス対応の監査ログ
レンタルしたApple Silicon上でOpenClawを動かすプラットフォーム担当者は、監査で「エージェントが何をいつ、どの資格情報で行ったか」と聞かれたとき、stdoutだけでは足りません。OpenClawのCLIフック機構がその穴を埋めます。メッセージ入出力、ツール境界、サブエージェント起動などのライフサイクル周辺で小さなスクリプトを走らせ、コアランタイムをフォークせず構造化されたJSON Linesを吐けます。本稿では2026年の観点で、フックがワークスペース文章をどう補完するか、リスクでフックパターンを採点する方法、香港・日本・韓国・シンガポール・米国のMacLoginホスト向け9段階ロールアウト、本番で見る失敗モード、そしてOpenClaw展開とSecrets管理の指針との整合をまとめます。自動化記事の一覧はブログ索引からどうぞ。
ビルド連携ではOpenClawとXcode iOS CIでパイプライン固有の環境変数を確認し、フックがログを追記しているあいだもSSH/VNCを安定させるためにMacLoginヘルプを手元に置いてください。ネットワーク待ちのフックはイベント種別ごとにp95を分けて計測すると、「エージェントが固まった」チケットの切り分けが速くなります。
openclaw doctorを実行。サブエージェントの同時扇が多いなら16GB以上のユニファイドメモリを見込んでください。
規制対象エージェントでフックがコンソール単独ログに勝る理由
コンソールログは情報が失われやすいです。無関係なサービスが混ざり、ローテーションが読めず、スポーンしたワーカー間で安定した相関IDも残りにくい。フックはOpenClaw自身の状態遷移のそばで動くため、OpenClaw CLIフックリファレンスのテンプレート変数から取ったsessionId、agentName、runIdを1イベント1行で書けます。SIEM取り込みには非構造テキストのgrepより遥かに強いです。
フックはSOUL.mdやMEMORY.mdのポリシー文章の代替ではなく、それらが誘導しようとする挙動を観測します。両方使い、チームで安全な文脈境界はワークスペースファイルガイドを参照してください。ポリシーリポジトリのGitコミットと、本番で有効なフック集合の版を変更管理に紐づけると監査が楽になります。
本番で実際に有効化するOpenClaw CLIフックの表面
上流ではライフサイクル範囲が広がり続け、典型的にはメッセージ前後、サブエージェントの生成・完了、ツール呼び出し境界があります。openclaw hooks list、openclaw hooks enable、openclaw hooks disableで運用し、Nodeモジュールの再デプロイなしに可観測性を切り替えられます。フックコマンドはopenclaw.jsonにバージョン管理し、クラウドMacのワークスペースルート横に固定します。
- べき等性:リトライで二重起動されても壊れないこと。
- タイムアウト:CPU時間2秒以内を目安に。重い処理は非同期キューへ。
- 秘密:トークンを標準出力に出さない。環境変数は無害なフラグ以外マスク。
フックパターンの採点:先に出すものから選ぶ
クラスタ全体で有効化する前に候補を採点します。スコアが高いほど監査上の効果が早く、低いものは後回しで構いません。
| パターン | 監査価値(1〜5) | 運用リスク(1〜5、低いほど安全) | 出荷週 |
|---|---|---|---|
ツール呼び出し前の拒否リスト(rm -rf /系) |
5 | 2 | 1 |
| メッセージ後のJSONL追記(ユーザー・チャネルメタ付き) | 4 | 2 | 1 |
| サブエージェント起動カウンタ(Prometheusプッシュまたはファイル) | 3 | 3 | 2 |
| プロンプト/応答本文の完全ミラーリング | 2 | 5 | 法務レビューなしでは運用しない |
MacLoginクラウドMacでの9段階ロールアウト
- ゴールデンイメージ固定:macOSマイナー、必要ならXcodeとOpenClawパッケージハッシュを記録。
- ログ用ボリューム:キャッシュとローテーション付きフックログに50GB以上の作業ディスク。
- ワークスペース初期化:ポリシーリポをclone。フックは
./hooks/に置き、サービスユーザー所有で755。 - openclaw.json配線:launchdのWorkingDirectoryミスを避けるため絶対パスでフックを指す。
- ローカルドライラン:各スクリプトをstdinにフィクスチャJSONで実行し、終了コード0を要求。
- 選択的有効化:表の高スコアから順にオン。
- ローテーション:各ログ250MB上限または日次の早い方。
- SIEMフォワーダ:JSONLをrsyslogやオブジェクトストレージ同期で送る。ホット90日、契約があればコールドで長期。
- ゲームデイ:ゲートウェイをkillし、フックが再起動をデッドロックしないか確認(タイムアウト必須)。
常時稼働クラウドMacでよく見る障害モード
フックが待ち続ける:ネットワーク待ちならエージェントが固まったように見えるのでcurlに期限を。再起動後の権限:launchdは環境を失いがち。PATHとNODE_BINARYを明示。ディスク満杯:会話の多いチームではサブエージェント扇と詳細ログで週3〜8GBも行く。df -hでアラート。
外部バイナリを呼ぶフックはopenclaw.jsonで絶対パスに固定し、メンテナンス間のHomebrewドリフトを防ぎます。macOSマイナーアップのたびにopenclaw doctorを再実行し、stdoutを同じJSONLストリームへ流せば、監査側はプラットフォーム変更と挙動差分を相関できます。これを飛ばすと香港やシンガポールノードの遅延をOpenClawのせいにしがちですが、原因は古いダイナミックリンカキャッシュだった、というパターンが多いです。フックのstderrは一次シグナルとして扱い、非ゼロ終了の連発はページング対象に。
| 症状 | 最初に叩くコマンド | 健全ならこう見える |
|---|---|---|
| フックが発火しない | openclaw hooks list |
狙いのイベントでenabledがtrue |
| 静かに落ちる | log show --predicate 'process == \"node\"' --last 15m |
致命的なフックスタックトレースの連発がない |
| ログが欠ける | ls -lh ./logs/hooks |
ファイルが伸び、権限640 |
サブエージェント、秘密、ワークスペースファイルの落とし穴
コミュニティ報告では、サブエージェントが隔離されたエージェントワークスペースではなくメインから起動する境界例があるとされます。該当するなら、起動時に実効作業ディレクトリをフックで記録し、テナント間の秘密漏えいミスを検知してください。git clean方針の定期実行と、契約が厳しい顧客ごとのMacLoginインスタンス分離もセットで。
インバウンド自動化はWebhook TLSリバースプロキシの型を読み、HTTPイベントで動くフックが平文トークンをディスクに残さないようにします。
Mac mini M4ホストがフック計測を現実的にする理由
Apple Silicon Mac mini M4サーバーは、オーバーサブスクライドVMのような騒がしい隣人スケジューリングなしに予測しやすいベアメタルを与えます。ツール呼び出しから数ミリ秒でフックを走らせたいときに効きます。ユニファイドメモリは、調査タスクで4つのサブエージェントが同時に尖ったときもNodeヒープと小さなPythonログシッパーをスワップなしで保持しやすいです。
MacLoginは香港・日本・韓国・シンガポール・米国で提供しています。遅延のきついWebhookゲートウェイは東京やシンガポール、コンプライアンスアーカイブは顧問の好む法域へ。料金ページで段階を比較し、ヘルプに沿ってSSHを配線。フックはエージェントSREプログラムの一部として扱い、オプションの飾りにしないでください。