Большинство ИИ-агентов забывают всё, что происходило за пределами текущего контекстного окна. Начинается новая сессия — и агент снова «с нуля». Hermes Agent от Nous Research строится на другом принципе: во время общения он непрерывно выделяет факты, которые могут пригодиться позже, и сохраняет их отдельно от истории переписки. Предпочтения пользователя, особенности инфраструктуры, результаты прошлых экспериментов — всё это доступно спустя дни и недели после первого разговора.
Помимо памяти, в Hermes реализован механизм рефлексии. После завершения ряда задач агент запускает дополнительный этап самоанализа: оценивает, была ли задача решена успешно, какие действия сработали, где были допущены ошибки. Итогом становятся навыки (skills) — структурированные инструкции, которые агент применяет в дальнейшей работе. По сути, агент постепенно накапливает собственную базу знаний о конкретном пользователе и его задачах.
| Хук | Функция |
|---|---|
| pre_gateway_dispatch | Проверка подписки на канал, остаток лимита, антиспам (6 сообщений/мин), обработка команд |
| pre_llm_call | Принудительное закрытие незавершённых ходов агента с меткой flush_interrupted |
| post_api_request | Сбор реальных данных по использованию токенов после каждого запроса |
| post_llm_call | Завершение хода, запись данных в SQLite, обновление лимита пользователя |
Российский разработчик развернул на основе Hermes публичного Telegram-бота и открыл к нему доступ. Поскольку исходный проект рассчитан на одного пользователя и поставляется как CLI-инструмент, пришлось решить задачу многопользовательской изоляции. Автор написал плагин для Hermes Gateway — рантайма, отвечающего за коммуникацию с мессенджерами. Плагин подписывается на четыре внутренних хука: pre_gateway_dispatch обрабатывает проверку подписки и антиспам (не более 6 сообщений в минуту), pre_llm_call закрывает прерванные ходы агента, post_api_request собирает данные по использованию токенов, post_llm_call записывает результаты в SQLite и обновляет лимит пользователя.
После выполнения задач агент запускает рефлексию: анализирует ошибки и формирует структурированные навыки (skills) для будущих задач.
Изоляция реализована через патчи на три файла ядра: memory_tool.py, session_search_tool.py и hermes_state.py. Память каждого пользователя хранится в отдельной папке memories/{user_id}/, поиск по истории фильтруется по идентификатору. Глобальная память отключена, а в системный файл SOUL.md добавлены правила, запрещающие агенту ссылаться на чужие разговоры. Отдельная проблема — меню команд: Hermes Gateway при запуске регистрирует более 30 команд, раскрывающих внутреннюю архитектуру. Автор решил её скриптом, который каждые 30 секунд проверяет меню через Telegram API и обрезает его до трёх команд: /start, /status и /help.
В публичной версии намеренно отключены терминал, браузер и часть инструментов поиска по истории — чтобы исключить целенаправленные попытки сломать систему. Лимит составляет 30 запросов на пользователя, работа в групповых чатах заблокирована. Hermes не привязан к конкретной языковой модели или SDK, что отличает его от большинства агентных фреймворков, жёстко завязанных на одного провайдера. Ближайший ориентир в нише — проект OpenClaw, который в 2025 году задал стандарт для агентов в мессенджерах, однако сосредоточился на интерфейсной части, не решая проблему потери контекста между сессиями.
