Gateway
Руководство по эксплуатации Gateway
Используйте эту страницу для первоначального запуска и последующей эксплуатации службы Gateway.
Диагностика по симптомам с точными последовательностями команд и сигнатурами журналов.
Руководство по настройке на основе задач и полный справочник по конфигурации.
Контракт SecretRef, поведение снимка среды выполнения и операции миграции и перезагрузки.
Точные правила цели/пути secrets apply и поведение профиля аутентификации, использующего только ссылки.
Локальный запуск за 5 минут
Запустите Gateway
openclaw gateway --port 18789# отладочные данные и трассировка дублируются в стандартный ввод-выводopenclaw gateway --port 18789 --verbose# принудительно завершить процесс, прослушивающий выбранный порт, затем запуститьopenclaw gateway --forceПроверьте работоспособность службы
openclaw gateway statusopenclaw statusopenclaw logs --followБазовые признаки нормальной работы: Runtime: running, Connectivity probe: ok и строка Capability, соответствующая ожидаемому значению. Используйте openclaw gateway status --require-rpc для проверки RPC с областью чтения, а не только доступности.
Проверьте готовность каналов
openclaw channels status --probeЕсли Gateway доступен, команда выполняет оперативные проверки каналов для каждой учётной записи и необязательные аудиты. Если Gateway недоступен, CLI возвращается к сводкам каналов только на основе конфигурации.
Модель среды выполнения
- Один постоянно работающий процесс для маршрутизации, плоскости управления и подключений каналов.
- Один мультиплексированный порт для:
- управления и RPC через WebSocket
- HTTP API (
/v1/models,/v1/embeddings,/v1/chat/completions,/v1/responses,/tools/invoke) - HTTP-маршрутов плагинов, например необязательного
/api/v1/admin/rpc - интерфейса управления и хуков
- Режим привязки по умолчанию:
loopback. В обнаруженной контейнерной среде фактическое значение по умолчанию —auto(разрешается в0.0.0.0для перенаправления портов), если не активен режим serve/funnel Tailscale, который всегда принудительно используетloopback. - По умолчанию требуется аутентификация. Конфигурации с общим секретом используют
gateway.auth.token/gateway.auth.password(илиOPENCLAW_GATEWAY_TOKEN/OPENCLAW_GATEWAY_PASSWORD), а конфигурации обратного прокси не через loopback могут использоватьgateway.auth.mode: "trusted-proxy".
Эндпоинты, совместимые с OpenAI
Наиболее значимая поверхность совместимости OpenClaw:
GET /v1/modelsGET /v1/models/{id}POST /v1/embeddingsPOST /v1/chat/completionsPOST /v1/responses
Почему этот набор важен:
- Большинство интеграций Open WebUI, LobeChat и LibreChat сначала проверяют
/v1/models. - Многие конвейеры RAG и памяти ожидают
/v1/embeddings. - Клиенты, ориентированные на агентов, всё чаще предпочитают
/v1/responses.
/v1/models в первую очередь ориентирован на агентов: он возвращает openclaw, openclaw/default и openclaw/<agentId> для каждого настроенного агента. openclaw/default — стабильный псевдоним, всегда сопоставляемый с настроенным агентом по умолчанию. Отправляйте x-openclaw-model, когда требуется переопределить серверного поставщика или модель; в противном случае управление сохраняют обычные настройки модели и эмбеддингов выбранного агента.
Все эти эндпоинты работают на основном порту Gateway и используют ту же доверенную границу аутентификации оператора, что и остальная часть HTTP API Gateway.
Административный HTTP RPC (POST /api/v1/admin/rpc) — это отдельный, по умолчанию отключённый маршрут плагина для инструментов хоста, которые не могут использовать RPC через WebSocket. См. Административный HTTP RPC.
Приоритет порта и привязки
| Параметр | Порядок разрешения |
|---|---|
| Порт Gateway | --port → OPENCLAW_GATEWAY_PORT → gateway.port → 18789 |
| Режим привязки | CLI/переопределение → gateway.bind → loopback (или auto в контейнерах) |
Установленные службы Gateway записывают разрешённое значение --port в метаданные супервизора. После изменения gateway.port выполните openclaw doctor --fix или openclaw gateway install --force, чтобы launchd/systemd/schtasks запускал процесс на новом порту.
При запуске Gateway использует тот же фактический порт и режим привязки для формирования локальных источников интерфейса управления при привязках не к loopback. Например, --bind lan --port 3000 добавляет http://localhost:3000 и http://127.0.0.1:3000 до выполнения проверки среды выполнения. Явно добавьте все источники удалённых браузеров, например HTTPS-адреса прокси, в gateway.controlUi.allowedOrigins.
Режимы горячей перезагрузки
gateway.reload.mode |
Поведение |
|---|---|
off |
Без перезагрузки конфигурации |
hot |
Применять только изменения, безопасные для горячей перезагрузки |
restart |
Перезапускать при изменениях, требующих перезагрузки |
hybrid (по умолчанию) |
Применять без перезапуска, когда это безопасно, и перезапускать при необходимости |
Набор команд оператора
openclaw gateway statusopenclaw gateway status --deep # добавляет проверку служб на уровне системыopenclaw gateway status --jsonopenclaw gateway installopenclaw gateway restartopenclaw gateway stopopenclaw secrets reloadopenclaw logs --followopenclaw doctorgateway status --deep предназначен для дополнительного обнаружения служб (LaunchDaemons/системных модулей systemd/schtasks), а не для более глубокой проверки работоспособности RPC.
Несколько экземпляров Gateway на одном хосте
В большинстве установок следует запускать один Gateway на машину. Один Gateway может обслуживать несколько агентов и каналов. Несколько экземпляров Gateway нужны только тогда, когда вы намеренно хотите обеспечить изоляцию или использовать резервного бота.
Полезные проверки:
openclaw gateway status --deepopenclaw gateway probeОжидаемое поведение:
gateway status --deepможет сообщатьOther gateway-like services detected (best effort)и выводить рекомендации по очистке, если сохраняются устаревшие установки launchd/systemd/schtasks.gateway probeможет предупреждать оmultiple reachable gateway identities, когда отвечают разные экземпляры Gateway или когда OpenClaw не может доказать, что доступные цели являются одним и тем же Gateway. SSH-туннель, URL-адрес прокси или настроенный удалённый URL-адрес к одному Gateway представляют собой один Gateway с несколькими транспортами, даже если транспортные порты различаются.- Если это сделано намеренно, изолируйте порты, конфигурацию и состояние, а также корневые каталоги рабочих пространств для каждого Gateway.
Контрольный список для каждого экземпляра:
- Уникальный
gateway.port - Уникальный
OPENCLAW_CONFIG_PATH - Уникальный
OPENCLAW_STATE_DIR - Уникальный
agents.defaults.workspace
Пример:
OPENCLAW_CONFIG_PATH=~/.openclaw/a.json OPENCLAW_STATE_DIR=~/.openclaw-a openclaw gateway --port 19001OPENCLAW_CONFIG_PATH=~/.openclaw/b.json OPENCLAW_STATE_DIR=~/.openclaw-b openclaw gateway --port 19002Подробная настройка: /gateway/multiple-gateways.
Удалённый доступ
Предпочтительно: Tailscale/VPN. Резервный вариант: SSH-туннель.
ssh -N -L 18789:127.0.0.1:18789 user@gateway-hostЗатем подключайте клиенты локально к ws://127.0.0.1:18789.
См.: Удалённый Gateway, Аутентификация, Tailscale.
Надзор и жизненный цикл службы
Для надёжности на уровне производственной среды используйте запуск под управлением супервизора.
macOS (launchd)
openclaw gateway installopenclaw gateway statusopenclaw gateway restartopenclaw gateway stopИспользуйте openclaw gateway restart для перезапуска. Не используйте последовательный вызов openclaw gateway stop и openclaw gateway start вместо перезапуска.
В macOS gateway stop по умолчанию использует launchctl bootout. Это удаляет LaunchAgent из текущего сеанса загрузки без постоянного отключения, поэтому автоматическое восстановление KeepAlive продолжает работать после непредвиденных сбоев, а gateway start корректно включает службу повторно. Чтобы постоянно запрещать автоматический повторный запуск после перезагрузок, передайте --disable: openclaw gateway stop --disable.
Метки LaunchAgent: ai.openclaw.gateway (по умолчанию) или ai.openclaw.<profile> (именованный профиль). openclaw doctor проверяет и исправляет расхождения конфигурации службы.
Linux (пользовательская служба systemd)
openclaw gateway installsystemctl --user enable --now openclaw-gateway[-<profile>].serviceopenclaw gateway statusЧтобы служба продолжала работать после выхода из системы, включите lingering:
sudo loginctl enable-linger $(whoami)На сервере без графической среды также убедитесь, что задан XDG_RUNTIME_DIR (export XDG_RUNTIME_DIR=/run/user/$(id -u)), прежде чем повторять команды systemctl --user.
Пример пользовательского модуля для случая, когда требуется нестандартный путь установки:
[Unit]Description=Gateway OpenClawAfter=network-online.targetWants=network-online.targetStartLimitBurst=5StartLimitIntervalSec=60 [Service]ExecStart=/usr/local/bin/openclaw gateway --port 18789Restart=alwaysRestartSec=5RestartPreventExitStatus=78TimeoutStopSec=30TimeoutStartSec=30SuccessExitStatus=0 143OOMPolicy=continueKillMode=control-group [Install]WantedBy=default.targetWindows (нативный режим)
openclaw gateway installopenclaw gateway status --jsonopenclaw gateway restartopenclaw gateway stopУправляемый запуск в Windows использует запланированную задачу с именем OpenClaw Gateway
(или OpenClaw Gateway (<profile>) для именованных профилей). Если в создании запланированной задачи
отказано, OpenClaw использует средство запуска из пользовательской папки автозагрузки,
которое указывает на gateway.cmd в каталоге состояния.
Linux (системная служба)
Используйте системный модуль для многопользовательских и постоянно работающих хостов.
sudo systemctl daemon-reloadsudo systemctl enable --now openclaw-gateway[-<profile>].serviceИспользуйте то же содержимое службы, что и для пользовательского модуля, но установите его в
/etc/systemd/system/openclaw-gateway[-<profile>].service и скорректируйте
ExecStart=, если исполняемый файл openclaw находится в другом месте.
Не разрешайте openclaw doctor --fix также устанавливать пользовательскую службу Gateway для того же профиля и порта. Doctor отказывается от такой автоматической установки, если обнаруживает системную службу Gateway OpenClaw; используйте OPENCLAW_SERVICE_REPAIR_POLICY=external, когда жизненным циклом управляет системный модуль.
При ошибках недопустимой конфигурации процесс завершается с кодом 78. Системные модули systemd в Linux используют RestartPreventExitStatus=78, чтобы прекратить повторные запуски до исправления конфигурации. В launchd и планировщике заданий Windows нет эквивалентного правила остановки по коду завершения, поэтому Gateway также сохраняет историю быстрых некорректных запусков и после повторяющихся сбоев запуска подавляет автоматический запуск учётных записей каналов и поставщиков. В этом безопасном режиме плоскость управления всё равно запускается для проверки и исправления, горячая перезагрузка конфигурации и secrets.reload не выполняют автоматический перезапуск каналов, а явный запрос оператора channels.start может отменить это ограничение.
Быстрый запуск профиля разработки
openclaw --dev setupopenclaw --dev gateway --allow-unconfiguredopenclaw --dev statusПо умолчанию используются изолированные состояние и конфигурация, а также базовый порт Gateway 19001.
Краткий справочник по протоколу для оператора
- Первым кадром клиента должен быть
connect. - Gateway возвращает кадр
hello-okсsnapshot(presence,health,stateVersion,uptimeMs), а также ограничениямиpolicy(maxPayload,maxBufferedBytes,tickIntervalMs). hello-ok.features.methods/events— это консервативный список для обнаружения, а не автоматически созданный перечень всех доступных для вызова вспомогательных маршрутов.- Запросы:
req(method, params)→res(ok/payload|error). - К распространённым событиям относятся
connect.challenge,agent,chat,session.message,session.operation,session.tool, включаемые по желаниюsession.approval,sessions.changed,presence,tick,health,heartbeat, события жизненного цикла сопряжения и подтверждения, а такжеshutdown.
Запуски агента выполняются в два этапа:
- Немедленное подтверждение принятия (
status:"accepted") - Итоговый ответ о завершении (
status:"ok"|"error"), между ними передаются потоковые событияagent.
Полную документацию протокола см. в разделе Протокол Gateway.
Операционные проверки
Доступность
- Откройте WS-соединение и отправьте
connect. - Ожидайте ответ
hello-okсо снимком состояния.
Готовность
openclaw gateway statusopenclaw channels status --probeopenclaw healthВосстановление после пропусков
События не воспроизводятся повторно. При пропусках в последовательности обновите состояние (health, system-presence), прежде чем продолжить.
Типичные признаки сбоев
| Признак | Вероятная проблема |
|---|---|
refusing to bind gateway ... without auth |
Привязка не к loopback-интерфейсу без допустимого способа аутентификации Gateway |
another gateway instance is already listening / EADDRINUSE |
Конфликт портов |
Gateway start blocked: set gateway.mode=local |
В конфигурации задан удалённый режим либо в повреждённой конфигурации отсутствует gateway.mode |
unauthorized при подключении |
Несоответствие параметров аутентификации клиента и Gateway |
Полные последовательности диагностики см. в разделе Устранение неполадок Gateway.
Гарантии безопасности
- Клиенты протокола Gateway немедленно завершают работу с ошибкой, если Gateway недоступен (без неявного перехода к прямому каналу).
- Недопустимые первые кадры и первые кадры, не предназначенные для подключения, отклоняются, после чего соединение закрывается.
- При корректном завершении работы перед закрытием сокета отправляется событие
shutdown.