We use cookies to ensure our website works quickly and easily. Choose which cookies you allow us to use. Learn more in our Privacy Policy.
 
Узнайте, как превратить обычную языковую модель в автономного ИИ-агента. В статье разбираем возможности Hermes Agent и приводим пошаговую инструкцию по развертыванию: от настройки терминала и файловой системы до управления агентом через Telegram.

Hermes Agent: от теории к практике. Полный гайд по установке

Время прочтения: 15 мин.
Что такое Hermes Agent

Hermes Agent - это автономный ИИ-агент с открытым исходным кодом от компании Nous Research, оснащенный встроенным циклом непрерывного самообучения и сквозной памятью, способный самостоятельно создавать новые навыки на основе опыта и функционировать полностью автономно в изолированных средах.

Главная проблема стандартных ИИ-ассистентов — оторванность от реальной среды выполнения. Они могут написать скрипт, но не могут его запустить, проверить или исправить ошибки синтаксиса. Hermes Agent решает эту проблему, предоставляя модели доступ к:

  1. Выполнению команд в терминале операционной системы.
  2. Чтению, записи и модификации локальных файлов.
  3. Автономному веб-поиску и автоматизации действий в браузере.

Кому полезен инструмент

  • DevOps-инженерам и системным администраторам
Для автоматического мониторинга инфраструктуры, написания bash/python-скриптов отладки и развертывания сред без необходимости постоянного ручного ввода команд.

  • Разработчикам ПО
В качестве автономного кодера, которому можно делегировать рутинное написание тестов, парсеров или развертывание контейнеров.

  • Инженерам автоматизации процессов
Для создания интеллектуальных ИИ-оркестраторов, способных выполнять комплексные сценарии (например, автономный поиск, фильтрация и структурирование данных из интернета).

Чем отличается от других решений

  • Глубокая интеграция с CLI и ОС
Инструменты выполнения кода и терминала являются для агента приоритетными.

  • Адаптация под локальное использование
Ориентирован на запуск в изолированных окружениях без обязательной привязки к дорогим enterprise-платформам.

  • Multi-turn рассуждения
Способен выполнять сложные цепочки задач, анализируя результат предыдущего шага перед тем, как сделать следующий.
Как работает агент

Вся логика работы построена на концепции «умного посредника» (оркестратора). Сам движок Hermes Agent изолирован внутри Docker и не имеет прямого доступа к внешнему миру или API Telegram. Оркестратор выступает в роли защитного барьера и маршрутизатора
Когда вы отправляете сообщение, оркестратор перехватывает его, проверяет готовность персонального контейнера для пользователя, переводит (при необходимости) голос в текст, а затем передает команду внутрь контейнера, где модель Kimi 2.6 решает, какие системные инструменты ей нужно запустить для выполнения задачи.

Основные этапы обработки запроса

1. Инициализация и проверка изолированной среды
При отправке команды /start или любого текстового сообщения оркестратор вызывает функцию проверки уникального контейнера для пользователя. Она проверяет, запущен ли Docker-контейнер для конкретного пользователя. Если контейнера нет, оркестратор поднимает его «с нуля» за пару секунд, монтирует туда системные папки, подтягивает конфиги и блокирует встроенный сетевой шлюз Hermes, оставляя управление за собой.

Изоляция (каждый пользователь имеет свою уникальную среду выполнения)

Агент работает в полностью изолированной директории /root, где по требованию пользователя создает файлы (test_KOSTYA) и видит только то окружение, которое ему выделил оркестратор.
Работа с CLI

Он может считывать метаданные каталога, проверять права доступа (drwxr-xr-x), ориентироваться в системных логах и создавать скрипты по запросу пользователя
2. Перехват намерений и препроцессинг

Обработка голосового ввода

Если пользователь прислал аудиосообщение, оркестратор скачивает .ogg файл, пробрасывает его в контейнер и с помощью легковесной и быстрой нейросети faster-whisper локально транскрибирует речь в текст.

Пользователь наговаривает голосом: «Привет! Какая погода в Сочи?». Оркестратор моментально распознает аудио и передает текстовый промт агенту, который через веб-поиск собирает актуальную сводк.
Перехват планировщика

Если обнаруживаются маркеры времени (например, "каждый день в 14:15"), оркестратор не запускает стандартный цикл, а просит Hermes запросить параметры в строгий JSON-формат. Полученные данные сохраняются в локальную базу cron_jobs.json
Демонстрация работы перехватчика. На фразу «ты сможешь мне присылать каждый день в 14:15 сводку новостей...» бот реагирует созданием автоматической cron-задачи, переводя локальное время в UTC для системного планировщика
3. Выполнение задачи и динамический вызов инструментов
Если запрос стандартный, оркестратор выполняет команду docker exec -i и запускает утилиту hermes -z "ваш запрос"

В этот момент модель Kimi 2.6 оценивает промт. Если ей не хватает данных, она инициирует цикл ReAct (Reasoning + Acting). Она понимает: "У меня нет этих данных в контексте обучения, мне нужно использовать инструмент web_search". Агент делает поисковой запрос через бесплатный модуль DuckDuckGo, собирает страницы, извлекает текст и формирует итоговый структурированный ответ.

Срабатывание фоновой задачи точно по расписанию. Асинхронный cron_scheduler оркестратора в фоне разбудил нужный контейнер, отправил скрытый промт агенту на поиск новостей и прислал готовый результат пользователю.
По запросу пользователя создать схему со стрелками агент самостоятельно кодирует структуру файла для визуального редактора Excalidraw, сохраняет её на диск /root/arrow_diagram.excalidraw и даёт инструкцию, как её открыть.
Как настроить

Шаг 1. Подготовка локального репозитория
Перед запуском установщика необходимо склонировать официальный репозиторий проекта в домашнюю директорию хоста. Это необходимо, поскольку каждый изолированный Docker-контейнер пользователя будет монтировать эту папку и устанавливать агента в режиме редактирования (pip install -e /app):
cd ~/.hermes
git clone https://github.com/nousresearch/hermes-agent hermes-agent
Убедитесь, что клонирование прошло успешно, проверив содержимое каталога командой ls ~/.hermes/hermes-agent/
Шаг 2. Запуск и конфигурация инсталлятора
Запустите официальный скрипт инициализации:
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
В процессе интерактивной настройки последовательно выбирайте следующие параметры:

1. How would you like to set up Hermes? Выбирайте 2. Full setup, чтобы вручную определить провайдеров, инструменты и настройки интеграции

2. Select provider: Найдите в списке и выберите пункт 17. Kimi / Moonshot

3. Select Kimi / Moonshot provider: Выберите 1. Kimi / Kimi Coding Plan

4. Авторизация API: Вставьте ваш секретный ключ разработчика в поле KIMI_API_KEY

5. Select default model: Установите флаг напротив флагманской модели 1. kimi-k2.6

6. Select terminal backend: Выберите пункт 7. Keep current (local) (или 1. Local). Сама утилита должна работать локально, так как последующую контейнеризацию и создание сред под каждого пользователя берет на себя оркестратор

7. Select platforms to configure: Отметьте пункт 1 Telegram

8. Telegram bot setup: Выберите вариант 2. Manual и вставьте токен вашего бота, полученный от @BotFather

9. Tools for CLI: Оставьте базовый набор инструментов, но снимите отметку с пункта 25. Computer Use (macOS), так как развертывание производится в среде Linux

10. Browser Automation: Выберите бесплатный движок 1. Local Browser (Headless Chromium, не требующий внешних ключей)

11. Image Generation: Выберите 7. Skip - keep defaults / configure later

12. Text-to-Speech: Выберите 10. Skip - keep defaults / configure later

13. Vision / Image Analysis: Выберите 3. Skip
14. Web Search & Extract: Выберите 4. DuckDuckGo (ddgs) (работает бесплатно и без токенов авторизации)

По окончании процедуры проверьте корректность сборки ядра утилиты командой (Консоль должна вернуть актуальную версию Hermes Agent и версию встроенного Python):

hermes –version
Шаг 3. Зависимости для кастомного оркестратора

Для успешного старта управляющего скрипта на хост-системе необходимо подготовить файл requirements.txt со следующими библиотеками:

  • aiogram>=3.0.0 — асинхронный фреймворк для долгого опроса (polling) серверов Telegram
  • python-dotenv — инструмент для безопасного считывания токенов и системных путей из файла .env
  • PyYAML — парсер, необходимый оркестратору для динамической модификации конфигурационных файлов config.yaml внутри пользовательских песочниц.
Установите их командой pip3 install -r requirements.txt, после чего система будет полностью готова к работе

Практический пример

  1. Автономная разработка, тестирование и выполнение кода
Агент способен выступать в роли полноценного-разработчика, который самостоятельно пишет код, проверяет его работоспособность в терминале и исправляет ошибки до вывода финального результата

  • Написание и запуск скрипта

Запрос пользователя:
«Напиши скрипт который будет выводить в терминал цифры от 0 до 9, протестируй его и выведи что получилось»

Что делает агент:
1. Генерирует программный код на Python
2. Используя инструменты работы с файлами, создает физический файл в изолированной директории /root/print_digits.py
3. Через терминальный бэкенд запускает команду python3 /root/print_digits.py
4. Перехватывает вывод терминала (stdout)

Результат
Выводит пользователю лог создания файла, исходный код скрипта и реальный результат его выполнения из консоли песочницы.
  • Прямое управление файловой системой через CLI
Запрос пользователя:
«создай файл test_KOSTYA», а затем «какие файлы сейчас содержатся в домашней директории

Что делает агент:
Напрямую вызывает системные утилиты Linux внутри контейнера пользователя. Сначала создает пустой документ, а при повторном запросе сканирует каталог через команду ls и структурирует ответ в виде интерактивного списка
2. Глубокий аудит кодовой базы (Code Review) через GitHub
Благодаря интеграции со скиллами управления репозиториями, агент может анализировать его архитектуру и выявлять критические уязвимости

Запрос пользователя:
 «сделай краткое ревью кода по ссылке https://github.com/Ya-Pedro/k3s.git, напиши структуру проекта»

Что делает агент:
 1. Используя сетевой доступ контейнера, вытягивает данные репозитория
2. Анализирует дерево каталогов и строит наглядную ASCII-структуру папок (ansible/, ArgoCD, helm/, observability/)
3. Построчно вычитывает конфигурации и манифесты (например, deploy.yml, requirements.txt)
4. Проводит аудит безопасности на наличие «хардкода»

Результат:
 Формирует интерактивную карту проекта с комментариями к каждой папке и выдает предупреждение: «Один хардкод IP (192.168.122.57)» в конфигурационных файлах Ansible.
 
3. Интеграция с внешними сервисами (Google Docs/Sheets/Drive и Карты)
 
  • Парсинг Google-таблиц
Запрос пользователя:
 «проанализируй гугл таблицу по этой ссылке, что там находится...»

Что делает агент:
 Переходит по внешней ссылке, авторизуется (при необходимости) и сканирует структуру ячеек документа, определяя наполнение строк

Результат:
 Выдает точную сводку: первые две строки пусты, в третьей содержится проверочный текст. Констатирует, что документ является демонстрационным тестом.
  • Геолокация и навигация
Запрос пользователя:
 «построй мне маршрут, как пройти пешком от Сириус, Олимпийский проспект 1 до Сочи, улица Кирова, 58»

Что делает агент:
 Обращается к инструментам геокодинга OpenStreetMap, вычисляет точное пешее расстояние (6.77 км) и среднее время в пути (~1 час 25 минут)

Результат:
 Генерирует детальный пошаговый навигационный лист из 15 пунктов с указанием точного расстояния для каждого маневра и поворота.
4. Визуальное проектирование и фоновое расписание (Cron)
 
  • Автономная генерация векторной графики
Запрос пользователя:
 «создай мне картинку - схему где будет стрелочка от А до Б»

Что делает агент:
 Вместо рисования пикселей, Hermes генерирует декларативный JSON-код графических объектов для популярного веб-инструмента маркерных досок Excalidraw, компилирует его в файл .excalidraw и сохраняет в песочницу

Результат:
 Предоставляет готовый файл схемы и дает прямую инструкцию пользователю, как перетащить его на сайт Excalidraw для мгновенного просмотра и редактирования без регистрации.
  • Настройка автоматического планировщика
Запрос пользователя:
 «ты сможешь мне присылать каждый день в 14:15 сводку новостей по теме "спорта,культуры и технологий в РФ"»

Что делает агент:
 Оркестратор перехватывает временной маркер, Hermes переводит локальное время в системный формат UTC, парсит параметры и заносит задачу в локальную базу данных cron_jobs.json

Результат:
 Бот подтверждает создание задачи news_summary_ru. Каждый день в 14:15 МСК асинхронный планировщик хоста будет автоматически запускать контейнер, выполнять команду веб-поиска и присылать свежую аналитическую выжимку в чат пользователя.
Особенности и ограничения

Что система умеет хорошо (Сильные стороны)
Благодаря интеграции 68 специализированных скиллов и расширенных наборов инструментов (toolsets), платформа демонстрирует высокую эффективность в следующих сценариях:

1. Автономный цикл разработки
Агент не просто пишет код, а запускает его в изолированном контейнере, проводит юнит-тестирование, анализирует логи ошибок терминала и самостоятельно выполняет рефакторинг до тех пор, пока задача не будет решена правильно.

2. Глубокий аудит и управление репозиториями
Инструменты интеграции с GitHub позволяют агенту автономно клонировать репозитории, выстраивать карту структуры проекта, проводить полноценный Code Review и находить критические уязвимости.

3. Многопоточный мониторинг и исследования
Модель отлично справляется с комплексным веб-скрейпингом от агрегации свежих новостей по заданным темам через DuckDuckGo до парсинга научных статей на arXiv, блогов и рыночных трендов на Polymarket.

4. Работа со сторонними экосистемами
Агент умеет напрямую взаимодействовать с внешними API, включая чтение и анализ структуры документов Google Docs, Google Sheets и построение пошаговых логистических маршрутов на картах

5. Автоматизация регулярных процессов
Кастомный планировщик оркестратора позволяет переводить запросы пользователя в фоновые задачи (cron), автоматически запуская сбор данных, бэкапы или рассылку сводок точно по расписанию

6. Гибкий интерфейс ввода
Система бесшовно принимает голосовые сообщения, выполняя локальную транскрибацию через Whisper прямо внутри контейнера пользователя

Какие есть ограничения (Лимиты системы)

1. Отсутствие GUI
Так как агент изолирован внутри легковесного Linux-контейнера без графической оболочки, инструменты категории Computer Use (macOS) или прямое управление десктопным интерфейсом физически невозможны.

2. Ограничения мультимодальности в чате телеграмм бота
Несмотря на то, что ядро Kimi 2.6 поддерживает обработку изображений и видео, текущие хэндлеры Телеграм-бота настроены исключительно на прием текста и аудио, блокируя отправку файлов визуального анализа (фото/видео) пользователем.

3. Зависимость от пакетной базы Docker-образа
Базовый образ песочницы (nikolaik/python-nodejs) требует принудительного ручного развертывания системных зависимостей (например, бинарников Chromium для библиотеки Playwright), иначе инструменты автоматизации браузера завершатся ошибкой выполнения.

Типичные ошибки при установке и развертывании

1. Конфликт Telegram-сессий (Long Polling Conflict)

Ошибка: TelegramConflictError: Telegram server says - Conflict: terminated by other getUpdates request
Причина: Токен бота одновременно используется в двух местах. Это происходит, если при ручной установке Hermes через инсталлятор вы настроили платформу Telegram, и запущенная системная служба hermes gateway начала перехватывать сообщения параллельно с кодом вашего оркестратора
Решение: Приостановить хостовую службу командой hermes gateway stop и убедиться, что в config.yaml внутри контейнеров параметр allowed_chats принудительно выставлен в значение none

2. Отсутствие Docker-демона на хост-машине

Ошибка: FileNotFoundError: [Errno 2] No such file or directory: 'docker'
Причина: Управляющий скрипт оркестратора пытается выполнить системные команды docker run, но на самом сервере не установлен или не запущен Docker
Решение: Установить компоненты Docker через системный менеджер пакетов (dnf install docker-ce) и обязательно активировать службу командой systemctl start docker

3. Не установленные зависимости Python

Ошибка: ModuleNotFoundError: No module named 'aiogram'
Причина: Попытка запустить оркестратор до того, как в окружение хоста были накатаны сторонние библиотеки
Решение: Создать корректный файл requirements.txt (содержащий aiogram, python-dotenv, PyYAML) и выполнить команду pip3 install -r requirements.txt
Больше новостей
- в нашем телеграм-канале
Больше новостей
- в нашем телеграм-канале

Читайте также: