Основы
Архитектура шлюза
Последнее обновление: 2026-01-22
Обзор
- Единственный долгоживущий Шлюз управляет всеми поверхностями для обмена сообщениями (WhatsApp через Baileys, Telegram через grammY, Slack, Discord, Signal, iMessage, WebChat).
- Клиенты плоскости управления (приложение для macOS, CLI, веб-интерфейс, автоматизации) подключаются к Шлюзу по WebSocket на настроенном хосте привязки (по умолчанию
127.0.0.1:18789). - Узлы (macOS/iOS/Android/headless) также подключаются по WebSocket, но объявляют
role: nodeс явными возможностями/командами. - Один Шлюз на хост; это единственное место, где открывается сессия WhatsApp.
- Хост canvas обслуживается HTTP-сервером Шлюза по адресам:
/__openclaw__/canvas/(HTML/CSS/JS, редактируемые агентом)/__openclaw__/a2ui/(хост A2UI) Он использует тот же порт, что и Шлюз (по умолчанию18789).
Компоненты и потоки
Шлюз (демон)
- Поддерживает подключения к провайдерам.
- Предоставляет типизированный WS API (запросы, ответы, события с сервера).
- Проверяет входящие фреймы на соответствие JSON Schema.
- Генерирует события, такие как
agent,chat,presence,health,heartbeat,cron.
Клиенты (приложение для Mac / CLI / веб-админка)
- Одно WS-подключение на клиента.
- Отправляют запросы (
health,status,send,agent,system-presence). - Подписываются на события (
tick,agent,presence,shutdown).
Узлы (macOS / iOS / Android / headless)
- Подключаются к тому же WS-серверу с
role: node. - Предоставляют идентификатор устройства в
connect; спаривание происходит на основе устройства (рольnode), и подтверждение хранится в хранилище спаренных устройств. - Предоставляют команды, такие как
canvas.*,camera.*,screen.record,location.get.
Детали протокола:
WebChat
- Статический интерфейс, который использует WS API Шлюза для истории чата и отправки сообщений.
- В удаленных конфигурациях подключается через тот же SSH/Tailscale туннель, что и другие клиенты.