Skip to content
 
 

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MAX Gateway for OpenClaw / Hermes

Node.js шлюз: MAX Messenger ↔ AI-агент (OpenClaw или Hermes) через HTTP API Gateway.

Возможности

  • 🔄 Long polling → HTTP POST /v1/chat/completions
  • 📎 Отправка файлов/изображений/аудио/видео через маркер [FILE:/path]
  • 🛑 Slash-команды: /stop, /status, /model, /model reset
  • ✅ Mark seen (двойные галочки) + typing indicator
  • 👥 Группы: настройки requireMention через переменные окружения
  • 🔒 Allowlist пользователей
  • 🐛 Watchdog: авто-реконнект при сетевых ошибках (патч для @maxhub/max-bot-api)

Архитектура

Пользователь MAX → MAX API (long poll) → max-gateway (Node.js/PM2)
    → HTTP POST /v1/chat/completions
    → парсинг ответа + [FILE:] маркеров → upload → ctx.reply()

Каждый MAX-пользователь получает отдельную сессию (agent:main:max:user_XXX).

Быстрый старт

1. Установить

mkdir -p /root/max-bot-service
cp scripts/index.js scripts/package.json scripts/patch-polling.js scripts/ecosystem.config.js /root/max-bot-service/
cd /root/max-bot-service && npm install

npm install автоматически запустит patch-polling.js (postinstall), который исправляет баг в @maxhub/max-bot-api — без патча polling loop умирает при сетевых ошибках.

2. Настроить

Отредактировать ecosystem.config.jsenv:

Переменная Обязательная Описание
MAX_BOT_TOKEN Токен бота из @masterbot
OPENCLAW_TOKEN gateway.auth.token из openclaw.json
OPENCLAW_AGENT_ID ID агента (default: main)
OPENCLAW_WORKSPACE Путь к workspace агента
OPENCLAW_API Gateway URL (default: http://127.0.0.1:18789)
MAX_ALLOWED_USERS Allowlist user_id через запятую
MAX_DM_POLICY allowlist (default) или open
MAX_GROUP_SETTINGS JSON: {"chatId":{"requireMention":false}}

3. Запустить

pm2 start ecosystem.config.js
pm2 save && pm2 startup

4. Настроить агента

Прочитать references/AGENTS_SECTION.md и добавить в TOOLS.md агента — без этого агент не будет знать, как отправлять файлы в MAX.

Узнать user_id

  1. Временно поставить MAX_DM_POLICY=open
  2. Написать боту → найти в логах: pm2 logs max-gateway | grep sender=
  3. Вернуть allowlist, вписать найденный ID в MAX_ALLOWED_USERS

Диагностика

pm2 logs max-gateway --lines 30
pm2 list
curl -s http://127.0.0.1:18789/v1/models -H "Authorization: Bearer TOKEN"
Симптом Причина Решение
401 Invalid access_token Токен бота протух Новый через @masterbot
HTTP 404 API не включен gateway.http.endpoints.chatCompletions.enabled: true
Бот молчит, логов нет PM2 упал pm2 restart max-gateway
ECONNRESET / fetch failed Обрыв сети Авто-реконнект (5с → 60с)

Предварительные требования

  • OpenClaw с включённым /v1/chat/completions
  • Node.js 18+, PM2 (npm i -g pm2)
  • Бот в MAX: создать через @masterbot → получить токен

Ссылки

Лицензия

MIT

About

MAX Messenger ↔ OpenClaw/Hermes gateway (Node.js, long polling, slash commands)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages