Gateway
Посібник з експлуатації Gateway
Використовуйте цю сторінку для запуску Gateway service у перший день і для операцій другого дня.
Діагностика від симптомів із точними послідовностями команд і сигнатурами журналів.
Орієнтований на завдання посібник із налаштування + повний довідник конфігурації.
Контракт SecretRef, поведінка runtime snapshot і операції міграції/перезавантаження.
Точні правила цілі/шляху secrets apply і поведінка профілю автентифікації лише за посиланням.
5-хвилинний локальний запуск
Запустіть Gateway
openclaw gateway --port 18789# debug/trace mirrored to stdioopenclaw gateway --port 18789 --verbose# force-kill listener on selected port, then startopenclaw 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 це виконує live-перевірки каналів для кожного облікового запису й необов’язкові аудити. Якщо gateway недоступний, CLI натомість повертається до підсумків каналів лише з конфігурації, без виводу live-перевірок.
Модель виконання
- Один постійно запущений процес для маршрутизації, control plane і підключень каналів.
- Один мультиплексований порт для:
- WebSocket-керування/RPC
- HTTP API (
/v1/models,/v1/embeddings,/v1/chat/completions,/v1/responses,/tools/invoke) - HTTP-маршрутів Plugin, як-от необов’язковий
/api/v1/admin/rpc - Control UI і хуків
- Типовий режим прив’язки:
loopback. - Автентифікація потрібна за замовчуванням. Налаштування зі спільним секретом використовують
gateway.auth.token/gateway.auth.password(абоOPENCLAW_GATEWAY_TOKEN/OPENCLAW_GATEWAY_PASSWORD), а налаштування reverse proxy не через loopback можуть використовуватиgateway.auth.mode: "trusted-proxy".
OpenAI-сумісні endpoints
Найцінніша поверхня сумісності OpenClaw тепер така:
GET /v1/modelsGET /v1/models/{id}POST /v1/embeddingsPOST /v1/chat/completionsPOST /v1/responses
Чому цей набір важливий:
- Більшість інтеграцій Open WebUI, LobeChat і LibreChat спершу перевіряють
/v1/models. - Багато RAG- і memory-конвеєрів очікують
/v1/embeddings. - Agent-native клієнти дедалі частіше віддають перевагу
/v1/responses.
Примітка щодо планування:
/v1/modelsорієнтований насамперед на agent: він повертаєopenclaw,openclaw/defaultіopenclaw/<agentId>.openclaw/default— стабільний псевдонім, який завжди відповідає налаштованому типовому agent.- Використовуйте
x-openclaw-model, коли потрібне перевизначення backend-провайдера/моделі; інакше звичайні налаштування моделі та embeddings вибраного agent залишаються керівними.
Усе це працює на основному порту Gateway і використовує ту саму межу автентифікації довіреного оператора, що й решта HTTP API Gateway.
Admin HTTP RPC (POST /api/v1/admin/rpc) — це окремий, типово вимкнений маршрут Plugin для host tooling, який не може використовувати WebSocket RPC. Див. Admin HTTP RPC.
Пріоритет порту й прив’язки
| Налаштування | Порядок визначення |
|---|---|
| Порт Gateway | --port → OPENCLAW_GATEWAY_PORT → gateway.port → 18789 |
| Режим прив’язки | CLI/override → gateway.bind → loopback |
Встановлені служби gateway записують визначений --port у metadata супервізора. Після зміни gateway.port запустіть openclaw doctor --fix або openclaw gateway install --force, щоб launchd/systemd/schtasks запускали процес на новому порту.
Під час запуску Gateway використовує той самий фактичний порт і прив’язку, коли засіває локальні
джерела Control UI для прив’язок не через loopback. Наприклад, --bind lan --port 3000
засіває http://localhost:3000 і http://127.0.0.1:3000 до запуску runtime-
валідації. Додавайте будь-які джерела віддаленого браузера, як-от HTTPS proxy URLs, до
gateway.controlUi.allowedOrigins явно.
Режими гарячого перезавантаження
gateway.reload.mode |
Поведінка |
|---|---|
off |
Без перезавантаження конфігурації |
hot |
Застосовувати лише hot-safe зміни |
restart |
Перезапускати за змін, що потребують перезапуску |
hybrid (типово) |
Застосовувати гаряче, коли безпечно; перезапускати, коли потрібно |
Набір команд оператора
openclaw gateway statusopenclaw gateway status --deep # adds a system-level service scanopenclaw gateway status --jsonopenclaw gateway installopenclaw gateway restartopenclaw gateway stopopenclaw secrets reloadopenclaw logs --followopenclaw doctorgateway status --deep призначено для додаткового виявлення служб (LaunchDaemons/systemd system
units/schtasks), а не для глибшої RPC-перевірки справності.
Кілька gateways (той самий host)
Більшість установок мають запускати один gateway на машину. Один gateway може розміщувати кілька agents і каналів.
Кілька gateways потрібні лише тоді, коли ви навмисно хочете ізоляцію або rescue bot.
Корисні перевірки:
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, коли відповідають різні gateways або коли OpenClaw не може довести, що доступні цілі є тим самим gateway. SSH tunnel, proxy URL або налаштований remote URL до того самого gateway — це один gateway із кількома transport, навіть якщо порти transport відрізняються.- Якщо це навмисно, ізолюйте порти, config/state і корені workspace для кожного 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@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 user)
openclaw gateway installsystemctl --user enable --now openclaw-gateway[-<profile>].serviceopenclaw gateway statusДля збереження роботи після виходу з системи ввімкніть lingering:
sudo loginctl enable-linger <user>Приклад ручного user-unit, коли потрібен власний шлях встановлення:
[Unit]Description=OpenClaw GatewayAfter=network-online.targetWants=network-online.target [Service]ExecStart=/usr/local/bin/openclaw gateway --port 18789Restart=alwaysRestartSec=5TimeoutStopSec=30TimeoutStartSec=30SuccessExitStatus=0 143OOMPolicy=continueKillMode=control-group [Install]WantedBy=default.targetWindows (native)
openclaw gateway installopenclaw gateway status --jsonopenclaw gateway restartopenclaw gateway stopНативний керований запуск Windows використовує заплановане завдання з назвою OpenClaw Gateway
(або OpenClaw Gateway (<profile>) для іменованих профілів). Якщо створення запланованого завдання
заборонено, OpenClaw повертається до лаунчера в теці автозапуску поточного користувача,
який вказує на gateway.cmd всередині каталогу стану.
Linux (system service)
Використовуйте system unit для багатокористувацьких або постійно ввімкнених хостів.
sudo systemctl daemon-reloadsudo systemctl enable --now openclaw-gateway[-<profile>].serviceВикористовуйте той самий вміст служби, що й для user unit, але встановіть його в
/etc/systemd/system/openclaw-gateway[-<profile>].service і скоригуйте
ExecStart=, якщо ваш бінарний файл openclaw розташований в іншому місці.
Також не дозволяйте openclaw doctor --fix встановлювати службу gateway рівня користувача для того самого профілю/порту. Doctor відмовляється від такого автоматичного встановлення, коли знаходить службу OpenClaw gateway системного рівня; використовуйте OPENCLAW_SERVICE_REPAIR_POLICY=external, коли system unit володіє життєвим циклом.
Швидкий шлях для dev-профілю
openclaw --dev setupopenclaw --dev gateway --allow-unconfiguredopenclaw --dev statusТипові значення включають ізольовані стан/конфігурацію та базовий порт gateway 19001.
Короткий довідник протоколу (погляд оператора)
- Першим кадром клієнта має бути
connect. - Gateway повертає знімок
hello-ok(presence,health,stateVersion,uptimeMs, обмеження/політика). hello-ok.features.methods/events— це консервативний список для виявлення, а не згенерований дамп кожного callable helper route.- Запити:
req(method, params)→res(ok/payload|error). - Поширені події включають
connect.challenge,agent,chat,session.message,session.operation,session.tool,sessions.changed,presence,tick,health,heartbeat, події життєвого циклу pairing/approval іshutdown.
Запуски агента мають два етапи:
- Негайне підтвердження прийняття (
status:"accepted") - Фінальна відповідь про завершення (
status:"ok"|"error"), із потоковими подіямиagentміж ними.
Див. повну документацію протоколу: Протокол Gateway.
Операційні перевірки
Liveness
- Відкрийте WS і надішліть
connect. - Очікуйте відповідь
hello-okзі знімком.
Readiness
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 |
Конфігурацію встановлено в remote-режим, або в пошкодженій конфігурації бракує позначки local-режиму |
unauthorized during connect |
Невідповідність автентифікації між клієнтом і Gateway |
Для повних діагностичних послідовностей використовуйте Усунення несправностей Gateway.
Гарантії безпеки
- Клієнти протоколу Gateway швидко завершуються з помилкою, коли Gateway недоступний (без неявного fallback до прямого каналу).
- Недійсні або не-connect перші кадри відхиляються й закриваються.
- Коректне завершення роботи надсилає подію
shutdownперед закриттям сокета.
Пов’язане: