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.
Архитектура
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,initializedthread/loaded/listthread/listthread/readthread/resumethread/startturn/startturn/steerturn/interruptmodel/list
Интерактивный Codex должен запускаться с codex --remote <endpoint>, чтобы TUI и супервизор подключались к одному и тому же серверу приложения. Автономный codex exec сегодня не является живой совместно используемой сессией; используйте API сервера приложения для автономной работы, пока Codex не поддержит exec --remote.
Реестр сессий
Супервизор хранит одну запись для каждого наблюдаемого потока Codex:
{ "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://sessionscodex://sessions/{sessionId}codex://sessions/{sessionId}/transcript
Поверхность управления Claw
Постоянно включенный Claw получает те же примитивы, что и внутренние инструменты:
- список сессий и конечных точек
- чтение транскриптов
- отправка/направление текста
- прерывание активной работы
- запуск новых сессий
- суммаризация и назначение сессий
- широковещательная отправка инструкций отфильтрованной группе
- пометка сессий как заблокированных, выполненных или оставленных
Поведение инструментов:
- Если целевой поток простаивает,
codex_session_sendсопоставляется сturn/start. - Если целевой поток активен и виден идентификатор выполняющегося хода, он сопоставляется с
turn/steer. - Если активный ход нельзя идентифицировать, инструмент закрывается с ошибкой, а не создает несвязанный ход.
- Управляющие операции записи MCP, доступные из Codex, остаются отключенными, если их не включает доверенная политика только для супервизора.
- Чтение сырых транскриптов остается отключенным, если его не включает доверенная политика только для супервизора.
- Автономные подтверждения по умолчанию отклоняют подтверждения инструментов/файлов, если явная политика не говорит обратное.
Поток запуска
Интерактивный вход на хост:
- Пользователь подключается по SSH к хосту CRAB.
- Служба SSH запускает или проверяет
codex app-server daemon start. - Обертка входа запускает
codex --remote unix:// --cd <workspace>. - Коннектор хоста регистрирует конечную точку и загруженный поток.
- Супервизор испускает событие парка с высоким приоритетом: новая сессия Codex, рабочая область, состояние подключения человека, предварительный просмотр текущей задачи.
- Супервизор Claw может сразу читать и направлять.
Автономный запуск:
- Супервизор выбирает хост и рабочую область.
- Коннектор хоста открывает или возобновляет поток сервера приложения Codex.
- Супервизор запускает первый ход с текстом задачи и конфигурацией MCP.
- Реестр сессий помечает ее как автономную и подключаемую.
- Человек позже может подключиться с помощью
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, а какую хранить как инструмент/ресурс.