2026 年、macOS 上の OpenClaw ではモデルルーティングや 429 制御を済ませていても、誤分類されたツール 1 つでリポジトリ削除、顧客 Slack への投稿、本番シークレットでの shell 実行が起き得ます。ツール実行承認とヒューマン・イン・ザ・ループ(HITL)ゲートは、不可逆な副作用の前に破壊的呼び出しを一時停止し、人の明示的許可とタイムアウト拒否、監査ログを伴います。~/.openclaw/openclaw.json でツールを分類し承認ポリシーを書き、LaunchAgent 昇格前にステージングポートで「保留—承認—拒否」を演習する手順を示します。doctor 診断、JSON と環境プロファイル、staging/本番プロファイル、上流サーキットブレーカー、および モデルフェイルオーバー(プロバイダ劣化用。承認の代替ではありません)と併用してください。
脅威モデル、ポリシーマトリクス雛形、数値ガードレール(承認待ち最大 120 秒、タイムアウト時 deny、独立ステージングチャンネル)、MacHTML 公開料金で 1 日約 $16.9 の Apple Silicon Mac mini 上の展開チェックリストが手元に残ります。
実行承認が必要な理由
大規模言語モデルは説得に長けますが、説明責任は負いません。ゲートウェイが write、shell、browser を公開すると、幻覚したパス 1 つでワークスペース削除、~/.openclaw/.env からの API キー流出、顧客向け Slack 投稿が起き得ます。承認ゲートは不可逆な副作用の前に人の判断を挿入し、タイムアウト時は明示的 deny でボットが無音ハングしないようにします。
承認は反自動化ではなく段階的リスク管理です。読み取り専用は自動可、破壊的層は Slack・Telegram・macOS UI で人がタップ。層をポリシーマトリクスに書き、深夜 3 時のオンコールがソースを開かず読めるようにします。
エージェントツールの脅威モデル
LaunchAgent ユーザーが macOS で実際にできることから始めます:所有パスの読み取り、git への書き込み、環境変数付き shell、Cookie 付きブラウザ。攻撃面には HTML 貼り付けによるプロンプト注入、侵害された Webhook、本番 .env のステージング貼り付けがあります。
各ツールに爆発半径を付与:read(情報漏えい)、write(整合性破壊)、shell(ホスト侵害)、browser(セッション乗っ取り)。ホーム一覧できる read はパス許可リストがなければ write 級承認へ。
チャンネルとツールのポリシーマトリクス
| ツール種別 | デフォルト | メモ |
|---|---|---|
| read / grep | 自動承認 | 許可リストなしなら人審へ |
| write / patch | 人の承認 | Slack スレッドで diff プレビュー |
| shell | 常に承認 | 本番で自動承認しない |
| browser | 承認 + ドメイン許可 | file:// と内部 IP を拒否 |
| DM / 非公開 | #general より厳格 | 高感度を前提 |
マトリクスをランブック横に掲示。速度優先で write 自動化を求められたら、担当者と失効日を必須に。
openclaw.json 承認骨格
承認ポリシーはモデルルーティングと同様 ~/.openclaw/openclaw.json、キーは ~/.openclaw/.env(chmod 600)。ツールクラス、チャンネル上書き、タイムアウトを分離します。
{
"tools": {
"approval": {
"default": "auto",
"classes": {
"read": "auto",
"write": "human",
"shell": "human",
"browser": "human"
},
"pendingTimeoutMs": 120000,
"onTimeout": "deny"
},
"channels": {
"slack:#ops-alerts": { "write": "auto" },
"slack:#customer-support": { "shell": "deny" }
}
}
}
フィールド名はバージョンで変化—貼り付け前にリリースノートを diff。openclaw doctor 後、ステージングでクラスごとに 1 回保留を発生させます。
本番リスクのないステージング演習
承認演習はステージングゲートウェイポートと本番シークレット非ロードのプロファイルに紐付け。shell/write を要求する固定プロンプトで承認カードが出て、承認前に実行されないことを確認。拒否とタイムアウトも試し、「120 秒で拒否」が見えること。
staging/本番 LaunchAgent と併用。本番 plist を扱うノートブックで顧客 DB に破壊的承認をしない。
doctor チェックと監査ログ
承認ポリシー変更のたび openclaw doctor --json をチケットへ。承認ミドルウェア健全、Webhook 到達、クラッシュ由来の pending 残りがないことを確認。承認/拒否に correlation id を付与。
doctor がツール登録不一致を出したら LaunchAgent 昇格前に JSON 修正—存在しないツールへの承認クリックは盲批を助長します。
本番展開チェックリスト
openclaw.jsonフィンガープリント(秘密なし)を git 無視へ。- 全登録ツールを分類しマトリクス wiki を更新。
- ステージングで write/shell/browser の保留をスクリーンショット付きで実施。
- 本番で人承認を有効化、120 秒でdeny。
- pending 深度を監視、同時 > 5 でアラート。
- ロールバック:JSON 復元 +
launchctl kickstart -k gui/$(id -u)/ai.openclaw.gateway。
FAQ
読み取り専用は承認スキップ?
パス許可リスト付きなら可。広い一覧は承認級へ。
承認で Slack は遅くなる?
ターン単位でまとめ、120 秒で明確な deny メッセージ。
本番なしでテスト?
ステージング設定と合成ツール呼び出しのみ。
MacHTML の Apple Silicon Mac mini なら、経営層と同じ WebKit・Keychain・Node で承認演習—Linux 近似ではありません。SSH でログ、GUI 承認は VNC。アイドル 6–12 W、1 週間の HITL 演習は shell 誤削除 1 件より安いことが多いです。
公開料金は 1 日約 $16.9。演習後はインスタンス停止即可、ポリシーマトリクスは文書に残り 36 か月 の CapEx は積み上がりません。
実機 macOS で OpenClaw ツール承認を演習
本番 LaunchAgent 昇格前に、クラウド Mac mini で HITL ゲート・タイムアウト拒否・doctor プローブを検証してください。