Мастер-класс по Hermes Agent

Мастер-класс по Hermes Agent

Всё, что нужно знать о Hermes Agent: самообучающиеся навыки, трёхуровневая память, оптимизация GEPA , переход от одного агента к целой команде, получение доступа к бесплатным моделям. Статья получилась довольно конкретной, перевёл ее с иностранного источника, поскольку она изложена на очень понятном языке. После прочтения у вас должно отложится полное понимание работы с этим инструментом и его неочевидные фишки. Приятного чтения!

Что такое Hermes Agent и чем он отличается

За два месяца репозиторий набрал 90 000 звёзд на GitHub. Разработчики строят персональных AI-агентов, которые запоминают их рабочий процесс, хранят контекст и не засыпают (Похож на всем известный Openclaw, но при этом лучше работает с памятью и самообучением)

Трекер истории звёзд на GH 
Трекер истории звёзд на GH 

Им также можно пользоваться бесплатно, об этом детальнее рассказал в тгк, поищи где-то в закрепе:

Продолжим.

У большинства агентов одна и та же проблема: они забывают всё после завершения сессии. Ваши предпочтения в коде, соглашения по проекту, которые вы объясняли трижды, решение, найденное вчера за десять минут — всё исчезает. Следующая сессия начинается с чистого листа.

Hermes Agent же от Nous Research устроен принципиально иначе. Он поставляется с обучающим циклом, который:

  • помнит между сессиями
  • пишет собственные переиспользуемые навыки
  • обрезает их в фоне
  • проверяет офлайн через эволюционный движок GEPA

Ни один другой open-source агент не совмещает сразу все три возможности — включая опять же нашумевший OpenClaw.

В этом гайде разберу, как работает обучающий цикл, что делает каждый уровень памяти и как настроить всё с нуля.

К концу у вас будут три полностью изолированных агента на вашей машине: программист (использующий ваш Claude Code), глубокий исследователь и дизайнер — каждый со своей личностью, памятью, навыками и Telegram-ботом.

Архитектура

Всё проходит через единый класс AIAgent в скрипте run_agent.py. CLI, мессенджер-шлюз, пакетный запуск, интеграция с IDE — это лишь точки входа в одно и то же ядро.

Мастер-класс по Hermes Agent

Несколько важных деталей:

  • Шесть сред выполнения: локальный терминал, Docker, SSH, Modal, Daytona, Singularity.
  • Поддержка почти любой модели: слой трансляции маршрутизирует любого провайдера через один из трёх API-форматов. Claude, GPT, Gemini, локальный Ollama — меняется одной командой.
  • Жёсткий лимит в 90 ходов на задачу: защита от зацикленных агентов, которые молча сжигают токены. Подагенты разделяют тот же бюджет.

Идентичность: SOUL.md

Прежде чем говорить о памяти и навыках, стоит разобраться с более базовым слоем — идентичностью.

Память — это то, что агент знает. Навыки — как он действует. Но ни то ни другое не говорит, кем он является.

Hermes решает это одним файлом: SOUL.md. Он живёт по адресу ~/.hermes/SOUL.md и занимает первый слот в системном промпте — раньше всего остального. Здесь задаются личность, тон, стиль общения и жёсткие ограничения

# SOUL.md Ты — прагматичный старший инженер с хорошим вкусом. Ты ценишь правду, ясность и пользу больше, чем вежливость ради вежливости.

Файл пишется вручную и остаётся статичным. Написал один раз, иногда правишь, и он остаётся неизменным во всех проектах и сессиях. Если файл отсутствует, Hermes использует встроенную идентичность по умолчанию.

Так почему это важно для истории самосовершенствования? Потому что всё дальнейшее — память, навыки, консолидация знаний — происходит через призму этой идентичности. SOUL.md — неподвижная рамка, когда память и навыки это движущиеся части внутри неё

Система памяти: три уровня, ну или три скорости =)

Мастер-класс по Hermes Agent

Уровень 1: два Markdown-файла

В основе лежат два файла на диске:

  • MEMORY.md (максимум 2 200 символов) — заметки агента о среде, соглашениях проекта, особенностях инструментов и усвоенных уроках.
  • USER.md (максимум 1 375 символов) — ваш профиль: имя, предпочтения в общении, уровень навыков, чего избегать.

Оба инжектируются в системный промпт как снимок состояния при старте сессии. Новые записи сохраняются на диск немедленно, но появятся в промпте только в следующей сессии.

При заполнении на ~80% агент консолидирует память: объединяет связанные записи в более ёмкие версии, оставляя только действительно нужное.

Уровень 2: полнотекстовый поиск по сессиям

Каждый разговор хранится в SQLite с полнотекстовым поиском. Агент может искать по неделям прошлых диалогов.

Уровень 1 всегда в контексте, но крошечный. Уровень 2 неограничен по объёму, но требует активного поиска и суммаризации через LLM. Критические факты живут в памяти, всё остальное — ищется по запросу.

Уровень 3: внешние провайдеры памяти

Для более глубокой постоянной памяти Hermes поставляется с 8 подключаемыми провайдерами, которые работают параллельно со встроенной памятью, не заменяя её. Одновременно активен только один.

При активном внешнем провайдере Hermes автоматически предзагружает релевантные воспоминания перед каждым ходом, синхронизирует диалог после каждого ответа и извлекает воспоминания по завершении сессии.

Самообучающиеся навыки

Память хранит факты. Навыки — процедуры. Если быть точнее: навыки — это Markdown-файлы с YAML-заголовком, процедурная память агента: не что он знает, а КАК он делает.

--- name: k8s-pod-debug description: > Активировать для упавших подов, CrashLoopBackOff, "почему мой под перезапускается", сбоев контейнеров. version: 1.2.0 author: agent platforms: [linux, macos] --- ## Процедура 1. Получить статус пода → проверить события → вытащить логи 2. Искать OOMKilled, ImagePullBackOff, ошибки конфигурации ## Подводные камни - Забытый флаг --previous на перезапущенных контейнерах ## Проверка - Под остаётся Running с 0 перезапусков 5+ минут

Для экономии токенов навыки используют прогрессивное раскрытие:

Мастер-класс по Hermes Agent
  • Уровень 0: агент видит только названия и описания (~3k токенов для всего каталога)
  • Уровень 1: полное содержимое навыка загружается, когда он реально нужен
  • Уровень 2: детализация в конкретные справочные файлы внутри навыка

Цикл самосовершенствования

Агент создаёт навыки автономно через инструмент skill_manage. Создание навыка запускается когда:

  • задача выполнена и потребовала 5+ вызовов инструментов
  • агент натолкнулся на ошибки и нашёл рабочий путь
  • пользователь поправил его подход
  • обнаружен нетривиальный рабочий процесс

Механизм прост: агент сталкивается с задачей => решает через пробы и ошибки => сохраняет удачный подход как SKILL.md => в следующий раз загружает навык и следует проверенной процедуре.

Мастер-класс по Hermes Agent

Куратор: сборщик мусора для навыков

Без обслуживания навыки накапливаются. В итоге получаются десятки узких перекрывающихся файлов, которые тратят токены и засоряют каталог.

Куратор — фоновая система обслуживания. Запускается по проверке бездействия (не по cron): если прошло 7 дней с последнего запуска и агент бездействовал 2+ часа, в фоне поднимается форк агента с собственным кэшем промптов, не трогая активный диалог.

Работает в два этапа:

  1. Автоматические переходы (детерминированные, без LLM): навыки, не используемые 30 дней, становятся устаревшими; 90 дней — архивируются.
  2. LLM-ревью (до 8 итераций): форкнутый агент просматривает все созданные агентом навыки и решает по каждому: оставить, исправить, объединить или архивировать.

Два ключевых ограничения:

  • Куратор никогда не трогает встроенные или установленные из хаба навыки
  • Куратор никогда не удаляет автоматически — худший исход это архивирование в ~/.hermes/skills/.archive/, откуда всё можно восстановить одной командой

Перед каждым проходом Куратора Hermes делает снимок всей директории навыков в tar.gz. Откат — одна команда, и сами откаты тоже обратимы.

Критичные навыки можно закрепить: hermes curator pin <skill> — защита от архивирования при сохранении возможности улучшений.

Мастер-класс по Hermes Agent

GEPA: офлайн-эволюция навыков

У цикла обучения внутри агента есть известная слабость: агент склонен к самовосхвалению. Он почти всегда считает, что справился хорошо — даже когда это не так. Кроме того, та же система, которая автоматически генерирует навыки, может перезаписать ручные настройки более слабыми версиями.

Здесь как раз помогает GEPA.

GEPA (Genetic-Pareto Prompt Evolution) — не часть рантайма Hermes. Это отдельный репозиторий (NousResearch/hermes-agent-self-evolution), офлайн-конвейер оптимизации.

Ключевая идея: вместо того чтобы спрашивать агента «ты справился?», GEPA читает трассы выполнения, чтобы понять почему что-то пошло не так, и предлагает точечные улучшения через эволюционный поиск.

Конвейер

  1. Читается текущий навык из репозитория Hermes
  2. Генерируется датасет для оценки (синтетические тест-кейсы через Claude Opus, реальная история сессий из SQLite, или вручную собранные эталоны)
  3. Запускается оптимизатор GEPA: читает трассы => понимает точки отказа => генерирует варианты-кандидаты
  4. Кандидаты оцениваются через LLM-as-judge с рубриками (не бинарный pass/fail)
  5. Применяются ограничения: весь тест-сьют должен проходить на 100%, навыки остаются до 15KB, совместимость с кэшированием сохраняется, семантическое назначение не смещается
  6. Лучший вариант выходит как PR к репозиторию Hermes — никогда не прямой коммит

GPU не нужен. Всё работает через API. Стоимость: примерно $2–10 за один прогон оптимизации. Это хорошая альтернатива, когда вы упёрлись в стену и не хотите тратить ресурсы на дообучение (RL/GRPO).

Установка и запуск (наконец-то :D)

Требования: Linux, macOS или WSL2. Python 3.11+ поставляется с установщиком. 8GB RAM достаточно для работы через API.

curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash source ~/.bashrc # или ~/.zshrc

Запустить мастер настройки:

hermes setup

Запустить агента в терминале:

hermes

Подключение к Telegram (очень удобно)

Получите токен бота у @BotFather (команда /newbot), ваш Telegram ID — у @userinfobot. После настройки через мастер агент доступен с телефона.

Структура ~/.hermes/

~/.hermes/ ├── config.yaml # Основная конфигурация ├── .env # API-ключи и секреты ├── auth.json # OAuth-учётные данные ├── SOUL.md # Идентичность агента (слот #1 в системном промпте) │ ├── memories/ │ ├── MEMORY.md # Постоянные факты агента │ └── USER.md # Модель пользователя │ ├── skills/ # Все навыки (встроенные, из хаба, созданные агентом) │ ├── sessions/ # Метаданные сессий по платформам ├── state.db # SQLite с FTS5 ├── cron/ │ ├── jobs.json # Запланированные задачи │ └── output/ # Результаты запусков │ ├── plugins/ # Кастомные плагины ├── hooks/ # Хуки жизненного цикла └── logs/ # agent.log, gateway.log, errors.log

Официальный Skills Hub содержит 687 навыков (!) в 18 категориях: 87 встроенных, 79 опциональных, 16 от Anthropic (frontend-design, pdf, pptx, docx и др.) и 505 от сообщества LobeHub.

Команда агентов: от одного к нескольким

Один агент — круто. Несколько специализированных — вы даже не представляете НАСКОЛЬКО круто.

В Hermes есть первоклассная поддержка этого через профили. Каждый профиль — полностью изолированный экземпляр Hermes со своим конфигом, памятью, навыками, сессиями и SOUL.md. По умолчанию они ничем не делятся.

Создадим три: дизайнера, программиста и исследователя.

Создание команды

hermes profile create designer --clone hermes profile create programmer --clone hermes profile create researcher --clone hermes profile list

--clone копирует конфиг и .env основного профиля как отправную точку.

Отдельный Telegram-бот для каждого

Каждый профиль требует своего бота — Telegram разрешает только одно подключение на токен. Создайте три бота через BotFather, затем настройте шлюз для каждого профиля:

hermes -p designer gateway setup hermes -p programmer gateway setup hermes -p researcher gateway setup

Личности через SOUL.md

Дизайнер (~/.hermes/profiles/designer/SOUL.md):

# Soul Ты эксперт по созданию иллюстраций от руки, объясняющих концепции AI, машинного обучения и разработки ПО. Скетчи на доске, не полированный маркетинг. Каждая иллюстрация должна делать техническую идею понятной. Сначала концепция, затем метафора, затем наброск. Простые линии и чёткие подписи важнее визуального блеска. Говори, когда иллюстрация навредит больше, чем поможет.

Программист (~/.hermes/profiles/programmer/SOUL.md):

# Soul Ты мой staff engineer. Лаконичный, прямой, прагматичный. Сначала читаешь код — потом пишешь. Вносишь минимальное изменение, решающее задачу. Предпочитаешь стандартную библиотеку сторонним зависимостям, скучные технологии — блестящим, явное — умному. Всегда проверяешь: это уже есть в кодовой базе? Есть ли тесты? Что сломается, если это упадёт? Запускаешь тесты перед тем, как сказать «готово».

Исследователь (~/.hermes/profiles/researcher/SOUL.md):

# Soul Ты мой глубокий исследователь пространства AI и ML. Основная задача — ежедневный Telegram-дайджест о новом и важном. Четыре потока: трендовые GitHub-репозитории, анонсы крупных компаний и лабораторий, свежие исследовательские статьи, социальный пульс в X, Reddit и Hacker News. Главное — что изменилось со вчера. Каждое утверждение — со ссылкой. Предупреждать, когда сигнал слабый. Использовать delegate_task агрессивно для параллельной работы. Никогда не представлять спорное как установленное. Никогда не выдумывать ссылки.

Делегирование выполнения кода через Claude Code

Программист интереснее, если он не просто пишет код сам, а делегирует выполнение в Claude Code CLI. Hermes оркестрирует. Claude Code делает правки файлов, запускает команды, управляет git. Hermes читает результат и решает, что дальше.

Запустите сессию и отправьте единственный промпт активации:

У меня уже есть подписка Claude Max. Ты мой staff engineer, помогаешь с повседневными задачами разработки, и под капотом используешь Claude Code для всех выполнений. Настрой себя соответственно.

Программист сам установит навык autonomous-ai-agents/claude-code, проверит наличие claude в PATH и начнёт его использовать. Убедитесь заранее, что which claude возвращает реальный путь.

Планировщик задач на естественном языке

Hermes поставляется со встроенным планировщиком. Daemon шлюза проверяет задачи каждые 60 секунд, запускает просроченные в изолированных сессиях и доставляет результат в выбранный мессенджер. Задачи переживают перезапуск.

Удобность в том, что вы не пишете cron-выражения. С вас только описывание задачи по-человечески, а дальше Hermes конвертирует сам.

Ежедневный дайджест исследователя

Откройте сессию с исследователем и отправьте:

Каждый будний день в 8 утра по московскому времени подготавливай глубокий дайджест о новостях в AI и ML за последние 24 часа. Четыре потока по порядку: 1. Трендовые GitHub-репозитории (особенно новые AI/ML-инструменты) 2. Анонсы крупных компаний и лабораторий (Anthropic, OpenAI, Google, Meta, xAI, Nous и др.) 3. Свежие исследовательские статьи, стоящие прочтения 4. Социальный пульс из X, Reddit и Hacker News Главное — что изменилось со вчера. Каждое утверждение — со ссылкой. Объём до 800 слов. Доставить в Telegram. Настрой это как повторяющуюся cron-задачу.

Проверьте, что задача создана:

hermes -p researcher cron list

Другие полезные паттерны

  • Разовая отсрочка: /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

1
1 комментарий