Сложность: средняя · Время: ~ 20 минут · Результат: освоить ключевые настройки подключения Hermes на всех платформах
Вы когда-нибудь думали — один и тот же AI‑ассистент, который одновременно работает в Telegram, Feishu и WeCom, и при этом разворачивается всего один раз? Hermes Agent это позволяет.
Это самообучающийся AI Agent с открытым исходным кодом от Nous Research. Одна из его главных особенностей — встроенный единый шлюз сообщений для всех платформ. Вам достаточно запустить один процесс на сервере — и вы сразу подключаете 10+ платформ, включая Telegram, Discord, Slack, Feishu, WeCom, Signal, WhatsApp и др. Сообщения автоматически маршрутизируются, память между платформами общая, настройка выполняется один раз и действует постоянно.
В этой статье мы вместе подключим все три самых популярных платформы — Telegram, Feishu (Lark) и корпоративный WeCom — полностью.
Целевая аудитория
Эта статья будет полезна следующим разработчикам:
- Тем, у кого уже есть базовые знания Linux / командной строки, и кто хочет самостоятельно хостить AI Agent на сервере
- Независимым разработчикам или небольшим командам, которым нужен доступ к сообщениям на нескольких платформах
- Командам, которые оценивают Hermes Agent как замену OpenClaw
TIP
Если у вас ещё нет LLM API Key, рекомендуем получить его в Defapi. На Defapi Claude Opus 4.6 стоит $2.5 за ввод / $12.5 за вывод за миллион токенов — вдвое дешевле, чем официальные цены. Очень выгодное соотношение цены и качества. Поддерживаемые протоколы интерфейсов см. в документации Defapi Claude.
Ключевые зависимости и окружение
| Зависимость | Описание |
|---|---|
| Python | 3.11+ (установочный скрипт всё настроит автоматически) |
| Операционная система | Linux (Ubuntu 22.04+), macOS или WSL2 |
| Аккаунты платформ | Telegram Bot Token / Feishu корпоративное приложение / WeCom |
| LLM API Key | Рекомендуется Defapi (Claude Opus 4.6 — полцены) |
| Docker | Необязательно; начиная с v0.6.0 контейнерная сборка официально поддерживается |
WARNING
На Windows «из коробки» не поддерживается. Установите WSL2, а затем запускайте всё в терминале WSL2.
Полная структура проекта
hermes-agent/
├── scripts/
│ └── install.sh # скрипт для установки «в один клик»
└── ~/.hermes/ # главная директория настроек (создаётся автоматически после установки)
├── config.yaml # ключевая конфигурация (модель, набор инструментов)
├── .env # API Keys (не отправляйте в Git!)
├── skills/ # директория навыков
├── memory/ # постоянная память
├── sessions/ # история сессий (FTS5 полнотекстовый поиск)
└── gateway/ # настройки шлюза (отдельные YAML для каждой платформы)
├── telegram.yaml
├── feishu.yaml
└── wecom.yaml
Пошаговая инструкция
Шаг 1: установка Hermes Agent «в один клик»
На Linux / macOS / WSL2 выполните официальный установочный скрипт:
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
Установочный скрипт автоматически настроит Python, Node.js и все зависимости — никакого ручного вмешательства на всём пути не потребуется. После завершения перезагрузите shell:
source ~/.bashrc # для пользователей bash
source ~/.zshrc # для пользователей zsh
Проверьте, что установка прошла успешно:
hermes doctor
TIP
hermes doctor автоматически диагностирует проблемы окружения — версию Python, API Key, сетевую связность, зависимости инструментов и т. п. Настоятельно рекомендуется выполнить это на первом запуске.
Шаг 2: настройка LLM Provider — подключаем Defapi
Далее нужно указать Hermes, где искать большую языковую модель. Запишем API Key в файл .env:
hermes config set ANTHROPIC_API_KEY <your-defapi-key>
Defapi совместим с протоколом интерфейса Anthropic v1/messages, и Hermes может подключаться напрямую. Также можно интерактивно выбрать модель и Provider с помощью команды hermes model:
hermes model
# интерактивный выбор:
# 1. Nous Portal
# 2. OpenRouter (200+ моделей)
# 3. OpenAI
# 4. Defapi / пользовательский endpoint
# 5. Другое...
Если используете Defapi, в интерактивном меню выберите пользовательский endpoint (Custom) и укажите:
API Endpoint: https://api.defapi.org
Model: anthropic/claude-opus-4.6
WARNING
Файл .env содержит ваш API Key — ни в коем случае не отправляйте его в Git‑репозиторий. Если вы запускаете через Docker, передавайте ключ через переменные окружения или Docker Secrets, а не записывайте напрямую в Dockerfile.
Шаг 3: подключаем первую платформу — Telegram Bot
Это самый простой вариант для проверки: у Telegram Bot API открытый доступ, поэтому не нужна корпоративная сертификация.
3.1 Создаём бота
В Telegram найдите @BotFather, отправьте /newbot, затем задайте имя бота по подсказкам и получите BOT_TOKEN. Формат примерно такой: 123456789:ABCdefGHIjklMNOpqrsTUVwxyz.
3.2 Настраиваем шлюз Hermes
hermes gateway setup
# выбираем telegram и переходим в интерактивную настройку
Или создайте вручную ~/.hermes/gateway/telegram.yaml:
platform: telegram
enabled: true
bot_token: "123456789:ABCdefGHIjklMNOpqrsTUVwxyz"
# Контроль доступа: разрешены только определённые пользователи
allowed_users:
- your_telegram_username
# Настройки безопасности
require_approval_for_dangerous_tools: true
3.3 Проверка
После запуска шлюза отправьте боту сообщение:
hermes gateway start
# или запуск в фоне:
hermes gateway start --daemon
В Telegram отправьте боту /new — бот должен ответить приветственным сообщением. Отправьте короткое сообщение на русском, например «привет», и посмотрите, отвечает ли AI.
TIP
Если бот не отвечает, проверьте: hermes gateway status (состояние), hermes logs (последние логи). Частые причины — неверно введён Bot Token или порт занят.
Шаг 4: подключаем Feishu (корпоративное приложение Lark)
Подключение Feishu чуть сложнее: нужно создать в Feishu Open Platform корпоративное приложение (self-built app).
4.1 Создаём приложение в Feishu Open Platform
- Откройте Feishu Open Platform и создайте корпоративное self-built приложение
- В разделе «Документы и базовая информация» получите
App IDиApp Secret - Включите возможности «бот»
4.2 Настраиваем подписку на события
В разделе «Подписки на события» для приложения:
- URL для запроса:
https://ваш_домен/gateway/feishu/webhook - Выбор событий:
im.message.receive_v1(получение сообщений)
WARNING
Feishu требует, чтобы callback URL был доступен из публичной сети по HTTPS. Если у вашего сервера нет публичного доменного имени, используйте ngrok для временного проброса во внутреннюю сеть: ngrok http 8080, а затем укажите сгенерированный HTTPS‑адрес в Feishu.
4.3 Устанавливаем приложение в компанию
В разделе «Управление версиями и публикация» создайте версию и опубликуйте её — иначе бот не сможет получать сообщения.
4.4 Настраиваем шлюз Hermes
hermes gateway setup
# выбираем feishu; в интерактивной форме укажите App ID и App Secret
Отредактируйте вручную ~/.hermes/gateway/feishu.yaml:
platform: feishu
enabled: true
app_id: "cli_xxxxxxxxxxxxxx"
app_secret: "xxxxxxxxxxxxxxxxxxxx"
verification_token: "your_verification_token"
# Шифрование сообщений (опционально, но рекомендуется)
encrypt_key: "your_encrypt_key"
# Разрешённые группы и пользователи
allowed_chats: []
require_mention: false
4.5 Проверка
В Feishu отправьте боту /new и проверьте, есть ли ответ. Формат сообщений в Feishu отличается от Telegram: бот поддерживает карточки с расширенным форматированием, а Hermes автоматически адаптирует сообщения.
Шаг 5: подключаем корпоративный WeCom (WeCom)
WeCom подключается похоже на Feishu — также используется режим callback Webhook.
5.1 Создаём приложение в админке WeCom
- Войдите в административную панель WeCom
- Перейдите в «Управление приложениями» → «Создать приложение» → выберите «Корпоративное self-built»
- Получите
AgentId,SecretиCorpIdкомпании - Настройте «Доверенные IP» на IP вашего сервера
5.2 Настраиваем приём сообщений
В настройках приложения включите режим «Приём сообщений»:
- Укажите
URL:https://ваш_домен/gateway/wecom/webhook - Выберите «совместимый режим» или «режим событий»
5.3 Настраиваем шлюз Hermes
# ~/.hermes/gateway/wecom.yaml
platform: wecom
enabled: true
corp_id: "wwxxxxxxxxxxxxxx"
agent_id: "1000001"
corp_secret: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
encrypt_mode: "safe" # безопасный режим требует настройки encoding_aes_key
encoding_aes_key: "your_32_char_aes_key"
5.4 Проверка
В WeCom найдите ваше приложение и отправьте тестовое сообщение.
TIP
WeCom строго требует IP‑белый список. Если вы развернули систему на облачном сервере (например, DigitalOcean или Hetzner), обязательно добавьте публичный IP сервера в список доверенных IP в админке. Иначе сообщения будут отклоняться WeCom напрямую.
Шаг 6: запускаем шлюз — один раз, три платформы
После завершения настройки всех платформ запускайте шлюз одной командой:
hermes gateway start
Hermes автоматически загрузит все включённые платформы из ~/.hermes/gateway/ и запустит все адаптеры параллельно. Если какая-то платформа не стартует (например, из-за неверного токена), это не повлияет на корректную работу остальных.
Проверить состояние платформ можно командой hermes gateway status:
Platform Status Users Messages
telegram ● online 3 142
feishu ● online 7 89
wecom ● online 2 15
Остановите шлюз через Ctrl+C или запускайте в фоне после добавления --daemon:
hermes gateway start --daemon
Шаг 7: проверка сообщений на нескольких платформах
Теперь вы можете отправлять сообщения на трёх платформах по отдельности, чтобы протестировать бота:
# Telegram
/new
привет, представься
# Feishu
/new
кто ты?
# WeCom
/new
чем я могу помочь?
Ответы на всех трёх сторонах полностью совпадают, память общая — то, что вы сказали в Telegram, знают и Feishu, и WeCom. Именно это — ключевая ценность Hermes: одна настройка — единый опыт на всех платформах.
TIP
Если вы хотите, чтобы для каждой платформы работали разные экземпляры Agent (разные модели, разные наборы навыков), можно использовать добавленную в Hermes v0.6.0 функцию Profiles: hermes -p telegram profile create. Затем в разных profile настраивайте разные модели и платформы. Profile полностью изолированы и не влияют друг на друга.
Частые проблемы и диагностика
1. Telegram Bot не получает сообщения
Симптом: бот полностью не реагирует, и в логах нет никаких записей.
Шаги диагностики:
# 1. Убедитесь, что Token правильный
hermes config get telegram.bot_token
# 2. Проверьте, что порт не занят
ss -tlnp | grep 8080
# 3. Если вы используете webhook‑режим, проверьте настройки Telegram Bot API
# Webhook URL должен быть доступен из публичной сети; для локальной разработки используйте ngrok
ngrok http 8080
# 4. Сбросьте webhook (иногда бот «залипает» на старом webhook)
curl -X POST "https://api.telegram.org/bot<YOUR_TOKEN>/deleteWebhook"
2. Ошибка валидации callback в Feishu
Симптом: в Feishu Open Platform отображается «Ошибка проверки URL callback».
Шаги диагностики:
# 1. Убедитесь, что публичный URL доступен
curl -X GET "https://your-domain.com/gateway/feishu/webhook"
# 2. Проверьте подпись/проверку Feishu
# Feishu использует AES‑шифрование сообщений, encrypt_key должен совпадать с настройками в админке
# Посмотреть логи Hermes:
hermes logs --platform feishu
WARNING
Шифровальный режим Feishu (encrypt_mode) должен совпадать с тем, что задано в админке. Если в админке выбрано «безопасный режим», то в конфигурации Hermes тоже нужно указать encrypt_mode: safe и соответствующий encoding_aes_key.
3. Сообщения WeCom без ответа
Симптом: сообщение отправлено, но ответа нет, в логах нет записей.
Шаги диагностики:
# 1. Убедитесь, что CorpId / AgentId / Secret указаны правильно
# 2. Самое важное: проверьте IP белого списка
# WeCom требует, чтобы сервер, который вызывает API, был в списке доверенных IP
# 3. Протестируйте получение AccessToken
curl "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=wwxxx&corpsecret=secret"
# Если вернётся "errmsg": "ip not in whitelist", значит IP не добавлен
4. Модель не отвечает
Симптом: сообщение бот получает, но AI не отвечает; постоянно отображается «thinking».
Шаги диагностики:
# 1. Проверка валидности API Key
curl -X POST "https://api.defapi.org/api/v1/messages" \
-H "Authorization: Bearer <your-key>" \
-H "Content-Type: application/json" \
-d '{"model":"anthropic/claude-opus-4.6","messages":[{"role":"user","content":"hi"}],"max_tokens":10}'
# 2. Проверить настройки модели
hermes config get model
# 3. Проверить fallback_providers (рекомендуется)
# Добавьте резервный Provider в ~/.hermes/config.yaml:
fallback_providers:
- provider: openrouter
api_key: "${OPENROUTER_API_KEY}"
TIP
Рекомендуется, кроме Defapi, как минимум настроить один запасной Provider. Hermes v0.6.0 поддерживает цепочечные вызовы через fallback_providers: если основной Provider таймаутит или возвращает ошибку, Hermes автоматически переключится на резервный и Agent не «отвалится».
5. Ошибки при выполнении инструментов
Симптом: бот отвечает, что не может выполнить какую-то операцию.
Шаги диагностики:
# 1. Посмотреть, какие наборы инструментов включены
hermes tools
# 2. Включить нужные наборы
hermes tools enable web_search
hermes tools enable terminal
# 3. Опасные команды требуют ручного подтверждения
# Проверьте конфигурацию:
hermes config get approval_required
# Если поставить true, все опасные команды потребуют вашего ручного подтверждения
6. Конфликт при параллельном запуске на разных платформах
Симптом: после получения сообщения одним из платформ остальные платформы тоже перестают отвечать.
Шаги диагностики:
Механизм token-lock в Hermes v0.6.0 предотвращает конфликт, если два экземпляра платформы используют один и тот же Bot Token. Но если вы запускаете на нескольких машинах несколько экземпляров для одного и того же бота, тогда эта проблема возникает.
# Убедитесь, что работает только один экземпляр Hermes шлюза
ps aux | grep hermes
pkill -f hermes-agent
# Затем запустите снова
hermes gateway start
TIP
С помощью функции Profiles можно запускать для каждой платформы полностью независимые экземпляры Hermes: у каждого profile есть собственные директории конфигурации, память и сессии. Profile изолированы друг от друга — это удобно, когда в команде разные участники используют «свой» Bot.
Дальнейшее чтение / направления для углубления
Переход с OpenClaw
Если вы уже используете OpenClaw, Hermes предоставляет официальную утилиту миграции: она автоматически импортирует SOUL.md, MEMORY.md, Skills, API Keys и настройки платформ сообщений.
hermes claw migrate # интерактивная полная миграция
hermes claw migrate --dry-run # сначала предпросмотр
hermes claw migrate --preset user-data # не переносить чувствительную информацию
Режим MCP Server
В Hermes v0.6.0 добавлена возможность MCP Server: одной командой можно «выставить наружу» инструменты Hermes.
hermes mcp serve
# поддерживаются два протокола передачи: stdio и Streamable HTTP
После подключения Cursor, VS Code, Zed и другие IDE смогут вызывать все инструменты и диалоговые возможности Hermes через протокол MCP.
Пользовательская система Skills
Система Skills в Hermes поддерживает автоматическое создание навыков на основе описания на естественном языке. Также можно написать навыки вручную:
# Посмотреть имеющиеся навыки
hermes skills
# Просмотреть Skills Hub (сообщество/маркет навыков)
/skills
# Установить community skills из agentskills.io
Cron по расписанию
Задавайте расписание задач естественным языком: Hermes автоматически выполнит их и отправит результат на любую платформу.
# Каждый день в 8 утра отправлять Telegram отчёт о погоде
/cron "Every day at 8am, summarize today's weather and send to me" --platform telegram
Итог
Дизайн полного платформенного шлюза в Hermes Agent очень удачный: вам достаточно поддерживать одну конфигурацию, чтобы один и тот же экземпляр Agent работал на любых нескольких платформах сообщений. Память общая между платформами, настройка делается один раз, а потребление ресурсов заметно ниже, чем при запуске нескольких независимых Bot.
Если вы всё ещё используете OpenClaw или ищете действительно сильный open-source AI Agent, Hermes стоит того, чтобы выделить 20 минут на тест. В связке с Defapi (Claude Opus 4.6 со скидкой 50%) ежемесячные расходы можно сократить вдвое, а качество при этом не теряется.