Канал-плагин для подключения AI-ассистента OpenClaw к мессенджеру MAX (ex-VK Teams / ICQ New).
Плагин позволяет общаться с OpenClaw-ботом через мессенджер MAX — так же, как через Telegram. Поддерживает:
- Приём и отправку текстовых сообщений
- Вложения (фото, видео, аудио, файлы)
- Inline-кнопки (callback / link)
- Форматирование (markdown / HTML)
- Long polling и Webhook
- Мультиаккаунт
- DM-security и pairing
openclaw-max/
├── index.ts # Точка входа плагина
├── openclaw.plugin.json # Манифест плагина
├── package.json
├── tsconfig.json
├── README.md
├── src/
│ ├── types.ts # TypeScript-типы MAX Bot API
│ ├── polling.ts # Long polling (приём обновлений)
│ ├── api.ts # HTTP-клиент MAX API (send/edit/delete/upload)
│ ├── sender.ts # Высокоуровневые send-хелперы
│ ├── channel.ts # OpenClaw channel adapter
│ ├── config.ts # Резолвинг аккаунтов из конфига
│ ├── media.ts # Скачивание входящих вложений
│ └── buttons.ts # Inline-кнопки и callback-ответы
└── scripts/
├── test-api.mjs # Проверка токена и API
└── test-send.mjs # Тест send + edit + delete
- Зайти на business.max.ru (нужно юрлицо/ИП)
- Создать профиль организации и пройти верификацию
- Раздел Чат-боты → Создать (название, лого 500x500, описание)
- Дождаться модерации (до 48ч по рабочим дням)
- После модерации: Чат-боты → Интеграция → Получить токен
# Скопировать папку плагина в extensions
cp -r openclaw-max ~/.openclaw/extensions/openclaw-max
# Загрузить плагин
openclaw plugins load ~/.openclaw/extensions/openclaw-maxДобавить секцию в ~/.openclaw/openclaw.json:
openclaw gateway restart| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
botToken |
string | да | API-токен бота |
allowFrom |
string[] | да* | Список разрешённых user_id |
dmSecurity |
string | нет | Политика: allowlist / open / pairing |
* Обязательно при dmSecurity: "allowlist" (по умолчанию).
- Найти бота в MAX по нику (например
@idИНН_bot) - Нажать Старт или отправить любое сообщение
- Бот ответит, если ваш
user_idвallowFrom
Написать боту, затем посмотреть в логах OpenClaw:
openclaw logs --follow
# В логах будет: sender.user_id: 12345678Или запустить тест-скрипт:
MAX_BOT_TOKEN=xxx node scripts/test-api.mjs
# В разделе updates будет виден ваш user_id- allowlist (по умолчанию): только user_id из списка могут общаться с ботом
- open: любой пользователь MAX может писать боту
- pairing: новый пользователь получает код, который нужно подтвердить у владельца
Можно подключить несколько ботов MAX — например, рабочий и личный:
{
"channels": {
"max": {
// Аккаунт по умолчанию
"botToken": "токен_основного_бота",
"allowFrom": ["12345678"],
// Дополнительные аккаунты
"accounts": {
"zaya": {
"botToken": "токен_второго_бота",
"allowFrom": ["87654321"],
"dmSecurity": "open"
}
}
}
}
}Обращение к конкретному аккаунту:
openclaw --account zaya send "Привет из второго бота"
- Node.js 18+ (встроенный fetch)
- TypeScript 5+
cd openclaw-max
npm install
npm run build # npx tscnpx tsc --noEmit# Проверить бота: GET /me + GET /updates
MAX_BOT_TOKEN=xxx node scripts/test-api.mjs
# С отправкой тестового сообщения в чат
MAX_BOT_TOKEN=xxx node scripts/test-api.mjs <chat_id># Полный цикл: отправить → подождать → отредактировать → подождать → удалить
MAX_BOT_TOKEN=xxx node scripts/test-send.mjs <chat_id> "Текст сообщения"import { startPolling } from "./polling.js";
const stop = startPolling("мой_токен", async (update) => {
console.log("От:", update.message.sender?.user_id);
console.log("Текст:", update.message.body.text);
});
// Остановить через 60 сек:
setTimeout(stop, 60_000);| Метод | Endpoint | Описание |
|---|---|---|
| GET /me | Информация о боте | user_id, name, username |
| GET /updates | Long polling | marker, timeout, types |
| POST /messages | Отправить | ?chat_id или ?user_id |
| PUT /messages | Редактировать | ?message_id (до 24ч) |
| DELETE /messages | Удалить | ?message_id (до 24ч) |
| POST /answers | Ответ на callback | ?callback_id |
Авторизация: заголовок Authorization: <token>
Лимит: 30 запросов/сек
Документация: dev.max.ru/docs-api
- Яков (@Helpdesk_VP_bot) — архитектура, координация
- Банзай (@KotBanzaiBot) — реализация модулей, типы, тесты
- openclaw-max subagent — интеграция с OpenClaw Plugin SDK
{ "channels": { "max": { // Токен бота из business.max.ru → Чат-боты → Интеграция "botToken": "ваш_токен_бота", // Список user_id, которым разрешено писать боту // Узнать свой user_id: написать боту, посмотреть в логах "allowFrom": ["12345678"], // Политика DM-доступа: // "allowlist" — только из allowFrom (по умолчанию) // "open" — любой может писать // "pairing" — новые контакты проходят pairing-код "dmSecurity": "allowlist" } } }