Get started

Супервізор Claw

Claw Supervisor

Мета

Claw Supervisor дає змогу одному постійно активному екземпляру OpenClaw відстежувати й керувати парком сеансів Codex, не змінюючи звичний користувацький досвід Codex. Користувач може під’єднатися до хоста через SSH, запустити Codex, працювати в TUI, і водночас супервізор зможе читати сеанс, спрямовувати його, переривати, породжувати пов’язані сеанси й приймати передавання. Сеанси Codex також можуть звертатися назад до OpenClaw через MCP.

Модель продукту

Codex залишається основною робочою поверхнею. OpenClaw здійснює супервізію Codex, а не приховує Codex усередині непрозорого субагента OpenClaw.

Plugin OpenClaw має назву codex-supervisor. crabfleet залишається профілем розгортання та парку хостів для машин CRAB, а не назвою повторно використовуваного Plugin.

Модель має три ролі:

  • Codex із під’єднаною людиною: звичайний інтерактивний Codex TUI, запущений через спільний app-server.
  • Автономний Codex: потік Codex app-server, породжений супервізором, до якого людина може під’єднатися пізніше.
  • Claw-супервізор: постійно активний агент OpenClaw з інструментами для стану парку, читання транскриптів, спрямування, переривання, породження та передавання.

OpenClaw може внутрішньо використовувати наявний механізм субагентів, але зовнішній контракт — це сеанс Codex із можливістю під’єднання та ідентифікатором потоку Codex.

Архітектура

text
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 і активні потоки в супервізорі.

Супервізор запускає:

  • Реєстр кінцевих точок.
  • Реєстр сеансів.
  • Пул JSON-RPC клієнтів Codex app-server.
  • MCP-сервер для викликів із Codex до Claw.
  • Інструменти OpenClaw для керування з Claw до Codex.
  • Рушій політик для автономних дій, схвалень і запобігання циклам.

Контракт Codex App-Server

Використовуйте API Codex app-server як канонічну площину керування:

  • initialize, initialized
  • thread/loaded/list
  • thread/list
  • thread/read
  • thread/resume
  • thread/start
  • turn/start
  • turn/steer
  • turn/interrupt
  • model/list

Інтерактивний Codex має запускатися з codex --remote <endpoint>, щоб TUI і супервізор під’єднувалися до того самого app-server. Окремий codex exec сьогодні не є сеансом зі спільним доступом у реальному часі; використовуйте API app-server для автономної роботи, доки Codex не підтримуватиме exec --remote.

Реєстр сеансів

Супервізор зберігає один запис на кожен спостережуваний потік Codex:

json
{  "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. Розгортання парку має збагачувати записи ідентичністю хоста, станом під’єднання користувача, станом git і справністю sidecar.

MCP-поверхня для Codex

Кожен супервізований Codex отримує MCP-сервер з назвою openclaw-codex-supervisor.

Інструменти:

  • codex_sessions_list: перелічити видимі сеанси Codex.
  • codex_session_read: прочитати один транскрипт.
  • codex_session_send: надіслати повідомлення в неактивний потік або спрямувати активний потік.
  • codex_session_interrupt: перервати активний хід.
  • codex_endpoint_probe: перевірити з’єднання з кінцевою точкою.
  • claw_report_progress: опублікувати поточний стан завдання для супервізора.
  • claw_ask: попросити супервізора про допомогу або делегування.
  • codex_spawn: створити новий автономний сеанс Codex.
  • codex_handoff: запросити передавання людині або іншому учаснику.

Ресурси:

  • codex://sessions
  • codex://sessions/{sessionId}
  • codex://sessions/{sessionId}/transcript

Поверхня керування Claw

Постійно активний Claw отримує ті самі примітиви, що й внутрішні інструменти:

  • перелічувати сеанси й кінцеві точки
  • читати транскрипти
  • надсилати/спрямовувати текст
  • переривати активну роботу
  • породжувати нові сеанси
  • підсумовувати та призначати сеанси
  • транслювати інструкції відфільтрованій групі
  • позначати сеанси як заблоковані, завершені або покинуті

Поведінка інструментів:

  • Якщо цільовий потік неактивний, codex_session_send відображається на turn/start.
  • Якщо цільовий потік активний і видно ідентифікатор поточного ходу, він відображається на turn/steer.
  • Якщо активний хід не можна ідентифікувати, інструмент відмовляє у закритому режимі замість створення непов’язаного ходу.
  • Елементи керування записом MCP, відкриті для Codex, залишаються вимкненими, якщо їх не вмикає довірена політика лише для супервізора.
  • Сирі читання транскриптів залишаються вимкненими, якщо їх не вмикає довірена політика лише для супервізора.
  • Типові автономні схвалення забороняють схвалення інструментів/файлів, якщо явна політика не визначає інакше.

Потік запуску

Інтерактивний вхід на хост:

  1. Користувач під’єднується через SSH до хоста CRAB.
  2. Служба SSH запускає або перевіряє codex app-server daemon start.
  3. Обгортка входу запускає codex --remote unix:// --cd <workspace>.
  4. Конектор хоста реєструє кінцеву точку й завантажений потік.
  5. Супервізор випромінює високопріоритетну подію парку: новий сеанс Codex, робочий простір, стан під’єднання людини, попередній перегляд поточного завдання.
  6. Claw-супервізор може негайно читати й спрямовувати.

Автономне породження:

  1. Супервізор вибирає хост і робочий простір.
  2. Конектор хоста відкриває або відновлює потік Codex app-server.
  3. Супервізор запускає перший хід із текстом завдання та конфігурацією MCP.
  4. Реєстр сеансів позначає його як автономний і доступний для під’єднання.
  5. Людина може пізніше під’єднатися за допомогою codex --remote <endpoint> resume <threadId>, щойно Codex підтримуватиме саме такий UX, або через поточний потік відновлення на тому самому app-server.

Розгортання

Бажана площина керування:

  • Конектори хостів підтримують вихідні WebSocket-з’єднання із супервізором.
  • Стан супервізора зберігається у сховищі OpenClaw Gateway.
  • Codex app-server залишається локальним для кожного хоста; ніколи не відкривайте сирий неавтентифікований app-server у публічний інтернет.

Життєздатність Cloudflare:

  • Добре підходить для реєстру, durable objects, агрегації WebSocket, легкого маршрутизування подій і публічних кінцевих точок MCP/Gateway.
  • Самого цього недостатньо для прямого керування приватними хостами, оскільки Workers не можуть набирати довільні приватні Unix-сокети або app-server на local loopback.
  • Використовуйте Cloudflare, коли кожен конектор хоста телефонує додому через вихідний WebSocket.

Резервний варіант VPS:

  • Використовуйте сервіс Hetzner, коли потрібні керування довгоживучими процесами, SSH-тунелі, маршрутизація приватної мережі або доступ до локальної файлової системи.
  • Зберігайте той самий протокол: конектори хостів вихідні, реєстр супервізора центральний, Codex app-server локальний.

Безпека

  • Типове прив’язування — локальний Unix-сокет.
  • Віддалений app-server використовує токен або підписану bearer-автентифікацію.
  • Конектор хоста автентифікується в супервізорі за допомогою scoped host token.
  • Інструменти супервізора застосовують політики для кожного сеансу: читання, спрямування, переривання, породження, схвалення.
  • Повідомлення між агентами містять originSessionId; самовідлуння відкидається.
  • Трансляція потребує явного фільтра й обмеженої кількості цілей.
  • Читання транскриптів редагують секрети на межі OpenClaw.
  • Запити на схвалення типово забороняються для ходів, ініційованих супервізором, якщо політика їх не дозволяє.

План реалізації

Фаза 1: MVP локального супервізора

  • Додати JSON-RPC клієнт Codex app-server для stdio-проксі та WebSocket-кінцевих точок.
  • Додати реєстр кінцевих точок/сеансів супервізора.
  • Додати інструменти MCP: перелік, читання, надсилання, переривання, probe.
  • Додати локальну env-конфігурацію для кінцевих точок.
  • Додати тести з фейковим app-server і один живий локальний smoke для app-server.

Фаза 2: Інтеграція OpenClaw

  • Зареєструвати інструменти супервізора в Plugin codex-supervisor.
  • Впровадити MCP супервізора в конфігурацію потоку Codex.
  • Додати підсумки сеансів до контексту агента.
  • Додати сповіщення про події, коли з’являються нові потоки Codex.
  • Додати конфігурацію політик для автономного надсилання/переривання/породження.

Фаза 3: Конектор парку

  • Sidecar хоста реєструє кінцеву точку app-server, метадані хоста, метадані git/робочого простору та стан під’єднання людини.
  • Додати вихідний WebSocket-конектор для площини керування Cloudflare або VPS.
  • Додати повторне під’єднання, Heartbeat і очищення застарілих сеансів.
  • Додати обгортку запуску CRAB SSH.

Фаза 4: Автономна робота

  • Додати потоки породження/відновлення/перебирання керування.
  • Додати трансляцію й делегування.
  • Додати звіти про прогрес і підсумки стану завдання.
  • Додати запобігання циклам і обмеження частоти.
  • Додати подання панелі керування.

Фаза 5: Multi-Claw

  • Шардувати сеанси за групами.
  • Додати leadership/lease для кожного сеансу.
  • Додати журнал аудиту й відтворення.
  • Додати ескалацію між групами Claw.

Приймальні тести

  • Людина запускає Codex TUI через спільний app-server.
  • Супервізор перелічує активний потік через thread/loaded/list.
  • Супервізор читає транскрипт через thread/read.
  • Супервізор надсилає текст у неактивний потік через turn/start.
  • Супервізор спрямовує активний потік через turn/steer.
  • Переривання супервізора зупиняє активний хід через turn/interrupt.
  • Codex викликає MCP супервізора й перелічує peer-сеанси.
  • Автономний Codex породжується й пізніше під’єднується до людини.
  • Втрачений конектор хоста позначає сеанси як застарілі, не видаляючи історію.

Відкриті питання

  • Точний UX під’єднання Codex TUI до потоку app-server, породженого без TUI.
  • Чи має Codex додати exec --remote для headless запусків зі спільним доступом у реальному часі.
  • Власник durable state: OpenClaw Gateway DB, Cloudflare Durable Object або база даних VPS.
  • Гранулярність політик схвалення для ходів, ініційованих супервізором.
  • Скільки підсумку транскрипту слід впроваджувати в контекст постійно активного Claw, а скільки зберігати як інструмент/ресурс.
Was this useful?
On this page

On this page