Get started
Claw Supervisor
Claw Supervisor
目標
Claw Supervisor は、常時稼働する 1 つの OpenClaw インスタンスが、通常の Codex ユーザー体験を変えずに Codex セッション群を監視して駆動できるようにする。ユーザーはホストに SSH し、Codex を起動し、TUI で作業しながら、同時にスーパーバイザーにそのセッションを読ませ、誘導させ、割り込みさせ、関連セッションを生成させ、ハンドオフを受け入れさせることができる。Codex セッションは MCP を通じて OpenClaw にコールバックすることもできる。
プロダクトモデル
Codex は主要な作業面であり続ける。OpenClaw は、不透明な OpenClaw サブエージェントの中に Codex を隠すのではなく、Codex を監督する。
OpenClaw Plugin の名前は codex-supervisor。crabfleet は再利用可能な Plugin 名ではなく、CRAB マシン用のデプロイメントおよびホストフリートプロファイルとして残る。
このモデルには 3 つのロールがある。
- 人間がアタッチした Codex: 共有 app-server を通じて起動される通常の対話型 Codex TUI。
- 自律 Codex: スーパーバイザーによって生成され、後から人間がアタッチできる Codex app-server スレッド。
- スーパーバイザー Claw: フリート状態、トランスクリプト読み取り、誘導、割り込み、生成、ハンドオフのためのツールを持つ、常時稼働の OpenClaw エージェント。
OpenClaw は内部で既存のサブエージェント機構を使ってもよいが、外部契約は Codex スレッド ID を持つ、アタッチ可能な Codex セッションである。
アーキテクチャ
user SSH session -> codex --remote unix://... or ws://... -> local codex app-server daemon <-> host sidecar / supervisor connector <-> OpenClaw fleet supervisor <-> supervisor MCP exposed back to Codex各 Codex 対応ホストは次を実行する。
- Codex app-server デーモン。
- 対話型 Codex を常に
--remote付きで起動するランチャー。 - app-server エンドポイントとライブスレッドをスーパーバイザーに登録するコネクター。
スーパーバイザーは次を実行する。
- エンドポイントレジストリ。
- セッションレジストリ。
- Codex app-server JSON-RPC クライアントプール。
- Codex から Claw への呼び出し用 MCP サーバー。
- Claw から Codex への制御用 OpenClaw ツール。
- 自律アクション、承認、ループ防止のためのポリシーエンジン。
Codex App-Server 契約
Codex app-server API を正規の制御プレーンとして使用する。
initialize,initializedthread/loaded/listthread/listthread/readthread/resumethread/startturn/startturn/steerturn/interruptmodel/list
対話型 Codex は codex --remote <endpoint> で起動し、TUI とスーパーバイザーが同じ app-server に接続する必要がある。スタンドアロンの codex exec は現時点ではライブ共有セッションではない。Codex が exec --remote をサポートするまでは、自律作業には app-server API を使用する。
セッションレジストリ
スーパーバイザーは、観測された Codex スレッドごとに 1 件のレコードを保存する。
{ "sessionId": "codex-thread-id", "endpointId": "host-a", "host": "host-a.example", "workspace": "/workspace/repo", "repo": "owner/repo", "branch": "feature/example", "source": "vscode", "status": "idle", "humanAttached": true, "lastSeenAt": "2026-05-28T10:00:00.000Z", "summary": "Short working-state summary"}ローカル実装では、ほとんどのフィールドを Codex スレッドメタデータから導出できる。フリートデプロイメントでは、ホスト ID、人間のアタッチ状態、git 状態、サイドカーのヘルスでレコードを補強する必要がある。
Codex 向け MCP 面
監督対象のすべての Codex は、openclaw-codex-supervisor という名前の MCP サーバーを取得する。
ツール:
codex_sessions_list: 可視の Codex セッションを一覧表示する。codex_session_read: 1 つのトランスクリプトを読む。codex_session_send: アイドル状態のスレッドにメッセージを送るか、アクティブなスレッドを誘導する。codex_session_interrupt: アクティブなターンに割り込む。codex_endpoint_probe: エンドポイント接続性を検証する。claw_report_progress: 現在のタスク状態をスーパーバイザーへ公開する。claw_ask: スーパーバイザーに支援または委任を求める。codex_spawn: 新しい自律 Codex セッションを作成する。codex_handoff: 人間またはピアによる引き継ぎを要求する。
リソース:
codex://sessionscodex://sessions/{sessionId}codex://sessions/{sessionId}/transcript
Claw 制御面
常時稼働の Claw は、内部ツールと同じプリミティブを取得する。
- セッションとエンドポイントを一覧表示する
- トランスクリプトを読む
- テキストを送信または誘導する
- アクティブな作業に割り込む
- 新しいセッションを生成する
- セッションを要約して割り当てる
- フィルターされたグループへ指示をブロードキャストする
- セッションをブロック中、完了、または放棄としてマークする
ツールの動作:
- 対象スレッドがアイドル状態の場合、
codex_session_sendはturn/startにマップされる。 - 対象スレッドがアクティブで、進行中のターン ID が可視の場合、
turn/steerにマップされる。 - アクティブなターンを識別できない場合、ツールは無関係なターンを作成せずにフェイルクローズする。
- Codex に公開される MCP 書き込み制御は、信頼されたスーパーバイザー専用ポリシーが有効にしない限り無効のままにする。
- 生のトランスクリプト読み取りは、信頼されたスーパーバイザー専用ポリシーが有効にしない限り無効のままにする。
- 自律承認のデフォルトでは、明示的なポリシーが別途許可しない限り、ツールおよびファイル承認を拒否する。
起動フロー
対話型ホストログイン:
- ユーザーが CRAB ホストに SSH する。
- SSH サービスが
codex app-server daemon startを開始または検証する。 - ログインラッパーが
codex --remote unix:// --cd <workspace>を起動する。 - ホストコネクターがエンドポイントと読み込み済みスレッドを登録する。
- スーパーバイザーが高優先度のフリートイベントを発行する: 新しい Codex セッション、ワークスペース、人間アタッチ状態、現在のタスクプレビュー。
- スーパーバイザー Claw は直ちに読み取りと誘導ができる。
自律生成:
- スーパーバイザーがホストとワークスペースを選択する。
- ホストコネクターが Codex app-server スレッドを開くか再開する。
- スーパーバイザーがタスク本文と MCP 設定で最初のターンを開始する。
- セッションレジストリがそれを自律かつアタッチ可能としてマークする。
- Codex がその正確な UX をサポートした後、人間は
codex --remote <endpoint> resume <threadId>で後からアタッチできる。または同じ app-server 上の現在の再開フローを使用できる。
デプロイメント
推奨制御プレーン:
- ホストコネクターはスーパーバイザーへのアウトバウンド WebSocket 接続を維持する。
- スーパーバイザー状態は OpenClaw Gateway ストレージに置く。
- Codex app-server は各ホストのローカルに残す。認証されていない生の app-server を公開インターネットにさらしてはならない。
Cloudflare の実現性:
- レジストリ、Durable Objects、WebSocket ファンイン、軽量イベントルーティング、公開 MCP/Gateway エンドポイントには適している。
- Workers は任意のプライベート Unix ソケットや local loopback app-server にダイヤルできないため、プライベートホストを直接制御するにはそれだけでは不十分。
- すべてのホストコネクターがアウトバウンド WebSocket でコールホームする場合に Cloudflare を使う。
VPS フォールバック:
- 長寿命プロセス制御、SSH トンネル、プライベートネットワークルーティング、またはローカルファイルシステムアクセスが必要な場合は Hetzner サービスを使う。
- 同じプロトコルを維持する: ホストコネクターはアウトバウンド、スーパーバイザーレジストリは中央、Codex app-server はローカル。
セキュリティ
- デフォルトのバインド先はローカル Unix ソケット。
- リモート app-server はトークンまたは署名付き bearer 認証を使用する。
- ホストコネクターはスコープ付きホストトークンでスーパーバイザーに認証する。
- スーパーバイザーツールはセッションごとのポリシーを強制する: 読み取り、誘導、割り込み、生成、承認。
- クロスエージェントメッセージには
originSessionIdを含める。自己エコーは破棄される。 - ブロードキャストには明示的なフィルターと上限付きの対象数が必要。
- トランスクリプト読み取りは OpenClaw 境界でシークレットを編集する。
- 承認リクエストは、ポリシーが許可しない限り、スーパーバイザー由来のターンではデフォルトで拒否される。
実装計画
フェーズ 1: ローカルスーパーバイザー MVP
- stdio プロキシおよび WebSocket エンドポイント用の Codex app-server JSON-RPC クライアントを追加する。
- スーパーバイザーのエンドポイントおよびセッションレジストリを追加する。
- MCP ツールを追加する: list、read、send、interrupt、probe。
- エンドポイント用のローカル env 設定を追加する。
- 偽の app-server テストと、1 つのライブローカル app-server スモークを追加する。
フェーズ 2: OpenClaw 統合
codex-supervisorPlugin にスーパーバイザーツールを登録する。- Codex スレッド設定にスーパーバイザー MCP を注入する。
- エージェントコンテキストにセッション要約を追加する。
- 新しい Codex スレッドが出現したときのイベント通知を追加する。
- 自律的な送信、割り込み、生成のためのポリシー設定を追加する。
フェーズ 3: フリートコネクター
- ホストサイドカーが app-server エンドポイント、ホストメタデータ、git/ワークスペースメタデータ、人間のアタッチ状態を登録する。
- Cloudflare または VPS 制御プレーン用のアウトバウンド WebSocket コネクターを追加する。
- 再接続、heartbeat、古いセッションのクリーンアップを追加する。
- CRAB SSH ランチャーラッパーを追加する。
フェーズ 4: 自律運用
- 生成、再開、引き継ぎフローを追加する。
- ブロードキャストと委任を追加する。
- 進捗レポートとタスク状態要約を追加する。
- ループ防止とレート制限を追加する。
- ダッシュボードビューを追加する。
フェーズ 5: マルチ Claw
- グループごとにセッションをシャーディングする。
- 各セッションにリーダーシップ/リースを追加する。
- 監査ログとリプレイを追加する。
- Claw グループ間のエスカレーションを追加する。
受け入れテスト
- 人間が共有 app-server を通じて Codex TUI を起動する。
- スーパーバイザーが
thread/loaded/list経由でライブスレッドを一覧表示する。 - スーパーバイザーが
thread/read経由でトランスクリプトを読む。 - スーパーバイザーが
turn/start経由でアイドル状態のスレッドにテキストを送信する。 - スーパーバイザーが
turn/steer経由でアクティブなスレッドを誘導する。 - スーパーバイザーの割り込みが
turn/interrupt経由でアクティブなターンを停止する。 - Codex がスーパーバイザー MCP を呼び出し、ピアセッションを一覧表示する。
- 自律 Codex が生成され、後から人間がアタッチする。
- ホストコネクターの喪失により、履歴を削除せずにセッションが stale としてマークされる。
未解決の質問
- TUI なしで生成された app-server スレッドに対する、正確な Codex TUI アタッチ UX。
- Codex がヘッドレスなライブ共有実行向けに
exec --remoteを追加すべきかどうか。 - 永続状態の所有者: OpenClaw Gateway DB、Cloudflare Durable Object、または VPS データベース。
- スーパーバイザー由来ターンの承認ポリシー粒度。
- 常時稼働 Claw コンテキストへ注入するトランスクリプト要約の量と、ツール/リソースとして保持する量。