Gateway
Операційний посібник Gateway
Скористайтеся цією сторінкою для запуску в перший день і операцій другого дня для служби Gateway.
Діагностика від симптомів із точними послідовностями команд і сигнатурами журналів.
Посібник із налаштування, орієнтований на завдання, + повний довідник із конфігурації.
Контракт SecretRef, поведінка знімка runtime та операції migrate/reload.
Точні правила цілі/шляху для secrets apply і поведінка auth-profile лише з посиланнями.
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 із read-scope, а не лише доступність.
Перевірте готовність каналу
openclaw channels status --probeЗа доступного gateway це запускає живі перевірки каналів для кожного облікового запису та необов’язкові аудити. Якщо gateway недоступний, CLI натомість повертається до зведень каналів лише з конфігурації замість виводу live probe.
Модель runtime
- Один постійно ввімкнений процес для маршрутизації, control plane і підключень каналів.
- Один мультиплексований порт для:
- WebSocket control/RPC
- HTTP API, сумісні з OpenAI (
/v1/models,/v1/embeddings,/v1/chat/completions,/v1/responses,/tools/invoke) - Control UI і hooks
- Типовий режим прив’язки:
loopback. - Auth потрібна за замовчуванням. Налаштування shared-secret використовують
gateway.auth.token/gateway.auth.password(абоOPENCLAW_GATEWAY_TOKEN/OPENCLAW_GATEWAY_PASSWORD), а reverse-proxy налаштування не для loopback можуть використовуватиgateway.auth.mode: "trusted-proxy".
Endpoints, сумісні з 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. - Agent-native клієнти дедалі частіше віддають перевагу
/v1/responses.
Примітка щодо планування:
/v1/modelsорієнтований насамперед на agent: він повертаєopenclaw,openclaw/defaultіopenclaw/<agentId>.openclaw/default— стабільний псевдонім, який завжди відповідає налаштованому типовому agent.- Використовуйте
x-openclaw-model, коли потрібне перевизначення backend provider/model; інакше звичайна модель і налаштування embeddings вибраного agent залишаються керівними.
Усе це працює на головному порту Gateway і використовує ту саму довірену межу operator auth, що й решта HTTP API Gateway.
Пріоритет порту та прив’язки
| Налаштування | Порядок визначення |
|---|---|
| Порт Gateway | --port → OPENCLAW_GATEWAY_PORT → gateway.port → 18789 |
| Режим прив’язки | CLI/override → gateway.bind → loopback |
Установлені служби gateway записують визначений --port у metadata supervisor. Після зміни gateway.port запустіть openclaw doctor --fix або openclaw gateway install --force, щоб launchd/systemd/schtasks запускали процес на новому порту.
Під час запуску Gateway використовує той самий ефективний порт і прив’язку, коли додає локальні
джерела Control UI для non-loopback прив’язок. Наприклад, --bind lan --port 3000
додає http://localhost:3000 і http://127.0.0.1:3000 до виконання runtime
validation. Додайте будь-які джерела віддаленого браузера, наприклад HTTPS proxy URLs, до
gateway.controlUi.allowedOrigins явно.
Режими hot reload
gateway.reload.mode |
Поведінка |
|---|---|
off |
Без перезавантаження конфігурації |
hot |
Застосовувати лише hot-safe зміни |
restart |
Перезапускати за змін, що потребують перезапуску |
hybrid (типово) |
Hot-apply, коли безпечно, перезапуск, коли потрібно |
Набір команд operator
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 і channels.
Кілька 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 gateways, коли відповідає більше ніж одна ціль.- Якщо це навмисно, ізолюйте порти, config/state і корені workspace для кожного gateway.
Checklist для кожного екземпляра:
- Унікальний
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 tunnel.
ssh -N -L 18789:127.0.0.1:18789 user@hostПотім підключайте клієнти локально до ws://127.0.0.1:18789.
Див.: Віддалений Gateway, Автентифікація, Tailscale.
Supervision і життєвий цикл служби
Використовуйте supervised запуски для надійності, подібної до production.
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 із поточної boot session без постійного вимкнення, тож автоматичне відновлення KeepAlive і далі працює після неочікуваних збоїв, а gateway start повторно вмикає його коректно. Щоб постійно пригнітити auto-respawn між перезавантаженнями, передайте --disable: openclaw gateway stop --disable.
Мітки LaunchAgent: ai.openclaw.gateway (типово) або ai.openclaw.<profile> (іменований profile). openclaw doctor аудіює та виправляє drift конфігурації служби.
Linux (systemd user)
openclaw gateway installsystemctl --user enable --now openclaw-gateway[-<profile>].serviceopenclaw gateway statusДля збереження після logout увімкніть 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 143KillMode=control-group [Install]WantedBy=default.targetWindows (native)
openclaw gateway installopenclaw gateway status --jsonopenclaw gateway restartopenclaw gateway stopНативний керований запуск Windows використовує Scheduled Task з назвою OpenClaw Gateway
(або OpenClaw Gateway (<profile>) для іменованих profiles). Якщо створення Scheduled Task
заборонено, OpenClaw повертається до launcher у Startup-folder для кожного користувача,
який вказує на gateway.cmd усередині state directory.
Linux (system service)
Використовуйте system unit для multi-user/always-on hosts.
sudo systemctl daemon-reloadsudo systemctl enable --now openclaw-gateway[-<profile>].serviceВикористовуйте той самий service body, що й для user unit, але встановіть його в
/etc/systemd/system/openclaw-gateway[-<profile>].service і скоригуйте
ExecStart=, якщо ваш бінарний файл openclaw розташований в іншому місці.
Не дозволяйте також openclaw doctor --fix встановлювати user-level gateway service для того самого profile/port. Doctor відмовляється від такої автоматичної інсталяції, коли знаходить system-level службу OpenClaw gateway; використовуйте OPENCLAW_SERVICE_REPAIR_POLICY=external, коли system unit керує життєвим циклом.
Швидкий шлях dev profile
openclaw --dev setupopenclaw --dev gateway --allow-unconfiguredopenclaw --dev statusТипові значення включають ізольовані state/config і базовий порт gateway 19001.
Короткий довідник протоколу (operator view)
- Перший frame клієнта має бути
connect. - Gateway повертає знімок
hello-ok(presence,health,stateVersion,uptimeMs, limits/policy). hello-ok.features.methods/events— це консервативний список discovery, а не згенерований dump кожного доступного helper route.- Запити:
req(method, params)→res(ok/payload|error). - Поширені events включають
connect.challenge,agent,chat,session.message,session.tool,sessions.changed,presence,tick,health,heartbeat, події життєвого циклу pairing/approval іshutdown.
Запуски agent мають два етапи:
- Негайний accepted ack (
status:"accepted") - Фінальна відповідь completion (
status:"ok"|"error") зі streamed eventsagentміж ними.
Див. повну документацію протоколу: Протокол Gateway.
Операційні перевірки
Liveness
- Відкрити WS і надіслати
connect. - Очікувати відповідь
hello-okзі знімком.
Readiness
openclaw gateway statusopenclaw channels status --probeopenclaw healthВідновлення після розривів
Events не відтворюються повторно. У разі розривів sequence оновіть state (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 |
Конфігурацію встановлено в віддалений режим, або позначка локального режиму відсутня в пошкодженій конфігурації |
unauthorized during connect |
Невідповідність автентифікації між клієнтом і Gateway |
Для повних послідовностей діагностики використовуйте усунення несправностей Gateway.
Гарантії безпеки
- Клієнти протоколу Gateway швидко завершуються з помилкою, коли Gateway недоступний (без неявного запасного переходу до прямого каналу).
- Недійсні або непідключальні перші кадри відхиляються й закриваються.
- Коректне завершення роботи надсилає подію
shutdownперед закриттям сокета.
Пов’язане: