Мастер-класс по Hermes Agent
Всё, что нужно знать о Hermes Agent: самообучающиеся навыки, трёхуровневая память, оптимизация GEPA , переход от одного агента к целой команде, получение доступа к бесплатным моделям. Статья получилась довольно конкретной, перевёл ее с иностранного источника, поскольку она изложена на очень понятном языке. После прочтения у вас должно отложится полное понимание работы с этим инструментом и его неочевидные фишки. Приятного чтения!
Что такое Hermes Agent и чем он отличается
За два месяца репозиторий набрал 90 000 звёзд на GitHub. Разработчики строят персональных AI-агентов, которые запоминают их рабочий процесс, хранят контекст и не засыпают (Похож на всем известный Openclaw, но при этом лучше работает с памятью и самообучением)
Им также можно пользоваться бесплатно, об этом детальнее рассказал в тгк, поищи где-то в закрепе:
Продолжим.
У большинства агентов одна и та же проблема: они забывают всё после завершения сессии. Ваши предпочтения в коде, соглашения по проекту, которые вы объясняли трижды, решение, найденное вчера за десять минут — всё исчезает. Следующая сессия начинается с чистого листа.
Hermes Agent же от Nous Research устроен принципиально иначе. Он поставляется с обучающим циклом, который:
- помнит между сессиями
- пишет собственные переиспользуемые навыки
- обрезает их в фоне
- проверяет офлайн через эволюционный движок GEPA
Ни один другой open-source агент не совмещает сразу все три возможности — включая опять же нашумевший OpenClaw.
В этом гайде разберу, как работает обучающий цикл, что делает каждый уровень памяти и как настроить всё с нуля.
К концу у вас будут три полностью изолированных агента на вашей машине: программист (использующий ваш Claude Code), глубокий исследователь и дизайнер — каждый со своей личностью, памятью, навыками и Telegram-ботом.
Архитектура
Всё проходит через единый класс AIAgent в скрипте run_agent.py. CLI, мессенджер-шлюз, пакетный запуск, интеграция с IDE — это лишь точки входа в одно и то же ядро.
Несколько важных деталей:
- Шесть сред выполнения: локальный терминал, Docker, SSH, Modal, Daytona, Singularity.
- Поддержка почти любой модели: слой трансляции маршрутизирует любого провайдера через один из трёх API-форматов. Claude, GPT, Gemini, локальный Ollama — меняется одной командой.
- Жёсткий лимит в 90 ходов на задачу: защита от зацикленных агентов, которые молча сжигают токены. Подагенты разделяют тот же бюджет.
Идентичность: SOUL.md
Прежде чем говорить о памяти и навыках, стоит разобраться с более базовым слоем — идентичностью.
Память — это то, что агент знает. Навыки — как он действует. Но ни то ни другое не говорит, кем он является.
Hermes решает это одним файлом: SOUL.md. Он живёт по адресу ~/.hermes/SOUL.md и занимает первый слот в системном промпте — раньше всего остального. Здесь задаются личность, тон, стиль общения и жёсткие ограничения
Файл пишется вручную и остаётся статичным. Написал один раз, иногда правишь, и он остаётся неизменным во всех проектах и сессиях. Если файл отсутствует, Hermes использует встроенную идентичность по умолчанию.
Так почему это важно для истории самосовершенствования? Потому что всё дальнейшее — память, навыки, консолидация знаний — происходит через призму этой идентичности. SOUL.md — неподвижная рамка, когда память и навыки это движущиеся части внутри неё
Система памяти: три уровня, ну или три скорости =)
Уровень 1: два Markdown-файла
В основе лежат два файла на диске:
- MEMORY.md (максимум 2 200 символов) — заметки агента о среде, соглашениях проекта, особенностях инструментов и усвоенных уроках.
- USER.md (максимум 1 375 символов) — ваш профиль: имя, предпочтения в общении, уровень навыков, чего избегать.
Оба инжектируются в системный промпт как снимок состояния при старте сессии. Новые записи сохраняются на диск немедленно, но появятся в промпте только в следующей сессии.
При заполнении на ~80% агент консолидирует память: объединяет связанные записи в более ёмкие версии, оставляя только действительно нужное.
Уровень 2: полнотекстовый поиск по сессиям
Каждый разговор хранится в SQLite с полнотекстовым поиском. Агент может искать по неделям прошлых диалогов.
Уровень 1 всегда в контексте, но крошечный. Уровень 2 неограничен по объёму, но требует активного поиска и суммаризации через LLM. Критические факты живут в памяти, всё остальное — ищется по запросу.
Уровень 3: внешние провайдеры памяти
Для более глубокой постоянной памяти Hermes поставляется с 8 подключаемыми провайдерами, которые работают параллельно со встроенной памятью, не заменяя её. Одновременно активен только один.
При активном внешнем провайдере Hermes автоматически предзагружает релевантные воспоминания перед каждым ходом, синхронизирует диалог после каждого ответа и извлекает воспоминания по завершении сессии.
Самообучающиеся навыки
Память хранит факты. Навыки — процедуры. Если быть точнее: навыки — это Markdown-файлы с YAML-заголовком, процедурная память агента: не что он знает, а КАК он делает.
Для экономии токенов навыки используют прогрессивное раскрытие:
- Уровень 0: агент видит только названия и описания (~3k токенов для всего каталога)
- Уровень 1: полное содержимое навыка загружается, когда он реально нужен
- Уровень 2: детализация в конкретные справочные файлы внутри навыка
Цикл самосовершенствования
Агент создаёт навыки автономно через инструмент skill_manage. Создание навыка запускается когда:
- задача выполнена и потребовала 5+ вызовов инструментов
- агент натолкнулся на ошибки и нашёл рабочий путь
- пользователь поправил его подход
- обнаружен нетривиальный рабочий процесс
Механизм прост: агент сталкивается с задачей => решает через пробы и ошибки => сохраняет удачный подход как SKILL.md => в следующий раз загружает навык и следует проверенной процедуре.
Куратор: сборщик мусора для навыков
Без обслуживания навыки накапливаются. В итоге получаются десятки узких перекрывающихся файлов, которые тратят токены и засоряют каталог.
Куратор — фоновая система обслуживания. Запускается по проверке бездействия (не по cron): если прошло 7 дней с последнего запуска и агент бездействовал 2+ часа, в фоне поднимается форк агента с собственным кэшем промптов, не трогая активный диалог.
Работает в два этапа:
- Автоматические переходы (детерминированные, без LLM): навыки, не используемые 30 дней, становятся устаревшими; 90 дней — архивируются.
- LLM-ревью (до 8 итераций): форкнутый агент просматривает все созданные агентом навыки и решает по каждому: оставить, исправить, объединить или архивировать.
Два ключевых ограничения:
- Куратор никогда не трогает встроенные или установленные из хаба навыки
- Куратор никогда не удаляет автоматически — худший исход это архивирование в ~/.hermes/skills/.archive/, откуда всё можно восстановить одной командой
Перед каждым проходом Куратора Hermes делает снимок всей директории навыков в tar.gz. Откат — одна команда, и сами откаты тоже обратимы.
Критичные навыки можно закрепить: hermes curator pin <skill> — защита от архивирования при сохранении возможности улучшений.
GEPA: офлайн-эволюция навыков
У цикла обучения внутри агента есть известная слабость: агент склонен к самовосхвалению. Он почти всегда считает, что справился хорошо — даже когда это не так. Кроме того, та же система, которая автоматически генерирует навыки, может перезаписать ручные настройки более слабыми версиями.
Здесь как раз помогает GEPA.
GEPA (Genetic-Pareto Prompt Evolution) — не часть рантайма Hermes. Это отдельный репозиторий (NousResearch/hermes-agent-self-evolution), офлайн-конвейер оптимизации.
Ключевая идея: вместо того чтобы спрашивать агента «ты справился?», GEPA читает трассы выполнения, чтобы понять почему что-то пошло не так, и предлагает точечные улучшения через эволюционный поиск.
Конвейер
- Читается текущий навык из репозитория Hermes
- Генерируется датасет для оценки (синтетические тест-кейсы через Claude Opus, реальная история сессий из SQLite, или вручную собранные эталоны)
- Запускается оптимизатор GEPA: читает трассы => понимает точки отказа => генерирует варианты-кандидаты
- Кандидаты оцениваются через LLM-as-judge с рубриками (не бинарный pass/fail)
- Применяются ограничения: весь тест-сьют должен проходить на 100%, навыки остаются до 15KB, совместимость с кэшированием сохраняется, семантическое назначение не смещается
- Лучший вариант выходит как PR к репозиторию Hermes — никогда не прямой коммит
GPU не нужен. Всё работает через API. Стоимость: примерно $2–10 за один прогон оптимизации. Это хорошая альтернатива, когда вы упёрлись в стену и не хотите тратить ресурсы на дообучение (RL/GRPO).
Установка и запуск (наконец-то :D)
Требования: Linux, macOS или WSL2. Python 3.11+ поставляется с установщиком. 8GB RAM достаточно для работы через API.
Запустить мастер настройки:
Запустить агента в терминале:
Подключение к Telegram (очень удобно)
Получите токен бота у @BotFather (команда /newbot), ваш Telegram ID — у @userinfobot. После настройки через мастер агент доступен с телефона.
Структура ~/.hermes/
Официальный Skills Hub содержит 687 навыков (!) в 18 категориях: 87 встроенных, 79 опциональных, 16 от Anthropic (frontend-design, pdf, pptx, docx и др.) и 505 от сообщества LobeHub.
Команда агентов: от одного к нескольким
Один агент — круто. Несколько специализированных — вы даже не представляете НАСКОЛЬКО круто.
В Hermes есть первоклассная поддержка этого через профили. Каждый профиль — полностью изолированный экземпляр Hermes со своим конфигом, памятью, навыками, сессиями и SOUL.md. По умолчанию они ничем не делятся.
Создадим три: дизайнера, программиста и исследователя.
Создание команды
--clone копирует конфиг и .env основного профиля как отправную точку.
Отдельный Telegram-бот для каждого
Каждый профиль требует своего бота — Telegram разрешает только одно подключение на токен. Создайте три бота через BotFather, затем настройте шлюз для каждого профиля:
Личности через SOUL.md
Дизайнер (~/.hermes/profiles/designer/SOUL.md):
Программист (~/.hermes/profiles/programmer/SOUL.md):
Исследователь (~/.hermes/profiles/researcher/SOUL.md):
Делегирование выполнения кода через Claude Code
Программист интереснее, если он не просто пишет код сам, а делегирует выполнение в Claude Code CLI. Hermes оркестрирует. Claude Code делает правки файлов, запускает команды, управляет git. Hermes читает результат и решает, что дальше.
Запустите сессию и отправьте единственный промпт активации:
Программист сам установит навык autonomous-ai-agents/claude-code, проверит наличие claude в PATH и начнёт его использовать. Убедитесь заранее, что which claude возвращает реальный путь.
Планировщик задач на естественном языке
Hermes поставляется со встроенным планировщиком. Daemon шлюза проверяет задачи каждые 60 секунд, запускает просроченные в изолированных сессиях и доставляет результат в выбранный мессенджер. Задачи переживают перезапуск.
Удобность в том, что вы не пишете cron-выражения. С вас только описывание задачи по-человечески, а дальше Hermes конвертирует сам.
Ежедневный дайджест исследователя
Откройте сессию с исследователем и отправьте:
Проверьте, что задача создана:
Другие полезные паттерны
- Разовая отсрочка: /cron add 30m "Напомни проверить сборку" — запустится один раз через 30 минут
- Повторяющийся интервал: /cron add "every 2h" "Проверь статус сервера"
- Стандартное cron-выражение: /cron add "0 9 * * 1-5" "..." — будни в 9 утра
- Привязка навыка: /cron add "every 1h" "Сводка новых записей" --skill blogwatcher
На этом всё. Задавайте вопросы в комментариях, следите за обновлениями на VC, глядите в мой ТГ с объяснением как заполучить фри модели для Hermes:
Удачи! <3