Агент Гермеса обладает ограниченной курируемой памятью, которая сохраняется между сессиями. Это позволяет ему запоминать ваши предпочтения, проекты, окружение и изученную информацию.
Как это работает
Память агента состоит из двух файлов:
Файл
Назначение
Ограничить символы
MEMORY.md
Личные заметки агента — факты об инциденте, соглашения, изученное
2 200 символов (~800 токенов)
ПОЛЬЗОВАТЕЛЬ.md
Профиль пользователя — ваши предпочтения, стиль общения, ожидания
1 375 символов (~500 токенов)
Оба файла сохраняются в ~/.hermes/memories/ и включаются в системный запрос в виде замороженного снимка в начале сессии. Агент управления своей памятью использует инструмент «память» — он может добавлять, заменять или удалять записи.:::информация
Ограничения символов позволяют сохранить сфокусированную память. Когда память заполнена, агент или заменяет запись, чтобы освободить место для какой-либо информации.
Как память отображается в системном меню
В начале каждой сессии записи памяти загружаются с диска и появляются в системном приглашении в виде замороженного блока:
══════════════════════════════════════════════
ПАМЯТЬ (ваши личные заметки) [67% — 1 474/2 200 символов]
══════════════════════════════════════════════
Проект пользователя — Rust веб-сервис в ~/code/myapi, использует Axum + SQLx
§
На этой машине установлены Ubuntu 22.04, Docker и Podman
§
Пользователь предпочитает краткие ответы, не любит многословных объяснений
Формат включает:
- Заголовок с хранилищем (ПАМЯТЬ или ПРОФИЛЬ ПОЛЬЗОВАТЕЛЯ)
- Процент использования и количество символов, которые агент знал о ёмкости
- Отдельные записи, разделённые символом § (знак абзаца)
- Записи могут быть многострочными
Шаблон замороженного снимка: Внедрение в системный запрос происходит один раз в начале сессии и никогда не меняется в течение сессии. Это сделано намеренно — для сохранения кэша префиксов LLM и повышения производительности. Когда агент добавляет/удаляет записи памяти во время сеанса, изменения сразу отображаются на диске, но не появляются в системном режиме до начала следующей сессии. Инструменты ответов всегда отображают актуальное состояние.
Действия инструмента памяти
Агент использует инструмент «память» с указанными действиями:
add — Добавить новую запись в память.
replace — Заменить существующую запись обновлённым содержимым (использует поиск подстроки через old_text)
удалить — Удалить запись, которая больше не актуальна (использует поиск подстроки через old_text)
Действия read нет — ограничения памяти автоматически вводятся в системный запрос в начале сессии. Агент рассматривает свои воспоминания как часть контекста разговора.
Поиск подстроки
Действия replace и remove требуют поиска по короткой уникальной подстроке — вам не нужен полный текст записи. Параметр old_text должен быть уникальной подстрокой, которая идентифицирует ровно одну запись:
# Если память содержит "User prefers dark mode in all editors"memory(action="replace",target="memory",old_text="dark mode",content="User prefers light mode in VS Code, dark mode in terminal")
Если подстрока соответствует традиционным записям, возникает ошибка, указывающая на более точную подстроку.
Две цели: объяснение
память — Личные заметки агента
Для информации агенту необходимо помнить об обучении, рабочих процессах и увлеченных уроках:
Факты об оказании услуг (ОС, инструменты, структура проекта)
включение и изменение проекта
Особенности инструментов и найденные обходные пути
Записи о выполненных задачах
Навыки и техника, которые сработали
user — Профиль пользователя
Для информации о личности пользователя, его предпочтениях и стиле общения:
Имя, роль, часовой пояс
Предпочтения в общении (кратко или в подробном формате)
Что раздражает и чего следует опасаться
Привычки в работе
Уровень технической подготовки
Что сохранение, а что пропускать
Сохраняйте это (проактивно)
Агент сохраняется автоматически — вам не нужно просить. Он сохраняет, когда узнает:
Предпочтения пользователя: «Я предпочитаю TypeScript, а не JavaScript» → сохранить в user
Факты об инциденте: «Этот сервер работает на Debian 12 с PostgreSQL 16» → сохранить в памяти
Исправления: «Не использовать sudo для команды Docker, пользователь в группе docker» → сохранить в memory
Соглашения: «В проекте использовалась табуляция, ширина строки 120 символов, строка документации в стиле Google» → сохранение в memory
Выполненная работа: «Миграция ресурсов данных с MySQL на PostgreSQL 15.01.2026» → сохранить в памяти
Явные запросы: «Запомни, что ротация моего API-ключа происходит сезон» → сохранение в памяти
Пропускайте это
Тривиальная/очевидная информация: «Пользователь спросил о Python» — слишком расплывчато, чтобы быть активированным
Легко перепроверяемые факты: «Python 3.12 поддерживает вложенные ф-строки» — можно найти в интернете
Сырые дампы данных: Большие блоки кода, файлы журналов, таблицы данных — слишком большие для памяти.
Эфемерные данные сессии: Временные пути к файлам, одноразовый контекст отладки
Информация, уже присутствующая в контекстных файлах: критерии SOUL.md и AGENTS.md
Управление ёмкостью
Память имеет строгие лимиты символов, чтобы системные промпты были ограниченными:
Хранилище
Лимит
Типичное количество записей
память
2 200 символов
8-15 записей
пользователь
1 375 символов
5-10 записей
Что происходит, когда память заполняется
Когда вы пытаетесь добавить запись, которая превышает лимит, инструмент возвращает ошибку:
{"success":false,"error":"Память заполнена на 2 100/2 200 символов. Добавление этой записи (250 символов) превысит лимит. Сначала замените или удалите существующие записи.","current_entries":["..."],"usage":"2 100/2 200"}
Затем агенту следует:
1. Прочитать текущие записи (показаны в ответе на деньги).
2. Ограничить записи, которые можно удалить или сказать.
3. Используйте команду replace для слияния записей в более короткой версии.
4. Затем добавьте новую запись.
** Лучшая практика: ** Когда память заполнена более чем на 80% (видно в заголовке системного приглашения), объединяйте записи перед добавлением новых. Например, государства делают заявления о том, что «проект использует X» в одной комплексной записи с описанием проекта.
Практические примеры хороших записей памяти
Компактные, информативные записи работают лучше всего:
Система памяти автоматически отклоняет точные дубликаты записей. Если вы попытаетесь добавить критерии, которые уже существуют, она вернёт успех с сообщением «публикация не добавлена».
Проверка безопасности
Записи памяти проверяются на наличие шаблонов инъекций и удаление данных перед их оформлением, поскольку они внедряются в системный запрос. Содержимое, содержащее невидимые символы Unicode, блокируется.
Поиск по сессиям
Помимо MEMORY.md и USER.md, агент может искать в своих прошлых разговорах с помощью инструмента session_search:
Все сеансы CLI и обмен сообщениями хранятся в SQLite (~/.hermes/state.db) с полнотекстовым поиском FTS5.
Поисковые запросы возвращают соответствующие прошлые разговоры с завершенризацией Gemini Flash
Агент может найти то, что обсуждалось неделями ранее, даже если этого нет в его активной памяти.
hermessessionslist# Просмотр прошлых сессий
session_search против памяти
функция
Постоянная память
Поиск по сессиям
Ёмкость
~1 300 токенов всего
Безлимитно (все сессии)
Скорость
Мгновенно (в системном режиме)
Требуется поиск + дальнейшая подготовка LLM
Сценарий использования
Ключевые факты всегда доступны
Поиск прошлых прошлых разговоров
Управление
Курируется агентом вручную
Автоматически — все сессии определяются
Стоимость токенов
Фиксированная за сессию (~1 300 токенов)
По запросу (ищутся при необходимости)
Память эти важные факты, которые всегда должны быть в двадцатом. Поиск по сессиям — для запроса «обсуждали ли мы X на прошлой неделе?», когда агенту нужно будет вернуть детали из прошлых разговоров.
Конфигурация
# В ~/.hermes/config.yamlmemory:memory_enabled:trueuser_profile_enabled:truememory_char_limit:2200# ~800 токеновuser_char_limit:1375# ~500 токенов
Внешние провайдеры памяти
Для более глубокой постоянной памяти, вы создаете рамки MEMORY.md и USER.md, Hermes подключается с 8 плагинами внешних провайдеров памяти — включая Honcho, OpenViking, Mem0, Hindsight, Holographic, RetainDB, ByteRover и Supermemory.
Внешние провайдеры работают ** параллельно** со встроенной памятью (никогда не заменяя ее) и включают такие возможности, как графические знания, семантический поиск, процент извлечения фактов и межсессионное моделирование пользователя.
hermesmemorysetup# выбрать провайдера и настроить
hermesmemorystatus# проверить, что активно
См. руководство Провайдеры памяти для получения полной информации от каждого провайдера, правил по настройке и анализу.