Рунбук сервиса Gateway
Используйте эту страницу для запуска в первый день (day-1) и эксплуатации во второй день (day-2) сервиса Gateway.Deep troubleshooting
Диагностика от симптомов с точными последовательностями команд и сигнатурами логов.
Configuration
Руководство по настройке, ориентированное на задачи, + полный справочник по конфигурации.
Локальный запуск за 5 минут
Перезагрузка конфигурации Gateway отслеживает путь к активному файлу конфигурации (определяется из значений профиля/состояния по умолчанию или из
OPENCLAW_CONFIG_PATH, если задан).
Режим по умолчанию: gateway.reload.mode="hybrid" (безопасные изменения применяются на лету, критические — с перезапуском).Модель выполнения
- Один постоянно работающий процесс для маршрутизации, control plane и подключений каналов.
- Мультиплексирование на одном порту.
- WebSocket control/RPC
- OpenResponses (HTTP):
/v1/responses. - Control UI и хуки
- Режим привязки по умолчанию:
loopback. - Аутентификация Gateway по умолчанию обязательна: задайте
gateway.auth.token(илиOPENCLAW_GATEWAY_TOKEN) либоgateway.auth.password.
Приоритет порта и привязки
| Параметр | Порядок определения |
|---|---|
| Порт Gateway | Приоритет портов: --port > OPENCLAW_GATEWAY_PORT > gateway.port > значение по умолчанию 18789. |
| Режим привязки | CLI/override → gateway.bind → loopback |
Режимы горячей перезагрузки
Отключается с помощью gateway.reload.mode="off". | Поведение |
|---|---|
off | Без перезагрузки конфигурации |
hot | Применять только изменения, безопасные для hot-режима |
restart | Перезапуск при изменениях, требующих перезапуска |
hybrid (по умолчанию) | Горячее применение, когда безопасно, перезапуск при необходимости |
Набор команд оператора
Удалённый доступ
Предпочтительно Tailscale/VPN; в противном случае — SSH-туннель: Резервный вариант: SSH-туннель.ws://127.0.0.1:18789 через туннель.
См.: Remote Gateway, Authentication, Tailscale.
Контроль и жизненный цикл службы
Используйте supervised-запуск для надежности уровня production.- macOS (launchd)
- Linux (systemd user)
- Linux (system service)
ai.openclaw.gateway (по умолчанию) или ai.openclaw.<profile> при запуске именованного профиля. openclaw doctor проверяет и устраняет расхождения конфигурации службы.Несколько Gateway (на одном хосте)
Обычно не требуется: один Gateway может обслуживать несколько каналов сообщений и агентов. Используйте несколько Gateway только для резервирования или строгой изоляции (например, rescue bot). Checklist per instance:- уникальный
gateway.port - уникальный
OPENCLAW_CONFIG_PATH - уникальный
OPENCLAW_STATE_DIR - уникальный
agents.defaults.workspace
Профиль Dev (--dev)
19001.
Протокол (взгляд оператора)
- Клиенты должны переподключиться.
- Gateway возвращает снимок
hello-ok(presence,health,stateVersion,uptimeMs, limits/policy). - Запросы:
{type:"req", id, method, params}→{type:"res", id, ok, payload|error} - Типичные события:
connect.challenge,agent,chat,presence,tick,health,heartbeat,shutdown.
- Немедленное подтверждение принятия (
status:"accepted") - Ответы
agentдвухэтапные: сначалаresack{runId,status:"accepted"}, затем финальныйres{runId,status:"ok"|"error",summary}после завершения выполнения; потоковый вывод приходит какevent:"agent".
Операционные проверки
Проверка доступности (liveness)
- Откройте WS и отправьте
connect. - Ожидайте ответ
hello-okсо снимком состояния.
Готовность (readiness)
Восстановление после пропуска последовательности
События не воспроизводятся повторно. При пропуске последовательности обновите состояние (health, system-presence) перед продолжением.
Типичные сигнатуры сбоев
| Сигнатура | Вероятная проблема |
|---|---|
refusing to bind gateway ... without auth | Привязка не к loopback без токена/пароля |
another gateway instance is already listening / EADDRINUSE | Конфликт портов |
Gateway start blocked: set gateway.mode=local | Конфигурация установлена в удалённый режим |
unauthorized при подключении | Несоответствие аутентификации между клиентом и Gateway |
Гарантии безопасности
- Нет резервного перехода к прямым подключениям Baileys; если Gateway недоступен, отправки немедленно завершаются ошибкой.
- Некорректные первые фреймы подключения или повреждённый JSON отклоняются, и сокет закрывается.
- Корректное завершение: перед закрытием отправляется событие
shutdown; клиенты должны обрабатывать закрытие и переподключение.
Связано: