Get started

Супервизор Claw

Супервизор Claw

Цель

Супервизор Claw позволяет одному постоянно включенному экземпляру OpenClaw отслеживать парк сессий Codex и управлять им, не меняя обычный пользовательский опыт Codex. Пользователь может подключиться к хосту по SSH, запустить Codex, работать в TUI, и при этом супервизор сможет читать сессию, направлять ее, прерывать ее, запускать связанные сессии и принимать передачи управления. Сессии Codex также могут вызывать OpenClaw через MCP.

Продуктовая модель

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

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

В модели есть три роли:

  • Codex, подключенный к человеку: обычный интерактивный TUI Codex, запущенный через общий сервер приложения.
  • Автономный Codex: поток сервера приложения Codex, запущенный супервизором, к которому человек может подключиться позже.
  • Супервизор 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.
  • Средство запуска, которое всегда запускает интерактивный Codex с --remote.
  • Коннектор, который регистрирует конечные точки сервера приложения и живые потоки у супервизора.

Супервизор запускает:

  • Реестр конечных точек.
  • Реестр сессий.
  • Пул JSON-RPC-клиентов сервера приложения Codex.
  • MCP-сервер для вызовов из Codex в Claw.
  • Инструменты OpenClaw для управления из Claw в Codex.
  • Движок политик для автономных действий, подтверждений и предотвращения циклов.

Контракт сервера приложения Codex

Используйте API сервера приложения Codex как каноническую плоскость управления:

  • 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 и супервизор подключались к одному и тому же серверу приложения. Автономный codex exec сегодня не является живой совместно используемой сессией; используйте API сервера приложения для автономной работы, пока 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 и работоспособностью сайдкара.

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.
  3. Супервизор запускает первый ход с текстом задачи и конфигурацией MCP.
  4. Реестр сессий помечает ее как автономную и подключаемую.
  5. Человек позже может подключиться с помощью codex --remote <endpoint> resume <threadId>, когда Codex поддержит именно такой UX, или через текущий поток возобновления на том же сервере приложения.

Развертывание

Предпочтительная плоскость управления:

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

Пригодность Cloudflare:

  • Хорошо подходит для реестра, durable objects, входящего WebSocket-потока, легкой маршрутизации событий и публичных конечных точек MCP/Gateway.
  • Самого по себе недостаточно для прямого управления приватными хостами, потому что Workers не могут дозваниваться до произвольных приватных Unix-сокетов или серверов приложения на local loopback.
  • Используйте Cloudflare, когда каждый коннектор хоста сам связывается с центром через исходящий WebSocket.

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

  • Используйте сервис Hetzner, когда нужны управление долгоживущими процессами, SSH-туннели, маршрутизация приватной сети или доступ к локальной файловой системе.
  • Сохраняйте тот же протокол: коннекторы хостов исходящие, реестр супервизора центральный, сервер приложения Codex локальный.

Безопасность

  • Привязка по умолчанию — локальный Unix-сокет.
  • Удаленный сервер приложения использует токен или подписанную bearer-аутентификацию.
  • Коннектор хоста аутентифицируется у супервизора с помощью ограниченного токена хоста.
  • Инструменты супервизора применяют политику для каждой сессии: чтение, направление, прерывание, запуск, подтверждение.
  • Межагентские сообщения включают originSessionId; самоэхо отбрасывается.
  • Для широковещательной отправки требуется явный фильтр и ограниченное число целей.
  • Чтение транскриптов редактирует секреты на границе OpenClaw.
  • Запросы подтверждений по умолчанию отклоняются для ходов, инициированных супервизором, если политика их не разрешает.

План реализации

Фаза 1: локальный MVP супервизора

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

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

  • Зарегистрировать инструменты супервизора в Plugin codex-supervisor.
  • Внедрить MCP супервизора в конфигурацию потока Codex.
  • Добавить сводки сессий в контекст агента.
  • Добавить уведомления о событиях при появлении новых потоков Codex.
  • Добавить конфигурацию политик для автономной отправки/прерывания/запуска.

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

  • Сайдкар хоста регистрирует конечную точку сервера приложения, метаданные хоста, метаданные git/рабочей области и состояние подключения человека.
  • Добавить исходящий WebSocket-коннектор для плоскости управления Cloudflare или VPS.
  • Добавить переподключение, Heartbeat и очистку устаревших сессий.
  • Добавить обертку запуска CRAB SSH.

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

  • Добавить потоки запуска/возобновления/перехвата управления.
  • Добавить широковещательную отправку и делегирование.
  • Добавить отчеты о ходе и сводки состояния задач.
  • Добавить предотвращение циклов и ограничения частоты.
  • Добавить представления панели управления.

Фаза 5: несколько Claw

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

Приемочные тесты

  • Человек запускает TUI Codex через общий сервер приложения.
  • Супервизор выводит живой поток через thread/loaded/list.
  • Супервизор читает транскрипт через thread/read.
  • Супервизор отправляет текст в простаивающий поток через turn/start.
  • Супервизор направляет активный поток через turn/steer.
  • Прерывание супервизора останавливает активный ход через turn/interrupt.
  • Codex вызывает MCP супервизора и выводит список одноранговых сессий.
  • Автономный Codex запускается и позже подключается к человеку.
  • Потерянный коннектор хоста помечает сессии устаревшими без удаления истории.

Открытые вопросы

  • Точный UX подключения TUI Codex к потоку сервера приложения, запущенному без TUI.
  • Должен ли Codex добавить exec --remote для безголовых живых совместно используемых запусков.
  • Владелец долговременного состояния: БД OpenClaw Gateway, Cloudflare Durable Object или база данных VPS.
  • Гранулярность политики подтверждений для ходов, инициированных супервизором.
  • Какую часть сводки транскрипта внедрять в контекст постоянно включенного Claw, а какую хранить как инструмент/ресурс.
Was this useful?
On this page

On this page