# Hermes Agent: настройка через RouterAI и подключение Telegram-бота

Hermes Agent — открытый автономный агент от Nous Research (лицензия MIT). Он работает в терминале, в десктоп-приложении и в мессенджерах, сам пишет и улучшает навыки (skills), помнит контекст между сессиями и умеет выполнять задачи по расписанию. Из коробки Hermes предлагает подписку Nous Portal, но работает с любым OpenAI-совместимым API.

RouterAI предоставляет OpenAI-совместимый эндпоинт `https://routerai.ru/api/v1`, поэтому Hermes подключается штатным способом — как **Custom endpoint**. Один ключ RouterAI открывает весь каталог: Claude, GPT-6, Gemini, DeepSeek, Qwen, Kimi, GLM и другие модели, с оплатой в рублях и без VPN.

После настройки по этому гайду Hermes будет работать на модели из RouterAI в терминале и в десктоп-приложении, переключаться между моделями одной командой, сжимать длинный контекст дешёвой моделью и отвечать вам в Telegram.

![1.00](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/65cb14bdc8d102fef774dec7e4fe83aa.png)

> Гайд написан для Hermes Agent **v0.22.2** (октябрь 2026). Если у вас сразу VS Code, смотрите отдельную статью [Hermes Agent в VS Code через ACP](/pages/vs-code-hermes-agent-routerai-claude-gpt "Hermes Agent в VS Code") — подключение к RouterAI там то же самое.

## Требования

* macOS, Linux, WSL2 или Windows (нативно или через WSL2)
* API-ключ из [личного кабинета](/settings/keys "личного кабинета") RouterAI и положительный баланс
* Модель с контекстом **от 64 000 токенов** — Hermes отказывается стартовать на меньшем окне. У всех флагманов в RouterAI контекст 1M, проблем не будет
* Модель с поддержкой вызова инструментов (tools): без них агент не сможет запускать команды и работать с файлами

## Ключ RouterAI {#klyuch-routerai}

1. Откройте [личный кабинет](/settings/keys "личный кабинет") → «Ключи API» → «Создать новый ключ».
2. Скопируйте ключ — он показывается один раз.
3. Запомните базовый адрес API, он понадобится на всех шагах ниже:

```
https://routerai.ru/api/v1
```

![1.00](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/3b482191c4f1c9a8c6de034bf200d25a.png)

<br />

![1.00](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/36dd65c1aab55a9d27f4b06f1fe1e8eb.png)

## Установка Hermes {#ustanovka}

Есть два пути: десктоп-приложение (вместе с ним ставится и CLI) или только консольная версия.

### Вариант 1. Hermes Desktop (Windows, macOS)

Скачайте установщик на [сайте Hermes](https://hermes-agent.nousresearch.com/ "Hermes Agent") и запустите. Под Windows приложение также есть в Microsoft Store, под macOS — подписанная сборка для Apple Silicon.

Если Hermes на компьютере ещё нет, при первом запуске приложение покажет экран **Set up Hermes Desktop** с двумя вариантами: **Install Hermes locally** (скачает Hermes, создаст Python-окружение и запустит бэкенд на этом компьютере) и **Connect to existing Hermes** (подключит приложение к уже работающему шлюзу по токену сессии или через вход в браузере). Для обычной установки выберите **Install Hermes locally**.

![1.00](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/233e5d07d2c647d127e6f2af2dc25be5.png)

Когда бэкенд готов, Hermes открывает чат-онбординг на бесплатной пробной модели Nous: спрашивает имя, тему оформления, предлагает подключить приложения и плагины. Его можно пройти или нажать **Skip setup** внизу над строкой ввода — провайдера RouterAI мы всё равно настроим отдельно.

![1.00](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/415737830a658adb05db5089f45a1a12.png)

### Вариант 2. Только CLI

Linux, macOS, WSL2:

```bash
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
```

Windows (PowerShell):

```powershell
iex (irm https://hermes-agent.nousresearch.com/install.ps1)
```

Скрипт сам поставит Python, Node.js, ripgrep и остальные зависимости. Если в конце он предложит мастер настройки — выберите полный (ручной) режим, а не быстрый вход через Nous Portal: только он даёт указать свой эндпоинт. Мастер можно и пропустить — провайдера настроим командой `hermes model` в следующем разделе.

Проверьте установку:

```bash
hermes --version
```

Должно быть `v0.22.2` или новее.

![1.00](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/bb118e7bfd4484d6a0c55e16775066d6.png)

## Подключение RouterAI через мастер {#master-hermes-model}

Самый простой способ — интерактивный мастер. Запускается он **из обычного терминала, вне чата Hermes**:

```bash
hermes model
```

> Не путайте с `/model` внутри чата. `/model` только переключает уже настроенные модели, добавить нового провайдера он не умеет.

Шаги мастера:

1. В списке провайдеров прокрутите вниз и выберите **Custom endpoint (self-hosted / VLLM / etc.)**. RouterAI в списке встроенных провайдеров нет, поэтому нужен режим с ручным адресом.

   ![1.00](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/0631f67e7b84c49dd6068f11bbaaae5e.png)

2. **API base URL** — введите `https://routerai.ru/api/v1` (без завершающего слеша).

3. **API key** — вставьте ключ RouterAI. Символы при вводе не отображаются, это нормально.

   ![1.00](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/17c884a085f8b74e14a43c1bbf2c28b4.png)

4. **API mode** — выберите **chat_completions** (или оставьте автоопределение). Это стандартный OpenAI Chat Completions, его поддерживают все текстовые модели RouterAI.

5. **Model name** — введите идентификатор модели из [каталога](/models "каталог моделей") вместе с префиксом производителя, например `anthropic/claude-sonnet-5.5`. Если мастер показал список моделей с эндпоинта, можно выбрать из него.

6. **Context length** — оставьте пустым и нажмите Enter: Hermes сам определит окно модели.

7. **Display name** — имя провайдера в списках, например `RouterAI`.

8. **Select reasoning effort** — уровень рассуждений модели. Если не нужно менять, выберите **Skip (keep current)**.

   ![1.00](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/0271c2ac940e995913b8ba52cfee190c.png)

Мастер сохранит всё в `~/.hermes/config.yaml`, модель станет моделью по умолчанию.

## То же самое в конфиге {#config-yaml}

Если удобнее руками (или вы ставите Hermes на сервер скриптом), опишите RouterAI как именованного провайдера. Ключ храните отдельно, в `~/.hermes/.env` — Hermes сам кладёт туда все переменные в формате `UPPER_SNAKE`:

```bash
hermes config set ROUTERAI_API_KEY sk-ваш-ключ
```

Затем откройте конфиг командой `hermes config edit` и добавьте:

```yaml
providers:
  routerai:
    name: RouterAI
    api: https://routerai.ru/api/v1
    key_env: ROUTERAI_API_KEY
    transport: chat_completions
    default_model: anthropic/claude-sonnet-5.5

model:
  provider: custom:routerai
  default: anthropic/claude-sonnet-5.5
```

| Поле             | Значение                                                                                                                |
| ---------------- | ----------------------------------------------------------------------------------------------------------------------- |
| `api`            | Базовый адрес RouterAI `https://routerai.ru/api/v1`                                                                     |
| `key_env`        | Имя переменной с ключом в `~/.hermes/.env`. Ключ не попадает в config.yaml, и конфиг можно спокойно показывать коллегам |
| `transport`      | `chat_completions` — протокол OpenAI Chat Completions                                                                   |
| `default_model`  | Модель по умолчанию для этого провайдера                                                                                |
| `model.provider` | `custom:routerai` — ссылка на провайдера выше                                                                           |

Проверьте, что конфиг читается без ошибок:

```bash
hermes config check
hermes doctor
```

> Если в `config.yaml` уже был блок `model:` (после установки он там есть), правьте существующие ключи, а не добавляйте второй блок: в YAML повторный ключ молча перезаписывает первый.

![1.00](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/a74bed250a70ff2305fe2dc33a3bf449.png)

## Настройка в Hermes Desktop {#desktop}

Пока модель не подключена, внизу окна горит статус «Backend needs setup». Нажмите шестерёнку справа вверху — откроется экран **Let's get you setup with Hermes Agent**. RouterAI в списке провайдеров нет, поэтому нажмите **I have an API key** внизу окна и выберите **Local / custom endpoint** (self-hosted). В форме два поля: адрес `https://routerai.ru/api/v1` и ключ RouterAI. Заполните их и нажмите **Connect**. Протокол и модель в форме не запрашиваются: если нужен именно `chat_completions` или конкретная модель по умолчанию, задайте их в `~/.hermes/config.yaml`, как в разделе выше. Desktop и CLI используют один и тот же конфиг, поэтому провайдер, настроенный через `hermes model`, сразу появится и в приложении.

![1.00](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/909fae23f923b9f3698c238a4fa2e4c7.png)

После сохранения выберите модель в пикере в строке ввода чата (справа, рядом с кнопкой микрофона). Если нужной модели нет в списке, её можно вписать вручную по идентификатору из [каталога](/models "каталог") — для этого в пикере есть пункт **Add custom model…**.

![1.00](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/520f789fa3f8b073a4e6cb98a3070469.png)

Тот же интерфейс без установки приложения открывается в браузере командой `hermes dashboard`. В дашборде раздел **Config** редактирует тот же `~/.hermes/config.yaml`: модель по умолчанию, вспомогательные модели, настройки терминала и мессенджеров.

![1.00](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/a2343294d49aa71d7c11801aac8276b4.png)

## Первый запуск и проверка {#proverka}

Запустите интерактивный чат:

```bash
hermes
```

В приветственном баннере и в строке статуса под ним должна быть выбранная модель (`claude-sonnet-5.5`). При первом запуске Hermes может спросить про сбор телеметрии (Help improve Hermes?) — выберите **No thanks**. Отправьте тестовую задачу:

```
Создай файл hello_routerai.py, который печатает "Hello, RouterAI!", и запусти его
```

Hermes создаст файл, запустит его и покажет результат. На потенциально опасные команды агент спрашивает подтверждение, а безопасные, как в этом примере, выполняет сразу. Значит, модель отвечает и вызывает инструменты.

![1.00](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/d5364479885b894bad455d64be120a5d.png)

Для быстрой проверки без интерактивного режима есть однократный запуск:

```bash
hermes chat -q "Ответь одним словом: работает?"
```

## Выбор и смена модели {#vybor-modeli}

Внутри чата модель меняется командой `/model`. Для именованного провайдера используется синтаксис `custom:<провайдер>:<модель>`:

```
/model custom:routerai:openai/gpt-6.1-sol
/model custom:routerai:deepseek/deepseek-v4.1-flash-1017
```

Без аргументов `/model` откроет выбор среди уже настроенных провайдеров, а за ним — список моделей выбранного провайдера. Чтобы запустить одну сессию на другой модели, не меняя модель по умолчанию:

```bash
hermes chat --model deepseek/deepseek-v4.1-flash-1017
```

![1.00](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/986efba39a5f036a617c7072eba9f115.png)

Что выбрать для агента — цены на момент написания:

| Модель                              | Для чего                                                             | Вход, ₽ за 1 млн токенов | Выход, ₽ за 1 млн токенов |
| ----------------------------------- | -------------------------------------------------------------------- | ------------------------ | ------------------------- |
| `anthropic/claude-sonnet-5.5`       | Основная рабочая модель: код, документы, длинные агентные задачи     | 217                      | 1087                      |
| `openai/gpt-6.1-sol`                | Агентное программирование и многошаговые процессы                    | 217                      | 1087                      |
| `google/gemini-4-argon`             | Сложные рассуждения, длинные документы с таблицами и картинками      | 217                      | 1087                      |
| `deepseek/deepseek-v4.1-flash-1017` | Дешёвая модель для рутины и вспомогательных задач, понимает картинки | 5,98                     | 17                        |

Все четыре — с контекстом 1M токенов. Актуальные цены и полный список — в [каталоге моделей](/models "каталог моделей").

## Экономия: вспомогательные задачи на дешёвой модели {#auxiliary}

Кроме основного диалога, Hermes делает служебные запросы: сжимает длинную историю (compression), генерирует заголовки сессий, описывает картинки. По умолчанию всё это идёт на основную модель — то есть на флагманский тариф. Сжатие можно отдать дешёвой модели через тот же RouterAI:

```yaml
auxiliary:
  compression:
    model: deepseek/deepseek-v4.1-flash-1017
    base_url: https://routerai.ru/api/v1
    api_key: ${ROUTERAI_API_KEY}
```

Hermes подставит значение `${ROUTERAI_API_KEY}` из `.env`, сам ключ в конфиге не появится.

> ⚠ Окно модели для сжатия должно быть не меньше, чем у основной модели: в неё отправляется вся середина диалога. Иначе вызов упадёт с ошибкой контекста, и часть истории потеряется без резюме. У DeepSeek V4.1 Flash окно 1M, как и у флагманов в таблице выше.

## Telegram-бот на моделях RouterAI {#telegram}

Главная фишка Hermes — один агент во всех мессенджерах: Telegram, Discord, Slack, WhatsApp, почта и ещё полтора десятка платформ. Модель и память те же, что в терминале. Покажем на Telegram.

### Быстрый путь из десктоп-приложения

В Hermes Desktop откройте **Messaging → Telegram** и в блоке **Quick setup** нажмите **Create with QR**. Отсканируйте код в Telegram: Hermes сам создаст бота, определит ваш Telegram ID, пропишет токен и список разрешённых пользователей и перезапустит шлюз. Тот же выбор есть в веб-дашборде: раздел **Channels**, карточка Telegram.

![Hermes Desktop: Messaging → Telegram, блок Quick setup с кнопкой Create with QR](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/707d1834ca677f53c474d71a5895193c.png)

### Ручной путь

1. В Telegram откройте [@BotFather](https://t.me/BotFather), отправьте `/newbot`, задайте имя и username (должен заканчиваться на `bot`). Скопируйте токен вида `123456789:ABC...`.

   ![Диалог с BotFather: /newbot, имя, username и ответ с токеном (замазан)](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/9c17aa13840781a9c066d867d655005d.png)

2. Узнайте свой числовой ID у [@userinfobot](https://t.me/userinfobot) — это не username, а число.

3. Запустите мастер и выберите Telegram:

   ```bash
   hermes gateway setup
   ```

   Мастер спросит токен бота и разрешённые ID. То же можно прописать в `~/.hermes/.env` руками:

   ```bash
   TELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrSTUvwxYZ
   TELEGRAM_ALLOWED_USERS=123456789
   ```

4. Запустите шлюз:

   ```bash
   hermes gateway
   ```

5. Напишите боту в Telegram. Он ответит той же моделью RouterAI, что и в терминале. Модель можно сменить прямо в чате командой `/model` — Telegram покажет кнопки с провайдерами и моделями.

![Переписка с ботом в Telegram: сводка от модели RouterAI и кнопки выбора провайдера после /model](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/0bc4df7bc016bd939887dc36d749f0cf.png)

> ⚠ Обязательно заполните `TELEGRAM_ALLOWED_USERS`. Бот выполняет команды на вашей машине, и без списка разрешённых пользователей шлюз из соображений безопасности отклоняет всех. Токен бота никому не показывайте; если он утёк — `/revoke` в BotFather.

Если `api.telegram.org` недоступен из вашей сети, укажите прокси для Telegram в `config.yaml`:

```yaml
telegram:
  proxy_url: "socks5://127.0.0.1:1080"
```

Запросы к RouterAI при этом идут напрямую — прокси для моделей не нужен.

Чтобы бот работал постоянно, держите шлюз на сервере или VPS как службу: `hermes gateway install` создаёт systemd-юнит (Linux) или launchd-агент (macOS).

## Где что лежит {#gde-chto-lezhit}

| Путь                        | Что там                                                                                     |
| --------------------------- | ------------------------------------------------------------------------------------------- |
| `~/.hermes/config.yaml`     | Провайдеры, модель по умолчанию, вспомогательные модели, настройки терминала и мессенджеров |
| `~/.hermes/.env`            | Секреты: `ROUTERAI_API_KEY`, `TELEGRAM_BOT_TOKEN`, `TELEGRAM_ALLOWED_USERS`                 |
| `~/.hermes/memories/`       | Долговременная память агента (`MEMORY.md`, `USER.md`)                                       |
| `~/.hermes/skills/`         | Навыки, которые агент создал сам                                                            |
| `~/.hermes/logs/`           | Логи (`errors.log`, `gateway.log`), секреты в них автоматически скрываются                  |
| `~/.hermes/backups/config/` | Автоматические копии `config.yaml` перед изменениями                                        |

## Решение проблем {#reshenie-problem}

### Ошибка аутентификации (401)

* Проверьте, что ключ взят из [личного кабинета](/settings/keys "личного кабинета") и не удалён.
* Если ключ в `.env`, проверьте имя переменной: оно должно совпадать с `key_env` в конфиге. Посмотреть, что видит Hermes: `hermes config get model`.

### 402 Payment Required

Недостаточно средств на балансе. Пополните его в разделе [Биллинг](/settings/billing "Биллинг").

### Модель не найдена (404)

Идентификатор указывается с префиксом производителя: `anthropic/claude-sonnet-5.5`, а не `claude-sonnet-5.5`. Сверьтесь с [каталогом](/models "каталог моделей") — named-версии моделей обновляются быстрее, чем статьи о них.

### Hermes не стартует: слишком маленький контекст

Hermes требует окно от 64 000 токенов. Выберите модель с бо́льшим контекстом. Если Hermes неверно определил окно модели, задайте его явно: `model.context_length` в `config.yaml`.

### Агент пишет JSON вместо выполнения команд

Модель не поддерживает вызов инструментов. Возьмите модель, у которой в карточке каталога указан параметр `tools`, — например любую из таблицы выше.

### `/model` не видит RouterAI

`/model` в чате работает только с уже настроенными провайдерами. Выйдите из сессии (`/quit`), выполните `hermes model` в терминале и начните новую сессию.

### Бот в Telegram молчит

* Проверьте, что запущен `hermes gateway`, и посмотрите `~/.hermes/logs/gateway.log`.
* Убедитесь, что ваш ID есть в `TELEGRAM_ALLOWED_USERS`.
* В группах бот по умолчанию видит только команды и ответы на свои сообщения: отключите Group Privacy в BotFather или сделайте бота администратором, затем удалите и заново добавьте его в группу.

## На что обратить внимание {#vnimanie}

**Контекст стоит денег.** RouterAI списывает за обработанные токены, а Hermes отправляет в модель не только ваш запрос, но и системный промпт, описание инструментов, историю и контекстные файлы. После завершения этапа работы начинайте новую сессию командой `/new` и не держите один чат неделями.

**Подтверждения команд.** По умолчанию Hermes спрашивает разрешение на опасные действия. Режим `/yolo` отключает подтверждения — включайте его только в изолированной среде (например, с терминальным бэкендом `docker`).

**Агент работает с правами вашего пользователя.** На бэкенде `local` у Hermes тот же доступ к файлам, что и у вас. Для экспериментов переключите терминал в Docker: `hermes config set terminal.backend docker`.

## Что дальше {#chto-dalshe}

* [Каталог моделей](/models "Каталог моделей") — выберите модели под задачу и бюджет
* [Hermes Agent в VS Code](/pages/vs-code-hermes-agent-routerai-claude-gpt "Hermes Agent в VS Code") — подключение агента к редактору через ACP
* [Claude Code](/pages/vibe-coding-claude-code "Вайб-кодинг в Claude Code") и [Codex](/pages/vibe-coding-codex "Вайб-кодинг в Codex") — другие агенты через RouterAI
* [Документация Hermes Agent](https://hermes-agent.nousresearch.com/docs/ "Hermes Agent Docs") и [исходники на GitHub](https://github.com/NousResearch/hermes-agent "NousResearch/hermes-agent")
