- BrainTools - https://www.braintools.ru -

Я добавил поддержку VK ботов в OpenClaw

TLDR

OpenClaw набрал заметную популярность в качестве персонального AI‑ассистента с взаимодействием через мессенджеры. Вместе с тем, в Российской Федерации всё чаще замечают проблемы с доступностью некоторых платформ коммуникации, а также обсуждают белые списки [1] приложений. В данной статье мы коротко разберём архитектуру OpenClaw и на практике подключим туда канал VK ботов через разработанный мною vk-plugin для OpenClaw. Данная интеграция позволяет не терять доступ к «интеллекту» даже в эпоху суверенного интернета.

Почему вообще VK и почему именно сейчас

Вокруг персональных 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 (изображение автора)

Концептуальная схема работы OpenClaw (изображение автора)

Что такое OpenClaw в двух словах

Если совсем коротко, OpenClaw — это AI-система, реализующая функции персонального AI‑ассистента, с которым можно взаимодействовать через разные каналы общения. Большая языковая модель (англ. large language model, LLM) здесь не висит в вакууме, а получает:

Важно понимать, что OpenClaw не является языковой моделью и даже фреймворком для разработки AI-агентов. Сила OpenClaw в другом: разработчики очень грамотно упаковали набор инженерных приёмов, благодаря которым пользователь начинает ощущать, что агент можно постепенно улучшать под себя. Причём без написания кода, дообучения весов модели и других тяжеловесных операций.

За счёт чего возникает этот эффект? Во-первых, через Markdown-спеки [15] (англ. Markdown specs) и другие текстовые артефакты, которые становятся внешней памятью [16] и набором правил поведения [17] агента. Во-вторых, через инструменты (англ. tools), файловую систему, Git, конфиги и сохранённое состояние (при этом создатель OpenClaw даёт понять [18], что MCP тут вовсе не панацея, а скорее излишняя обёртка). В-третьих, за счёт сильных фундаментальных LLM, которые уже умеют достаточно много, если им дать правильный контекст. В результате пользователь воспринимает это как «самоулучшение агента», хотя строго технически правильнее говорить об итеративном улучшении поведения [19] агента через спецификации, контекст и рабочее окружение.

И вот это, как по мне, и есть самое интересное. Без значительной технической новизны OpenClaw даёт очень важную продуктовую новизну: превращает LLM в личного ассистента, которого можно настраивать, дисциплинировать и постепенно делать полезнее в реальных задачах без написания кода и, тем более, дообучения моделей.

Из чего состоит архитектура

Если упростить, то схема выглядит так:

  1. Есть ядро (core), которое умеет загружать плагины, поднимать runtime и управлять конфигурацией.

  2. Есть каналы (channels): Telegram, Slack, Discord (и теперь VK).

  3. Есть маршрутизация (routing), которая решает, куда положить входящее сообщение и какой агент должен его обработать.

  4. Есть политики доступа (англ. access policies): pairing, allowlist, disabled и так далее.

  5. Есть провайдер модели (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-плагин

VK-плагин встраивается в OpenClaw как channel plugin. Его задача:

  • поднять Long Poll API [21] для VK сообщества,

  • принять входящие сообщения,

  • привести их к внутреннему формату OpenClaw,

  • применить политику доступа к ассистенту,

  • передать сообщение в ядро,

  • отправить ответ пользователю обратно в VK.

Как работает доступ: pairing и allowlist

Пожалуй, это одна из самых полезных частей OpenClaw. По умолчанию мы не хотим, чтобы любой случайный пользователь мог просто так написать боту и получить доступ к агенту.

Поэтому используется механика pairing:

  1. Пользователь пишет в бот.

  2. Бот отвечает кодом привязки.

  3. Оператор одобряет код через CLI.

  4. После этого пользователь попадает в разрешённый список (англ. allowlist).

Это довольно прагматичный подход: с одной стороны, не нужно городить отдельную административную панель, с другой — минимизируется человеческий фактор и снижается риск случайного открытия канала наружу.

Установка VK-канала: практическая часть

Теперь к делу.

Шаг 0. Подготовка виртуальной машины

Я рекомендую устанавливать OpenClaw только на виртуальной машине, изолированной от любой чувствительной информации и не имеющей доступ к данным, которые вы не готовы потерять.

Имейте ввиду, если хотите подключить OpenClaw к флагманским моделям, то потребуется создавать виртуалку у провайдера с соответствующей географией доступности и обзавестись подпиской (например, Codex и т.д.).

Шаг 1. Устанавливаем OpenClaw и vk-plugin

npm install -g openclaw@latest
openclaw onboard --install-daemon
openclaw plugins install vk-plugin

Шаг 2. Готовим токен сообщества VK

Для работы с чат-ботами нам нужен токен сообщества VK [22] с правами на сообщения и включённый Long Poll API.

Создаём файл с токеном:

mkdir -p ~/.openclaw/workspace/secrets/
nano ~/.openclaw/workspace/secrets/vk-token.txt

В файл кладём только сам токен, без JSON, без кавычек, без комментариев.

Шаг 3. Подключаем канал

openclaw channels add --channel vk --token-file ~/.openclaw/workspace/secrets/vk-token.txt

Шаг 4. Проверяем статус каналов

openclaw channels status

Ожидаемый результат:

  • канал vk присутствует в списке,

  • нет ошибки [23] о пропавшем токене,

  • VK определяется как настроенный канал.

Подключение канала и просмотр его статуса (скриншот автора)

Подключение канала и просмотр его статуса (скриншот автора)

Шаг 5. Делаем pairing

Пример начала переписки с ассистентов (скриншот автора)

Пример начала переписки с ассистентов (скриншот автора)

Пишем боту в VK. В ответ он присылает код привязки.

Дальше одобряем его через CLI:

openclaw pairing approve vk APPROVALCODE

После этого пользователь может писать боту как авторизованный источник.

Диалог с ассистентом и первичная персонализация (скриншот автора)

Диалог с ассистентом и первичная персонализация (скриншот автора)

Что происходит под капотом

Если посмотреть на поток данных чуть глубже, то всё выглядит примерно так:

  1. VK Long Poll API отдаёт событие.

  2. Плагин нормализует входящий апдейт.

  3. OpenClaw проверяет политику доступа: pairing / allowlist / disabled.

  4. Если доступ разрешён, сообщение уходит в routing.

  5. Агент получает контекст и генерирует ответ через LLM provider.

  6. Плагин отправляет текстовый ответ обратно пользователю в 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

www.BrainTools.ru

Rambler's Top100