- BrainTools - https://www.braintools.ru -
TLDR
OpenClaw набрал заметную популярность в качестве персонального AI‑ассистента с взаимодействием через мессенджеры. Вместе с тем, в Российской Федерации всё чаще замечают проблемы с доступностью некоторых платформ коммуникации, а также обсуждают белые списки [1] приложений. В данной статье мы коротко разберём архитектуру OpenClaw и на практике подключим туда канал VK ботов через разработанный мною
vk-pluginдля OpenClaw. Данная интеграция позволяет не терять доступ к «интеллекту» даже в эпоху суверенного интернета.
Вокруг персональных AI‑ассистентов сегодня много шума, но на практике начинается очень приземлённая реальность: интернет работает не так, как раньше, западные вендоры блокируют доступ пользователям из РФ, а отечественные аналоги, при всём уважении, ещё находятся в статусе догоняющих.
OpenClaw [2] один из таких персональных ассистентов — за последнее время он набрал огромную популярность, являясь по сути, удобным «gateway к интеллекту» флагманских LLM и каналом доступа в большой интернет. Тут есть один нюанс, OpenClaw поддерживает ряд каналов для коммуникации, среди которых Telegram, Slack, Discord и другие запрещённые ресурсы, которые требуют установки средств обхода блокировки (крайне не рекомендую это делать). Давайте подумаем: а какой же канал становится естественным кандидатом для пользователей из РФ?
Ответ довольно очевидный это старый добрый VK [3]! Можно посмотреть и в сторону MAX [4], но в нём есть серьёзное ограничение для разработчиков: боты доступны [5] только для предпринимателей и юридических лиц. То есть для независимого разработчика, исследователя или просто человека, который хочет быстро поднять личного AI‑ассистента, это не самый удобный выход. VK в этом смысле выглядит чуть ли не единственной точкой входа.
Итак, имея профиль во ВКонтакте и периодические включения белых списков, идея «почему бы не завести OpenClaw в VK как полноценный канал общения» выглядит не экзотикой, а вполне логичным шагом.
Именно поэтому я сделал vk-plugin [6] — канал коммуникации через ботов VK в OpenClaw. Кстати, насколько мне известно, это первый такой плагин для OpenClaw в мире.
Если совсем коротко, OpenClaw — это AI-система, реализующая функции персонального AI‑ассистента, с которым можно взаимодействовать через разные каналы общения. Большая языковая модель (англ. large language model, LLM) здесь не висит в вакууме, а получает:
каналы [7] коммуникации,
маршрутизацию [8] сообщений,
инструменты автоматизации [9] задач,
инструменты [12] и SKILLS [13],
доступ к внешнему миру через плагины [14].
Важно понимать, что OpenClaw не является языковой моделью и даже фреймворком для разработки AI-агентов. Сила OpenClaw в другом: разработчики очень грамотно упаковали набор инженерных приёмов, благодаря которым пользователь начинает ощущать, что агент можно постепенно улучшать под себя. Причём без написания кода, дообучения весов модели и других тяжеловесных операций.
За счёт чего возникает этот эффект? Во-первых, через Markdown-спеки [15] (англ. Markdown specs) и другие текстовые артефакты, которые становятся внешней памятью [16] и набором правил поведения [17] агента. Во-вторых, через инструменты (англ. tools), файловую систему, Git, конфиги и сохранённое состояние (при этом создатель OpenClaw даёт понять [18], что MCP тут вовсе не панацея, а скорее излишняя обёртка). В-третьих, за счёт сильных фундаментальных LLM, которые уже умеют достаточно много, если им дать правильный контекст. В результате пользователь воспринимает это как «самоулучшение агента», хотя строго технически правильнее говорить об итеративном улучшении поведения [19] агента через спецификации, контекст и рабочее окружение.
И вот это, как по мне, и есть самое интересное. Без значительной технической новизны OpenClaw даёт очень важную продуктовую новизну: превращает LLM в личного ассистента, которого можно настраивать, дисциплинировать и постепенно делать полезнее в реальных задачах без написания кода и, тем более, дообучения моделей.
Если упростить, то схема выглядит так:
Есть ядро (core), которое умеет загружать плагины, поднимать runtime и управлять конфигурацией.
Есть каналы (channels): Telegram, Slack, Discord (и теперь VK).
Есть маршрутизация (routing), которая решает, куда положить входящее сообщение и какой агент должен его обработать.
Есть политики доступа (англ. access policies): pairing, allowlist, disabled и так далее.
Есть провайдер модели (LLM provider), который можно менять на лету.
За счёт такой архитектуры добавление нового канала заключается в реализации понятного интерфейса взаимодействия. Ниже приведена диаграмма архитектуры из официального репозитория [20]:
WhatsApp / Telegram / Slack / Discord / Google Chat / Signal / iMessage / BlueBubbles / IRC / Microsoft Teams / Matrix / Feishu / LINE / Mattermost / Nextcloud Talk / Nostr / Synology Chat / Tlon / Twitch / Zalo / Zalo Personal / WeChat / WebChat
│
▼
┌───────────────────────────────┐
│ Gateway │
│ (control plane) │
│ ws://127.0.0.1:18789 │
└──────────────┬────────────────┘
│
├─ Pi agent (RPC)
├─ CLI (openclaw …)
├─ WebChat UI
├─ macOS app
└─ iOS / Android nodes
VK-плагин встраивается в OpenClaw как channel plugin. Его задача:
поднять Long Poll API [21] для VK сообщества,
принять входящие сообщения,
привести их к внутреннему формату OpenClaw,
применить политику доступа к ассистенту,
передать сообщение в ядро,
отправить ответ пользователю обратно в VK.
Пожалуй, это одна из самых полезных частей OpenClaw. По умолчанию мы не хотим, чтобы любой случайный пользователь мог просто так написать боту и получить доступ к агенту.
Поэтому используется механика pairing:
Пользователь пишет в бот.
Бот отвечает кодом привязки.
Оператор одобряет код через CLI.
После этого пользователь попадает в разрешённый список (англ. allowlist).
Это довольно прагматичный подход: с одной стороны, не нужно городить отдельную административную панель, с другой — минимизируется человеческий фактор и снижается риск случайного открытия канала наружу.
Теперь к делу.
Я рекомендую устанавливать OpenClaw только на виртуальной машине, изолированной от любой чувствительной информации и не имеющей доступ к данным, которые вы не готовы потерять.
Имейте ввиду, если хотите подключить OpenClaw к флагманским моделям, то потребуется создавать виртуалку у провайдера с соответствующей географией доступности и обзавестись подпиской (например, Codex и т.д.).
npm install -g openclaw@latest
openclaw onboard --install-daemon
openclaw plugins install vk-plugin
Для работы с чат-ботами нам нужен токен сообщества VK [22] с правами на сообщения и включённый Long Poll API.
Создаём файл с токеном:
mkdir -p ~/.openclaw/workspace/secrets/
nano ~/.openclaw/workspace/secrets/vk-token.txt
В файл кладём только сам токен, без JSON, без кавычек, без комментариев.
openclaw channels add --channel vk --token-file ~/.openclaw/workspace/secrets/vk-token.txt
openclaw channels status
Ожидаемый результат:
канал vk присутствует в списке,
нет ошибки [23] о пропавшем токене,
VK определяется как настроенный канал.
Пишем боту в VK. В ответ он присылает код привязки.
Дальше одобряем его через CLI:
openclaw pairing approve vk APPROVALCODE
После этого пользователь может писать боту как авторизованный источник.
Если посмотреть на поток данных чуть глубже, то всё выглядит примерно так:
VK Long Poll API отдаёт событие.
Плагин нормализует входящий апдейт.
OpenClaw проверяет политику доступа: pairing / allowlist / disabled.
Если доступ разрешён, сообщение уходит в routing.
Агент получает контекст и генерирует ответ через LLM provider.
Плагин отправляет текстовый ответ обратно пользователю в VK.
В виде псевдосхемы:
VK User Message -> VK Long Poll Event -> vk-plugin -> OpenClaw Core -> Agent/LLM -> vk-plugin -> VK User Response
За счёт этого архитектурного разделения сам канал остаётся достаточно тонким. Он не решает за ядро, какой агент выбрать и как устроена память. Он просто аккуратно доставляет события туда и обратно.
Без этого никуда.
В отличие от каналов, включенных в основную поставку OpenClaw, vk-plugin имеет следующие ограничения:
не умеем обрабатывать изображения;
не умеем обрабатывать голосовые сообщения;
не умеем обрабатывать входящие файлы.
Призываю всех контрибьютить на гитхабе, чтобы превратить ограничения в точки роста и новые фичи: https://github.com/perevalov/openclaw-vkbots-plugin [24].
Итак, мы рассмотрели довольно практичный кейс: как превратить VK в канал для OpenClaw во времена белых списков в рунете:
OpenClaw даёт архитектурную основу для персонального ассистента, который может ходить в большие модели и большой интернет
установка и конфигурация сводятся к нескольким CLI-командам;
в текущих условиях такой канал выглядит не экзотикой, а вполне прагматичным шагом к доступности интеллекта [25].
Важно, я категорически не рекомендую использовать данную статью, как инструкцию для доступа к запрещённым ресурсам — это небезопасно и нарушает законы Российской Федерации.
В следующих статьях хочу отдельно разобрать:
«продовую» эксплуатацию OpenClaw в рамках своей работы тимлида;
интеграцию с локальными моделями через Ollama и vLLM.
Если тема статьи откликается — можно смело обсуждать, спорить и допиливать дальше.
NPM пакет: https://www.npmjs.com/package/vk-plugin [6]
GitHub: https://github.com/perevalov/openclaw-vkbots-plugin [24]
Автор: perevalov_a
Источник [26]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/27892
URLs in this post:
[1] белые списки: https://www.rbc.ru/life/news/69bbd99d9a7947257bc17c01
[2] OpenClaw: https://github.com/openclaw/openclaw
[3] VK: https://vk.com/
[4] MAX: https://max.ru/
[5] доступны: https://help.max.ru/help/bots
[6] vk-plugin: https://www.npmjs.com/package/vk-plugin
[7] каналы: https://docs.openclaw.ai/channels
[8] маршрутизацию: https://docs.openclaw.ai/concepts/architecture
[9] автоматизации: https://docs.openclaw.ai/automation/hooks
[10] память: https://docs.openclaw.ai/concepts/memory
[11] состояние: https://docs.openclaw.ai/concepts/session
[12] инструменты: https://docs.openclaw.ai/tools
[13] SKILLS: https://docs.openclaw.ai/tools/skills
[14] плагины: https://docs.openclaw.ai/tools/plugin
[15] Markdown-спеки: https://en.wikipedia.org/wiki/Spec-driven_development
[16] памятью: http://www.braintools.ru/article/4140
[17] поведения: http://www.braintools.ru/article/9372
[18] даёт понять: https://youtu.be/4uzGDAoNOZc?si=2SYCb-obZqwHUR5S
[19] поведения: http://www.braintools.ru/article/5593
[20] репозитория: https://github.com/openclaw/openclaw?tab=readme-ov-file#how-it-works-short
[21] Long Poll API: https://dev.vk.com/ru/api/bots-long-poll/getting-started
[22] токен сообщества VK: https://dev.vk.com/ru/api/bots/getting-started#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BA%D0%BB%D1%8E%D1%87%D0%B0%20%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0
[23] ошибки: http://www.braintools.ru/article/4192
[24] https://github.com/perevalov/openclaw-vkbots-plugin: https://github.com/perevalov/openclaw-vkbots-plugin
[25] интеллекта: http://www.braintools.ru/article/7605
[26] Источник: https://habr.com/ru/articles/1016094/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1016094
Нажмите здесь для печати.