Постояннаяпамять

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

Как это работает

Память агента состоит из двух файлов:

Файл Назначение Ограничить символы
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 и повышения производительности. Когда агент добавляет/удаляет записи памяти во время сеанса, изменения сразу отображаются на диске, но не появляются в системном режиме до начала следующей сессии. Инструменты ответов всегда отображают актуальное состояние.

Действия инструмента памяти

Агент использует инструмент «память» с указанными действиями:

Действия 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 — Профиль пользователя

Для информации о личности пользователя, его предпочтениях и стиле общения:

Что сохранение, а что пропускать

Сохраняйте это (проактивно)

Агент сохраняется автоматически — вам не нужно просить. Он сохраняет, когда узнает:

Пропускайте это

Управление ёмкостью

Память имеет строгие лимиты символов, чтобы системные промпты были ограниченными:

Хранилище Лимит Типичное количество записей
память 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» в одной комплексной записи с описанием проекта.

Практические примеры хороших записей памяти

Компактные, информативные записи работают лучше всего:

# Хорошо: объединяет несколько связанных фактов
Пользователь работает на macOS 14 Sonoma, использует Homebrew, установлены Docker Desktop и Podman. Оболочка: zsh с oh-my-zsh. Редактор: VS Code с привязками клавиш Vim.

# Хорошо: конкретное, применимое соглашение
Проект ~/code/api использует Go 1.22, sqlc для запросов к БД, chi router. Запуск тестов: 'make test'. CI через GitHub Actions.

# Хорошо: извлечённый урок с контекстом
Сервер staging (10.0.1.50) требует SSH порт 2222, а не 22. Ключ находится в ~/.ssh/staging_ed25519.

# Плохо: слишком расплывчато
У пользователя есть проект.

# Плохо: слишком многословно
5 января 2026 года пользователь попросил меня посмотреть его проект,
который находится в ~/code/api. Я обнаружил, что он использует Go версии 1.22 и...

Предотвращение дубликатов

Система памяти автоматически отклоняет точные дубликаты записей. Если вы попытаетесь добавить критерии, которые уже существуют, она вернёт успех с сообщением «публикация не добавлена».

Проверка безопасности

Записи памяти проверяются на наличие шаблонов инъекций и удаление данных перед их оформлением, поскольку они внедряются в системный запрос. Содержимое, содержащее невидимые символы Unicode, блокируется.

Поиск по сессиям

Помимо MEMORY.md и USER.md, агент может искать в своих прошлых разговорах с помощью инструмента session_search:

hermes sessions list    # Просмотр прошлых сессий
функция Постоянная память Поиск по сессиям
Ёмкость ~1 300 токенов всего Безлимитно (все сессии)
Скорость Мгновенно (в системном режиме) Требуется поиск + дальнейшая подготовка LLM
Сценарий использования Ключевые факты всегда доступны Поиск прошлых прошлых разговоров
Управление Курируется агентом вручную Автоматически — все сессии определяются
Стоимость токенов Фиксированная за сессию (~1 300 токенов) По запросу (ищутся при необходимости)

Память эти важные факты, которые всегда должны быть в двадцатом. Поиск по сессиям — для запроса «обсуждали ли мы X на прошлой неделе?», когда агенту нужно будет вернуть детали из прошлых разговоров.

Конфигурация

# В ~/.hermes/config.yaml
memory:
  memory_enabled: true
  user_profile_enabled: true
  memory_char_limit: 2200   # ~800 токенов
  user_char_limit: 1375     # ~500 токенов

Внешние провайдеры памяти

Для более глубокой постоянной памяти, вы создаете рамки MEMORY.md и USER.md, Hermes подключается с 8 плагинами внешних провайдеров памяти — включая Honcho, OpenViking, Mem0, Hindsight, Holographic, RetainDB, ByteRover и Supermemory.

Внешние провайдеры работают ** параллельно** со встроенной памятью (никогда не заменяя ее) и включают такие возможности, как графические знания, семантический поиск, процент извлечения фактов и межсессионное моделирование пользователя.

hermes memory setup      # выбрать провайдера и настроить
hermes memory status     # проверить, что активно

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