Как запустить Hermes AI Agent на VPS: пошаговое руководство

Пошаговая установка Hermes AI Agent на VPS: Telegram-бот на бесплатных LLM-моделях, автозапуск, настройка OpenRouter. Проверено на is*hosting.

Александра И. 26 мая 2026 8 мин
Как запустить Hermes AI Agent на VPS: пошаговое руководство
Содержание

Свой AI-ассистент в Telegram. Работает 24/7 на VPS. Использует бесплатные модели — $0 за API. Единственная статья расходов — сам сервер. Ниже полная инструкция с нуля, даже если вы ни разу не открывали терминал.

Hermes Agent — open-source AI-агент от Nous Research. Подключается к Telegram (а еще к Discord, Slack, WhatsApp — но здесь разберем Telegram), работает на любом Linux-сервере и поддерживает десятки LLM-провайдеров, включая бесплатные (мы будем использовать OpenRouter). По сути, ваш личный ChatGPT-бот, только селф-хостинг и полный контроль.

Мы прогнали весь процесс установки на VPS от is*hosting. В гайде — каждый шаг, включая ошибки, на которые мы наступили, и способы их починить.

Что понадобится

  • VPS от is*hosting (тариф Medium или выше)
  • Компьютер на Mac или Windows
  • Аккаунт в Telegram
  • Аккаунт на OpenRouter (бесплатно)
  • Около 20 минут

Шаг 1. Заказать VPS

Заходите на is*hosting и берете тариф Medium VPS:

  • CPU: 3 vCPU (Xeon 3×2.60 GHz)
  • RAM: 4 ГБ
  • Диск: 40 ГБ NVMe
  • Трафик: безлимитный, 1 Gbps
  • ОС: Ubuntu 24
  • Локация: любая, ближайшая к вам

Цена: $24.99/мес (или $21.24/мес на годовом плане).

Почему Medium? Hermes тянет за собой Python, Node.js и фоновый процесс AI-шлюза, который висит в памяти постоянно. На Lite (1 ГБ RAM) будет тесно.

После оплаты на почту придут IP-адрес и root-пароль. Сохраните оба.

VPS

Больше мощности, меньше затрат. VPS с NVMe, 40+ локаций, с управлением или без — выбор за вами.

Купить VPS

Шаг 2. Подключиться к серверу по SSH

Mac: откройте Terminal (Cmd+Space → наберите «Terminal» → Enter).

Windows: скачайте Tabby или используйте PowerShell.

Введите:

ssh root@IP_ВАШЕГО_VPS

Замените IP_ВАШЕГО_VPS на реальный IP из письма. Пример:

При первом подключении спросят: «Are you sure you want to continue connecting?» — пишете yes, жмете Enter.

Затем вставляете пароль. Пароль не отображается на экране — это нормально, так работает безопасность в терминале. Вставляйте и жмите Enter.

Когда увидите root@server:~# — вы внутри.

Шаг 3. Установить Hermes Agent

Одна команда ставит все — Python, Node.js, Git и сам Hermes:

curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

Дождитесь завершения. Инсталлер покажет прогресс по мере установки зависимостей.

Важно: официальный URL установки — на GitHub. В некоторых старых гайдах фигурирует hermes-agent.org/install.sh — этот адрес сломан и выдает ошибку syntax error near unexpected token. Используйте GitHub-ссылку выше.

После установки Hermes автоматически запустит Setup Wizard.

Шаг 4. Пройти Setup Wizard

Визард проведет через настройку. Вот что выбирать на каждом экране:

Тип установки

Выберите Quick setup — provider, model & messaging и нажмите Enter.

Тип установки

Inference Provider

Выберите OpenRouter (100+ models, pay-per-use) из списка.

Выбор OpenRouter из списка провайдеров

API-ключ OpenRouter

Визард запросит API-ключ OpenRouter.

API-ключ OpenRouter

  1. Перейдите на openrouter.ai/keys.
  2. Зарегистрируйтесь (вход через Google работает).
  3. Нажмите Create Key.
  4. Скопируйте ключ (начинается с sk-or-...).

Вставьте его в терминал и нажмите Enter.

Выбор модели

Визард покажет список моделей с ценами. Прокрутите вниз — бесплатные помечены как free. По состоянию на май 2026, рабочие бесплатные модели:

  • nvidia/nemotron-3-super-120b-a12b:freeрекомендуем, проверена и работает
  • z-ai/glm-5.1
  • openrouter/owl-alpha

Можно также выбрать «Enter custom model name» внизу списка и ввести идентификатор модели вручную.

Выбор модели

Имейте в виду: бесплатные модели на OpenRouter появляются и исчезают. Во время нашего тестирования deepseek/deepseek-chat-v3.1:free возвращала 404 (удалена из OpenRouter), google/gemini-2.0-flash-exp:free тоже не заработала. Nvidia Nemotron заработала с первого раза. Если выбранная модель не работает, переключить можно потом командой:hermes config set model.default MODEL_NAME

Terminal Backend

Выберите Keep current (local). VPS выполняет команды напрямую, контейнеры не нужны.

Terminal Backend

Messaging Platform

Выберите Set up messaging now (recommended).

Настроить мессенджер сейчас

Можно пропустить настройку Telegram и перейти к финальному экрану. У нас именно так и произошло. Telegram настроим руками в шагах 5 и 6.

Шаг 5. Создать Telegram-бота

До или во время визарда вам нужен токен Telegram-бота:

  1. Откройте Telegram, найдите @BotFather.
  2. Нажмите Create a New Bot (или отправьте /newbot).
  3. Придумайте отображаемое имя (любое).
  4. Придумайте username (должен заканчиваться на bot, например myhermes_bot).
  5. BotFather выдаст токен — скопируйте его.

Создание Telegram-бота

Храните токен в безопасности. Любой, у кого он есть, может управлять вашим ботом.

Шаг 6. Настроить Telegram Gateway

Если визард уже спрашивал токен Telegram — этот шаг выполнен. Если вы пропустили настройку, запустите:

hermes gateway setup

Откроется конфигурация мессенджеров. Выберите Telegram:

Настройка Telegram Gateway

Дальше система:

  • Запросит токен Telegram-бота — вставьте токен от BotFather.
  • Запросит разрешенные user ID — это ограничивает, кто может использовать бота.

Чтобы узнать свой Telegram user ID: отправьте любое сообщение боту @userinfobot — он ответит числовым ID.

Введите свой ID, чтобы бот работал только для вас. Или оставьте поле пустым для открытого доступа (ограничить можно позже).

  • Спросит про home channel — введите Y, чтобы использовать ваш личный чат как канал уведомлений.
  • Покажет список платформ — выберите Done (Discord, Slack и прочее подключать не нужно пока).

Настройка Telegram Gateway

Шаг 7. Установить и запустить сервис Gateway

Визард спросит:

«Start the gateway now?» — отвечайте Y

«Start automatically on login/boot as a systemd service?» — отвечайте Y

«Choose how the gateway should run in the background» — выберите System service. На VPS это правильный выбор: бот стартует автоматически при перезагрузке сервера.

Выбор режима запуска gateway

«Run the system gateway service as which user?» — введите root

Готово. Gateway запущен.

Шаг 8. Протестировать бота

Откройте Telegram. Найдите бота по username, который создали. Отправьте «hi».

Тестирование бота

Если все работает, бот ответит.

Траблшутинг

логи → проверка конфига → правка → рестарт

Кривой конфиг, не та модель, мусорные символы в YAML — ничего из этого не дает внятной ошибки. Зато алгоритм починки тоже один: логи → проверка конфига → правка → рестарт.

«The model provider failed after retries»

Самая частая ошибка. Бот работает, но LLM не отвечает.

Траблшутинг

Смотрим логи:

journalctl -u hermes-gateway -n 30 --no-pager

Что означают коды ошибок:

  • HTTP 404: No endpoints found for MODEL_NAME — модель удалена из OpenRouter. Переключите модель.
  • HTTP 400 — плохой запрос. Обычно означает, что поле модели пустое или конфиг провайдера сломан. См. «Битый конфиг» ниже.
  • HTTP 429 — рейт-лимит. Подождите пару минут или переключитесь на другую бесплатную модель.
  • HTTP 401 — невалидный API-ключ. Перепроверьте ключ OpenRouter.

Переключить модель:

hermes config set model.default nvidia/nemotron-3-super-120b-a12b:free
sudo systemctl restart hermes-gateway

Во время нашего тестирования мы перебрали три модели, прежде чем нашли рабочую:

  1. deepseek/deepseek-chat-v3.1:free — 404, модель удалена из OpenRouter
  2. google/gemini-2.0-flash-exp:free — сбой после повторных попыток
  3. nvidia/nemotron-3-super-120b-a12b:free — заработала сразу

Бесплатные модели ротируются. Если ваша перестала работать, загляните на openrouter.ai/models и отфильтруйте по «free».

Битый конфиг: мусорные символы в config.yaml

Подлый баг. Если вставить текст в nano из некоторых источников, невидимые UTF-8 символы могут оказаться в начале файла. Hermes пытается распарсить YAML, ломается на поврежденном фрагменте и грузится без основной модели. Все, что дальше по цепочке, перестает работать.

Как обнаружить:

head -c 20 /root/.hermes/config.yaml | xxd

Если первые байты — не 6d 6f 64 65 6c (слово model), перед ним мусор.

Как починить:

sed -i '1s/^[^a-zA-Z]*//' /root/.hermes/config.yaml

Затем проверьте через hermes config showБлок model: должен быть виден.

Общее правило: после любой ручной правки config.yaml всегда запускайте hermes config showчтобы убедиться, что Hermes действительно распарсил то, что вы написали. Визуальной проверки в nano недостаточно.

api_key_env — это имя переменной, а не сам ключ

В config.yaml в блоке providers: есть поле api_key_envЭто имя переменной окружения, в которой лежит ключ, а не сам ключ.

Неправильно:

providers:
  anthropic:
    api_key_env: sk-ant-abc123...   # ← сам ключ, НЕПРАВИЛЬНО

Правильно:

providers:
  anthropic:
    api_key_env: ANTHROPIC_API_KEY  # ← имя переменной, правильно

Сам ключ в /root/.hermes/.env. Если вставить голый ключ в api_key_env, Hermes не выдаст ошибку, а просто не сможет аутентифицироваться и провалится на другого провайдера с пустым полем модели.

provider: auto и каскадные отказы

Hermes использует вспомогательные модели для внутренних задач: управление скиллами, сжатие сессий, триаж, апрувалы. По умолчанию они стоят в provider: auto — «используй то же, что и основная модель».

Если конфиг основной модели сломан, auto каскадирует отказ на все вспомогательные слоты. В логах начинают сыпаться HTTP 400 ошибки, даже если основной чат уже починен.

Фикс — задать явные модели для вспомогательных задач:

hermes config set auxiliary.compression.provider deepseek
hermes config set auxiliary.compression.model deepseek-v4-flash

Повторите для остальных слотов (title_generation, session_search и т.д.) или отредактируйте config.yaml напрямую:

auxiliary:
  compression:
    provider: deepseek
    model: deepseek-v4-flash
  title_generation:
    provider: deepseek
    model: deepseek-v4-flash

Предупреждение о compression model

Если у основной модели большое контекстное окно (например, Claude Sonnet — 500k токенов), а у модели сжатия маленькое (например, Haiku — 200k), Hermes будет предупреждать при каждой сессии: «Compression model context smaller than threshold.»

Фикс:

hermes config set compression.threshold 0.2

Порог ставится на 20% от контекста основной модели — с запасом влезает в окно модели сжатия.

Terminal backend: SSH сам в себя

Если визард (или кривая правка конфига) выставил terminal.backend в ssh с адресом вашего же VPS, Hermes начнет пытаться SSH-иться сам в себя для выполнения команд.

Фикс:

hermes config set terminal.backend local

Tirith блокирует безопасные команды

У Hermes есть встроенный сканер безопасности Tirith. Он перехватывает определенные паттерны — например, пайп curl в Python. Даже с включенным auto-approve Tirith может требовать подтверждения.

Если задачи бота включают получение данных с API и вы доверяете эндпоинтам:

hermes config set security.tirith_enabled false

Обратите внимание: Tirith и система апрувалов — это две разные системы. Отключение одной не отключает другую.

Полезные команды

Когда Hermes запущен, вот ваш ежедневный набор команд:

sudo systemctl status hermes-gateway     # статус gateway
sudo systemctl restart hermes-gateway    # перезапуск после изменений конфига
journalctl -u hermes-gateway -n 50       # последние логи
hermes config show                       # проверить текущий конфиг (после каждой правки!)
hermes config set model.default MODEL    # сменить модель
hermes gateway setup                     # перенастроить мессенджеры
hermes update                            # обновить до последней версии
hermes doctor                            # диагностика проблем

Как добавить других пользователей

Как добавить других пользователей

Тут у Hermes путаница. Есть две системы авторизации, и какая из них реально контролирует доступ — зависит от настройки.

Способ 1: Allowlist в .env (тот, который работает у нас)

Переменная TELEGRAM_ALLOWED_USERS в /root/.hermes/.env — настоящий привратник. Если она существует и заполнена, все, что в config.yaml, игнорируется.

Проверяем, что там сейчас:

grep -i TELEGRAM_ALLOWED /root/.hermes/.env

Чтобы добавить пользователя, редактируем .env:

nano /root/.hermes/.env

Находим TELEGRAM_ALLOWED_USERS и дописываем новый ID:

TELEGRAM_ALLOWED_USERS=154220189,987654321

Перезапускаем:

sudo systemctl restart hermes-gateway

Чтобы узнать ID нового пользователя: попросите его написать боту, затем найдите ID в логах:

journalctl -u hermes-gateway -n 30 | grep Unauthorized

Способ 2: config.yaml (может работать, а может нет)

В некоторых версиях Hermes allowed_chats читается из config.yaml:

telegram:
  allowed_chats: '154220189,987654321'

Но если в .env задан TELEGRAM_ALLOWED_USERS, то config.yaml игнорируется. Не тратьте час на перебор вариантов YAML-синтаксиса — сначала проверьте .env.

Способ 3: Pairing (для продвинутых)

В Hermes есть система pairing: новый пользователь пишет боту, получает код, а владелец подтверждает через hermes pairing approve telegram <КОД>Но pairing работает только когда allowlist пуст. Если в TELEGRAM_ALLOWED_USERS есть хоть одно значение — pairing отключен полностью.

Выберите один подход и придерживайтесь его. Allowlist в .env — самый простой.

Где Hermes хранит конфиг

У Hermes три места хранения настроек. Одна и та же настройка может лежать в нескольких местах. Когда что-то не работает, проверяйте все три:

  1. /root/.hermes/config.yaml — модель, провайдер, вспомогательные настройки, конфиг gateway.
  2. /root/.hermes/.env — API-ключи, токены Telegram, списки разрешенных пользователей.
  3. Auth-хранилище Hermes — зарегистрированные провайдеры (проверить: hermes auth list).

Ограничения бесплатных моделей

Бесплатные модели OpenRouter — это:

  • ~20 запросов в минуту, ~50 в день на модель
  • Нет распознавания изображений (vision)
  • Качество ниже, чем у Claude или GPT
  • Бесплатные модели периодически исчезают или попадают под рейт-лимиты

Для личного использования и экспериментов вполне достаточно. Когда упретесь в лимиты, пополните $10 на OpenRouter и переключитесь на платную модель:

hermes config set model.default anthropic/claude-haiku-4.5
sudo systemctl restart hermes-gateway

Claude Haiku 4.5 стоит $1/$5 за миллион токенов — несколько долларов в месяц при обычном персональном использовании.

Что вы получили

После этого гайда у вас есть:

  • VPS, работающий 24/7 в дата-центре
  • Hermes AI Agent с интерфейсом через Telegram-бота
  • Бесплатная LLM-модель ($0 за API)
  • Автозапуск при перезагрузке сервера
  • Доступ ограничен вашим Telegram-аккаунтом

Бот продолжает работать, даже когда ваш ноутбук выключен.

Что дальше

Когда освоитесь:

  • Добавьте скиллы — Hermes умеет учиться новым возможностям из markdown-файлов, которые вы напишете
  • Настройте cron-задачи — запланируйте автоматические задачи («пришли мне дневную сводку в 9 утра»)
  • Подключите другие платформы — Discord, Slack, WhatsApp, Signal
  • Переключитесь на сильные модели — Claude, GPT, DeepSeek для ответов продакшн-уровня
  • Используйте локальные модели — запустите Ollama на GPU-сервере для полностью приватного AI

Полная документация: hermes-agent.nousresearch.com/docs

По всему миру

is*hosting работает с лучшими дата-центрами по всему миру и оборудованием HI-END класса.

Посмотреть локации