Коротко
- Open WebUI становится внешним фронтом, а Gateway остаётся локальным и недоступным из интернета.
- Каждый пользователь получает свои чаты и сессии.
- Вызовы инструментов открываются как карточки, а работа субагентов отображается в отдельной панели.
Сверено с документацией OpenClaw 2026.10.9, 30 октября 2026.
Рецепт «Локальный Gateway под Open WebUI» переносит интерфейс в Open WebUI: Он добавляет PWA на телефоне, реальные логины и отдельные чаты для каждого участника.
Схема: Open WebUI снаружи, Gateway на loopback
Телефон обращается только к Open WebUI. Тот связывается с Gateway через протокол OpenClaw: WebSocket-транспорт и RPC-методы. Gateway остаётся на 127.0.0.1:18789, поэтому напрямую из интернета он не принимает подключения.
Внешнее приложение запускает работу через RPC agent и ждёт результата через agent.wait. Для постоянного состояния используются методы sessions.*. Для интерфейса рекомендуется подписываться на события Gateway и отображать только те семейства событий, которые приложение понимает.
Установка через интеграцию Open WebUI
- Откройте репозиторий
https://github.com/Eliav2/openclaw-openwebui-integration. Eliav2 собрал интеграцию, добавляющую карточки вызовов инструментов и живую панель субагентов; код писал его агент. - Передайте агенту задание с docs-сайтом
https://eliav2.github.io/openclaw-openwebui-integration/и попросите открытьllms.txt. Документация рассчитана на установку агентом. - После установки откройте Open WebUI с телефона как PWA. Войдите отдельными учётными записями и создайте для каждого человека собственный чат.
В отдельном чате попросите агента выполнить действие инструментом. Вызов откроется как карточка, вопрос агента поступит отдельной карточкой, ответы cron и субагентов появятся в чате. Файлы, голос, общий доступ и поиск по всем чатам остаются функциями Open WebUI.
Gateway: оставить локальным и включить токен
Перед подключением внешнего фронта оставьте Gateway на loopback и включите аутентификацию по токену. Если один бот принимает сообщения от нескольких людей, используйте session.dmScope: "per-channel-peer". Если доступны обычные каналы обмена сообщениями, задайте dmPolicy: "pairing" либо строгий allowFrom, вместо dmPolicy: "open".
{
gateway: {
bind: "loopback",
auth: {
mode: "token",
token: "replace-with-a-long-random-token",
},
},
session: {
dmScope: "per-channel-peer",
},
agents: {
defaults: {
sandbox: { mode: "non-main" },
},
},
tools: {
profile: "messaging",
exec: { security: "deny", ask: "always" },
elevated: { enabled: false },
},
}
Проверка доступа и восстановления
Сначала пройдите базовые проверки. Затем отправьте авторизованный запрос к локальному Gateway, не полагаясь на конфигурацию текущего терминала.
openclaw doctor
openclaw security audit
openclaw security audit --deep
openclaw health
openclaw gateway probe --url ws://127.0.0.1:18789 --token "$OPENCLAW_GATEWAY_TOKEN"
- Войдите в Open WebUI двумя пользователями и откройте разные чаты. Проверьте, что история не смешивается.
- Запустите действие с вызовом инструмента и субагента. Карточка должна открываться, панель субагентов должна показывать выполнение.
- Перезапустите Gateway и обновите страницу во время ответа. История должна сохраниться, а прерванный основной ход — автоматически восстановиться после перезапуска.
- Проверьте, что неавторизованное подключение отклоняется: запрос к порту Gateway извне должен быть отклонён.
Где ломается и когда не применять
- Каждый отдельный чат получает отдельную сессию OpenClaw.
- Телефон подключается к Open WebUI, а не к порту
18789Gateway. - Перезапуск Gateway не стирает историю: разговоры, cron, записи субагентов и очередь доставки хранятся на диске. Но терминалы Gateway (PTY) завершаются вместе с процессом и не восстанавливаются.
- Не применяйте эту схему, если Telegram или WhatsApp уже закрывают ваши задачи. Open WebUI нужен ради PWA, логинов, групповых чатов и подробных карточек вызовов инструментов.