Всем привет!
Почти все ИИ-ассистенты хорошо справляются с отдельными запросами, но почти каждый новый диалог начинают с чистого листа. Можно, конечно, снова объяснить структуру проекта, напомнить принятые решения и перечислить уже найденные вами ошибки, но через несколько раз это начинает раздражать.
Hermes Agent от Nous Research - это уже другой случай. Он сохраняет важные факты, ищет информацию в предыдущих диалогах, превращает удачные способы решения задач в навыки и использует их в дальнейшем. При этом, что довольно удобно, агент может работать и принимать сообщения из Telegram!
В этой статье разберем, что именно в Hermes называется самообучением, чем он отличается от обычного чат-бота, какие задачи ему можно поручить и как запустить собственного агента на удаленном сервере.
Hermes развивается очень быстро. Статья подготовлена для Docker-образа, доступного на 18 июля 2026 года. Через некоторое время что-то в образе может измениться, поэтому мы рекомендуем проверять версии.
Что такое Hermes
Hermes использует GPT, Claude, Gemini, DeepSeek и другие LLM как “мозг” и добавляет вокруг агентную среду.
Например, один запрос выглядит так:
Пользователь отправляет задачу в CLI, Telegram или другом подключенном интерфейсе;
Выбранная LLM анализирует запрос и решает, какие инструменты ей нужны;
Hermes вызывает терминал и выполняет там команды, читает файлы, ищет информацию в интернете, запускает браузер или обращается к MCP-серверу;
Результаты инструментов возвращаются модели и цикл продолжается, пока задача не будет выполнена;
Полезные факты и найденный рабочий процесс при необходимости сохраняются в память или новый навык;
Общаться с одним и тем же агентом можно через терминал, Telegram, Discord, Slack, WhatsApp, Signal и другие платформы. Мы же проверим на примере Telegram.
Как Hermes “самообучается”
Обычно под “самообучением” подразумевают дообучение весов используемой нейросети. Здесь же все немного по-другому: подключенная модель остается прежней, просто вокруг вашего разговора накапливается контекст, который и помогает модели быть “умнее” в вашем контексте.
Например, Hermes сохраняет:
Память: короткие факты о среде, пользователе и предпочтениях, чтобы не объяснять одно и то же в каждой сессии;
Историю сессий: предыдущие диалоги и результаты какой-то работы;
Навыки: длинные пошаговые инструкции в формате
SKILL.md, чтобы повторять проверенные рабочие процессы.
Память
Встроенная память состоит из двух файлов:
MEMORY.md. Тут Hermes хранит короткую информацию о рабочей среде, принятых решениях и подобном;USER.md. Тут уже хранятся персональные предпочтения пользователя, качества и особенности взаимодействия с ним.
Размер встроенной памяти специально ограничен: он предназначен не для сохранения всей переписки, а для коротких фактов/утверждений.
Поиск по предыдущим диалогам
Полная история хранится отдельно. Инструмент session_search использует полнотекстовый поиск по прошлым сессиям, а затем может кратко пересказать найденный контекст с помощью LLM.
Благодаря этому, вы можете в полностью случайный момент вернуться к контексту другой сессии.
Навыки
Ранее мы говорили о каких-то навыках, но я не объяснил, что это.
Если кратко, навык - это сохраненная инструкция для повторяемой задачи. Hermes может создать его после сложного успешного сценария, в котором легко ошибиться и, сохранив который, можно сэкономить кучу времени и нервов.
Представим, что агент несколько раз пытался развернуть приложение, столкнулся с неправильным портом и отсутствующей переменной окружения, а затем нашел рабочую конфигурацию. Вместо того чтобы в следующий раз повторять те же ошибки, он может сохранить последовательность проверки и деплоя как отдельный навык.
Навыки не зашиты в саму модель. Это обычные файлы, которые можно открыть, проверить, изменить или удалить. Их также можно устанавливать из каталога Skills Hub и переносить между совместимыми агентами.
Что умеет Hermes
Набор возможностей зависит от подключенных инструментов и выбранной модели, но даже базовый Hermes уже выходит за рамки обычного чат-бота.
Работать с кодом и файлами
Агент может изучить структуру проекта, найти какую-то ошибку или баг, точечно изменить несколько файлов и запускать простые тесты.
Выполнять команды
Это тоже очень интересно и важно: Hermes может установить зависимости, запустить скрипты, проверить логи и автоматизировать рутину.
Но при этом агент получает реальные права внутри выбранной среды, так что бездумно доверять ему продакшен-ключи и доступ ко всему не нужно.
Искать и исследовать в интернете
Hermes умеет искать информацию в интернете, извлекать содержимое страниц и работать через браузер. Можно попросить его собрать информацию из документации и проверить соответствие в коде, сравнить какие-то продукты и т.д.
Запускать задачи по расписанию
Встроенный планировщик понимает обычные cron-выражения и формулировки на естественном языке. Например:
Каждый день в 11:00 по МСК присылай интересные логи приложения/процесса ***, если там есть ошибки - покажи их и предложи решения.
Задача запускается в новой агентной сессии, а результат можно отправить обратно в Telegram, Discord, Slack, файл или любой другой настраиваемый канал. Для простых сценариев существует режим без LLM: запускается обычный скрипт, а его вывод доставляется пользователю без расхода токенов LLM.
Делегировать работу
Hermes умеет создавать изолированных сабагентов и распределять между ними независимые части какой-то большой задачи. Например, один агент может изучать документацию, второй - проверять код, а третий - готовить тесты. После этого основной агент собирает результаты.
Подключать MCP-серверы
Hermes поддерживает Model Context Protocol. Через MCP ему можно предоставить доступ к внешней документации, базам данных, Git-репозиториям и другим сервисам без добавления каждого инструмента непосредственно в код агента.
Например, к нему можно подключить MCP-сервер Amvera и управлять облачными проектами из того же диалога, в котором агент пишет и проверяет код.
Фактически вы можете одним сообщением в телеграм сгенерировать и запустить бота:
“Напиши Telegram-бота для [ваша задача] и запусти его на Amvera в регионе Варшава”
Запускаем Hermes на сервере
Итак, пришло время перейти к практической части статьи и развернуть Hermes.
Развернем Hermes в облаке Amvera. Особенность Amvera в том, что для запуска приложения, вам не нужно настраивать VPS/VDS, достаточно лишь написать или скачать конфигурацию amvera.yml и сервис сделает всю работу за вас. Для тестов после регистрации на баланс начисляется 111 рублей без доп. условий, что удобно для пробного запуска.
Конечно же, мы рассматриваем Amvera как сервис для развертывания в рамках корпоративного блога. Вы можете использовать любой другой облачный сервис или VPS/VDS.
Для запуска понадобятся:
аккаунт в Amvera Cloud;
токен доступа к LLM (например, токен от OpenRouter);
Telegram бот, созданный через @BotFather;
ваш числовой Telegram ID. Получить его можно здесь.
Для Telegram бота лучше выбрать регион Варшава. Так соединение с Telegram не будет зависеть от региональных ограничений.
По рекомендациям разработчиков, минимально Hermes требуется 1 ГБ оперативной памяти и одно ядро, а для комфортной работы - 2-4 ГБ и два ядра. Браузерная автоматизация через Chromium потребляет больше всего памяти, поэтому для нее лучше сразу выделить не менее 2 ГБ.
Создание проекта
Перед тем, как начать, необходимо создать проект.
Делается это просто: открываем ЛК, и жмем соответствующую кнопку:



После нажатия на кнопку “Далее”, проект уже будет создан. Остальные этапы по типу “Загрузка данных” можно пропустить.
Подготавливаем файлы
Как я уже говорил ранее, для запуска Hermes Agent в Amvera достаточно одного файла: amvera.yml.
Создать его можно двумя способами:
1. Создание через интерфейс сайта
Это самый простой способ, ведь вам не понадобится даже загружать файл.
Для этого переходим в заранее созданный проект и открываем вкладку “Конфигурация” и выбираем все то же, что на скриншоте ниже:

И нажимаем кнопку “Применить”.
2. Загрузка готового amvera.yml
Тут тоже все просто: просто создаете у себя на компьютере файл amvera.yml и вставляем следующее содержимое:
--- meta: environment: docker toolchain: name: docker version: latest build: dockerfile: Dockerfile skip: true run: persistenceMount: /opt/data image: nousresearch/hermes-agent:latest command: /init args: /opt/hermes/docker/main-wrapper.sh gateway run containerPort: 8642
Либо, можете использовать поля с адресами образов для заполнения конфигурации в интерфейсе.
И во вкладке “Репозиторий” простым перетягиванием загружаем этот файл. Сразу после загрузки, конфигурация подтянется в соответствующей вкладке.
Создание переменных окружения
Последний этап настройки перед запуском - создание переменных окружений.
Для этого переходим в одноименную вкладку “Переменные” и создаем следующие четыре переменные:
TELEGRAM_BOT_TOKEN- Токен Telegram бота от @BotFather;TELEGRAM_ALLOWED_USERS- Перечисленные через запятую ID пользователей Telegram, которым мы доверяем работу с Hermes. Как я уже говорил ранее, получить его можно в боте;OPENROUTER_API_KEY- Ключ для работы с OpenRouter. Вообще, вы можете использовать другого провайдера, например OpenAI (OPENAI_API_KEY).SERPAPI_KEY- Ключ от Google SerpAPI. Это сервис, который позволяет выполнять поиск в интернете. Это необязательная переменная, но рекомендуемая.
Важно: не включайте
TELEGRAM_ALLOW_ALL_USERS=trueдля публичного бота. В таком режиме любой человек, нашедший его в Telegram, сможет расходовать ваши токены и отправлять агенту команды.
После этого запускаем сборку во вкладке “Конфигурация”.
Hermes - довольно тяжелый образ, поэтому первый запуск будет долгим: около 5-10 минут.
Теперь можно открыть бота и отправить первое сообщение. Перед началом работы рекомендуется отправить команду /sethome и /model <ваша-модель>
Для проверки можно дать ему простой запрос:
Напиши простого Telegram echo-бота на Python, добавь amvera.yml и requirements.txt, создай архив и пришли мне.


И все работает!
Частые проблемы
Бот запустился, но не отвечает
Сначала проверьте TELEGRAM_BOT_TOKEN и TELEGRAM_ALLOWED_USERS. Если ID не задан, Hermes по умолчанию запрещает доступ неизвестным пользователям. Также нельзя одновременно запускать два проекта/инстанса с одним Telegram токеном: Telegram отклонит конкурирующий polling.
HTTP 402 и сообщение о слишком большом max_tokens
Такое возможно при использовании бесплатных маршрутов OpenRouter. Модель может разрешать большое окно ответа, но бесплатный баланс провайдера не покрывает запрос с указанным лимитом. Нужно выбрать доступную модель, уменьшить лимит вывода в ее конфигурации или попробовать бесплатные модели (которые, кстати, и использовались для тестового запроса выше)
No inference provider configured
Попробуйте выполнить /model. Даже если вы не знаете точное название модели, Hermes вам подскажет похожие.
После пересборки пропали навыки и память
Убедитесь, что persistenceMount в конфигурации amvera.yml равен /opt/data. Все изменяемые данные официального образа хранятся в этой директории.
Немного о безопасности
Hermes может читать файлы, выполнять команды и обращаться во внешнюю сеть. То есть относиться к нему нужно не как к обычному Telegram боту, а как к удаленному исполнителю внутри вашего проекта.
Минимальные правила для постоянного агента выглядят так:
Запускайте Hermes в отдельном проекте и не передавайте ему лишние ключи.
Ограничивайте доступ к Telegram через
TELEGRAM_ALLOWED_USERS.Не включайте
HERMES_YOLO_MODE=1. Этот режим отключает почти все запросы подтверждения опасных команд.
Итог
Hermes интересен не тем, что умеет вызвать терминал - это сегодня умеют многие агенты. Его главное отличие заключается в попытке не терять полученный опыт между разными задачами и сессиями.
Надеюсь, что статья была полезна для вас!