Коллеги, я всё-таки не могу обойти тему OpenClaw. Проект получился настолько резонансный, что я потратил пару дней на разбор его устройства и хочу поделиться наблюдениями (ниже оставлю ссылку на разбор, который во многом помог разложить всё по полочкам).
Если очень коротко: OpenClaw — это обертка вокруг LLM. LLM даёт интеллект, а OpenClaw даёт инфраструктуру: сессии, маршрутизацию, память, инструменты, песочницы, доступы.
Почему это взлетело (и почему решения кажутся магией, хотя инженерно часто довольно простые):
Каналы (и правильная продуктовая ставка на “там, где живёт пользователь”)
OpenClaw изначально спроектирован как единый “хаб” (Gateway/control plane), к которому подключаются разные интерфейсы: WhatsApp, iMessage, Slack, Discord, Telegram, web UI, CLI и т.д. Всё это нормализуется через channel adapters (аутентификация, парсинг входящих сообщений, access control, форматирование исходящих). Для пользователя это выглядит как “один и тот же помощник везде”, а для системы — как аккуратно отделённый слой доставки сообщений от “мозгов” (Agent Runtime).
И да, то, что WhatsApp часто становится основным UX-каналом — прям сильный ход (привет нашему Игорю).
Проактивность (cron + триггеры = ощущение “он живой”)
Там есть scheduled actions: обычные cron jobs, которые по расписанию триггерят действия агента (условно: “каждый день в 9:00 пришли дайджест”), плюс внешние триггеры через webhooks (например, событие из почты/интеграции). На уровне ощущения это “always-on ассистент”, который приходит сам, а не ждёт, пока ты его пнёшь.
Расширяемость (плагины + “файлы как интерфейс”)
Расширение заложено в архитектуру: плагины могут добавлять каналы, провайдеров моделей, инструменты, альтернативные бэкенды памяти — без правки ядра. Есть discovery-подход: загрузчик сканирует workspace-пакеты и подхватывает расширения по декларации в package.json.
Плюс очень важная идея из статьи: “поведение агента” собирается из простых файлов в workspace (AGENTS.md / SOUL.md / TOOLS.md) и скиллов в виде skills//SKILL.md. Причём система не пихает всё подряд в промпт: она старается инъектить только релевантные скиллы, чтобы не раздувать контекст и не убивать качество.
Это прям хороший пример того, как меняется мышление разработки: вместо монолитной логики — композиция из “файловых” контрактов + рантайм, который умеет это безопасно исполнять.
Память
Сессии сохраняются на диск, есть компакция: когда история разрастается, старое суммаризируется, чтобы оставаться в лимитах контекста. Перед компакцией может быть “memory flush” — продвижение устойчивых фактов в долговременную память, чтобы не потерять важное при сжатии.
Память — это отдельная подсистема: SQLite-хранилище с эмбеддингами + гибридный поиск (semantic similarity + BM25). Плюс “человеческие” memory-файлы в workspace: MEMORY.md для стабильных фактов (и он подмешивается только в приватных сессиях), и дневные заметки memory/YYYY-MM-DD.md. Это даёт ту самую иллюзию обучаемости и “континуальности личности”.
Итого, если попытаться вывести формулу:
каналы + единый Gateway (маршрутизация/сессии) + proactivity (cron/webhooks) + “файлы как конфиг/память/скиллы” + песочницы и контроль доступа, и поверх этого LLM как универсальный “интеллектуальный исполнитель”.
На выходе — ощущение “живого”, расширяемого, всегда доступного ассистента, который реально что-то делает, а не просто отвечает.
https://ppaolo.substack.com/p/openclaw-system-architecture-overview