EnglishРусский中文

Урок 1. Как устроен OpenClaw внутри#

Зачем это нужно#

Вы уже умеете пользоваться OpenClaw — отправлять сообщения, подключать каналы, настраивать ассистента. Но чтобы решать нестандартные задачи и понимать, почему что-то не работает, полезно знать, как система устроена «под капотом». Это как разобраться, из чего состоит автомобиль — не для того, чтобы стать механиком, а чтобы понимать, что происходит.

Главные компоненты#

OpenClaw состоит из нескольких частей, которые работают вместе:

1. Gateway (Шлюз)#

Gateway — это «мозг» системы. Это программа, которая постоянно работает на вашем компьютере или сервере.

Что делает Gateway:

  • Держит связь со всеми мессенджерами (Telegram, WhatsApp, Discord и др.)
  • Принимает ваши сообщения и отправляет их AI-модели
  • Управляет сессиями (историей разговоров)
  • Раздаёт задачи устройствам-помощникам (нодам)

Gateway — это единственный процесс, который нужно запустить. Всё остальное подключается к нему.

Запуск Gateway:
openclaw gateway

По умолчанию он слушает на порту 18789 — это как номер двери, через которую все заходят.

2. WebSocket — способ общения#

WebSocket (WS) — это технология для постоянной двусторонней связи. Представьте телефонный звонок: вы не кладёте трубку после каждой фразы, а разговариваете непрерывно.

Все части OpenClaw общаются с Gateway через WebSocket:

  • Приложение на Mac
  • Командная строка (CLI)
  • Веб-интерфейс (WebChat)
  • Устройства (ноды)

Общение происходит в формате JSON — это текстовый формат для передачи данных, похожий на список «ключ-значение».

3. Клиенты (Clients)#

Клиент — это любая программа, которая подключается к Gateway:

  • Приложение macOS — графический интерфейс в панели меню
  • CLI (Command Line Interface) — текстовые команды в терминале
  • WebChat — чат в браузере
  • Control UI — панель управления в браузере

Каждый клиент открывает одно WebSocket-соединение с Gateway.

4. Ноды (Nodes)#

Ноды — это устройства-помощники: телефон, планшет, Raspberry Pi. Они тоже подключаются к Gateway через WebSocket, но с пометкой «я — нода».

Ноды могут:

  • Делать фотографии (камера)
  • Записывать экран
  • Определять местоположение
  • Показывать уведомления

5. Canvas (Холст)#

Canvas — это веб-страница, которую ассистент может создавать и редактировать прямо в процессе работы. Она отображается по адресу Gateway на том же порту 18789.

Как всё работает вместе#

Вот что происходит, когда вы отправляете сообщение:

Вы (Telegram) → Gateway → AI-модель → Gateway → Ответ в Telegram

Подробнее:

  1. Вы пишете сообщение в Telegram
  2. Gateway получает его через Telegram-бота
  3. Gateway отправляет текст в AI-модель (например, Claude)
  4. Модель решает, что делать — может вызвать инструменты (прочитать файл, поискать в интернете)
  5. Если нужно устройство — Gateway обращается к ноде по WebSocket
  6. Готовый ответ Gateway отправляет обратно в Telegram

Жизненный цикл подключения#

Когда клиент подключается к Gateway, происходит «рукопожатие»:

  1. Клиент отправляет запрос connect (первое сообщение всегда должно быть таким)
  2. Gateway проверяет токен авторизации (если настроен)
  3. Gateway отвечает «ok» и отправляет текущий статус
  4. Дальше клиент может отправлять запросы, а Gateway — присылать события

Если первое сообщение — не connect, Gateway разрывает соединение.

Авторизация и доверие#

  • Каждый клиент и нода имеют идентификатор устройства (device identity)
  • Новые устройства требуют одобрения (pairing approval)
  • Подключения с того же компьютера (localhost) могут одобряться автоматически
  • Удалённые подключения требуют явного подтверждения

Проверка здоровья#

Чтобы убедиться, что Gateway работает:

openclaw health
openclaw status --deep

Итоги урока#

  • Gateway — центральная программа, которая управляет всем
  • Все части системы общаются через WebSocket (постоянное соединение)
  • Клиенты (приложения, CLI, веб) подключаются к Gateway для управления
  • Ноды (устройства) подключаются как помощники с камерой, экраном и т.д.
  • Первое сообщение при подключении — всегда connect с авторизацией
  • Один Gateway = один хост. Это единая точка управления всеми каналами