Несколько шлюзов (один хост)

Большинство настроек должны использовать один шлюз, потому что один шлюз может обрабатывать несколько подключений к обмену сообщениями и агентов. Если вам нужна более сильная изоляция или избыточность (например, резервный бот), запустите отдельные шлюзы с изолированными профилями/портами.

Чек-лист изоляции (обязательно)

  • OPENCLAW_CONFIG_PATH — файл конфигурации для каждого экземпляра
  • OPENCLAW_STATE_DIR — сессии, учетные данные, кеши для каждого экземпляра
  • agents.defaults.workspace — корень рабочего пространства для каждого экземпляра
  • gateway.port (или --port) — уникальный для каждого экземпляра
  • Производные порты (browser/canvas) не должны перекрываться

Если они совместно используются, вы столкнетесь с гонками конфигурации и конфликтами портов.

Рекомендуется: профили (--profile)

Профили автоматически ограничивают OPENCLAW_STATE_DIR + OPENCLAW_CONFIG_PATH и добавляют суффикс к именам служб.

# main
openclaw --profile main setup
openclaw --profile main gateway --port 18789

# rescue
openclaw --profile rescue setup
openclaw --profile rescue gateway --port 19001

Службы по профилям:

openclaw --profile main gateway install
openclaw --profile rescue gateway install

Руководство по резервному боту

Запустите второй шлюз на том же хосте с его собственными:

  • профилем/конфигурацией
  • директорией состояния
  • рабочим пространством
  • базовым портом (плюс производные порты)

Это сохраняет резервный бот изолированным от основного бота, чтобы он мог отлаживать или применять изменения конфигурации, если первичный бот не работает.

Интервал портов: оставьте не менее 20 портов между базовыми портами, чтобы производные порты browser/canvas/CDP никогда не сталкивались.

Как установить (резервный бот)

# Основной бот (существующий или новый, без параметра --profile)
# Работает на порту 18789 + порты Chrome CDC/Canvas/...
openclaw onboard
openclaw gateway install

# Резервный бот (изолированный профиль + порты)
openclaw --profile rescue onboard
# Примечания:
# - имя рабочего пространства будет добавлено с -rescue по умолчанию
# - Порт должен быть не менее 18789 + 20 портов,
#   лучше выбрать совершенно другой базовый порт, например 19789,
# - остальная часть onboarding такая же, как обычная

# Для установки службы (если это не произошло автоматически во время onboarding)
openclaw --profile rescue gateway install

Сопоставление портов (производные)

Базовый порт = gateway.port (или OPENCLAW_GATEWAY_PORT / --port).

  • порт службы управления браузером = базовый + 2 (только loopback)
  • canvasHost.port = базовый + 4
  • Порты CDP профиля браузера автоматически выделяются из browser.controlPort + 9 .. + 108

Если вы переопределяете любой из них в конфигурации или env, вы должны держать их уникальными для каждого экземпляра.

Примечания по браузеру/CDP (распространенная ошибка)

  • Не привязывайте browser.cdpUrl к одинаковым значениям на нескольких экземплярах.
  • Каждому экземпляру нужен собственный порт управления браузером и диапазон CDP (производный от его порта шлюза).
  • Если вам нужны явные порты CDP, установите browser.profiles.<name>.cdpPort для каждого экземпляра.
  • Удаленный Chrome: используйте browser.profiles.<name>.cdpUrl (по профилю, по экземпляру).

Пример ручного env

OPENCLAW_CONFIG_PATH=~/.openclaw/main.json \
OPENCLAW_STATE_DIR=~/.openclaw-main \
openclaw gateway --port 18789

OPENCLAW_CONFIG_PATH=~/.openclaw/rescue.json \
OPENCLAW_STATE_DIR=~/.openclaw-rescue \
openclaw gateway --port 19001

Быстрые проверки

openclaw --profile main status
openclaw --profile rescue status
openclaw --profile rescue browser status