Провайдеры памяти

Hermes Agent поставляется с 8 плагинами внешних провайдеров памяти, которые дают агенту постоянные, кросс-сессионные знания, дополняющие встроенные MEMORY.md и USER.md. Одновременно может быть активен только один внешний провайдер — встроенная память всегда активна параллельно с ним.

Быстрый старт

hermes memory setup      # интерактивный выбор + настройка
hermes memory status     # проверка активного провайдера
hermes memory off        # отключение внешнего провайдера

Также можно выбрать активный провайдер памяти через hermes plugins → Provider Plugins → Memory Provider.

Или указать вручную в ~/.hermes/config.yaml:

memory:
  provider: openviking   # или honcho, mem0, hindsight, holographic, retaindb, byterover, supermemory

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

Когда провайдер памяти активен, Hermes автоматически:

  1. Внедряет контекст провайдера в системный промпт (то, что известно провайдеру)

  2. Предварительно извлекает релевантные воспоминания перед каждым шагом (фоновая, неблокирующая операция)

  3. Синхронизирует сообщения беседы с провайдером после каждого ответа

  4. Извлекает воспоминания при завершении сессии (для провайдеров, которые это поддерживают)

  5. Зеркалирует записи встроенной памяти во внешний провайдер

  6. Добавляет инструменты провайдера, чтобы агент мог искать, хранить и управлять воспоминаниями

Встроенная память (MEMORY.md / USER.md) продолжает работать как и прежде. Внешний провайдер является дополнением.

Доступные провайдеры

Honcho

AI-native кросс-сессионное моделирование пользователя с диалектическим рассуждением, внедрением контекста в рамках сессии, семантическим поиском и постоянными выводами. Базовый контекст теперь включает краткое содержание сессии наряду с представлением пользователя и карточками пиров, что дает агенту осведомлённость о том, что уже обсуждалось.

Лучше всего для Мультиагентных систем с контекстом между сессиями, согласование пользователя и агента
Требует pip install honcho-ai + API-ключ или собственный сервер
Хранение данных Honcho Cloud или собственный сервер
Стоимость Тарифы Honcho (облако) / бесплатно (собственный сервер)

Инструменты (5): honcho_profile (чтение/обновление карточки пира), honcho_search (семантический поиск), honcho_context (контекст сессии — краткое содержание, представление, карточка, сообщения), honcho_reasoning (синтезировано LLM), honcho_conclude (создание/удаление выводов)

Архитектура: Двухуровневое внедрение контекста — базовый слой (краткое содержание сессии + представление + карточка пира, обновляется по contextCadence) плюс диалектическое дополнение (рассуждения LLM, обновляется по dialecticCadence). Диалектика автоматически выбирает между холодными промптами (общие факты о пользователе) и горячими промптами (контекст сессии) в зависимости от наличия базового контекста.

Три независимые ручки настройки управляют стоимостью и глубиной по отдельности:

Мастер настройки:

hermes memory setup        # выберите "honcho" — запускает пост-настройку для Honcho

Устаревшая команда hermes honcho setup всё ещё работает (теперь она перенаправляет на hermes memory setup), но регистрируется только после выбора Honcho в качестве активного провайдера памяти.

Конфигурация: $HERMES_HOME/honcho.json (локальная для профиля) или ~/.honcho/config.json (глобальная). Порядок разрешения: $HERMES_HOME/honcho.json > ~/.hermes/honcho.json > ~/.honcho/config.json. См. справочник по конфигурации и руководство по интеграции Honcho.

Полный справочник конфигурации | Ключ | По умолчанию | Описание | |------|-------------|----------| | `apiKey` | -- | API-ключ от [app.honcho.dev](https://app.honcho.dev) | | `baseUrl` | -- | Базовый URL для собственного сервера Honcho | | `peerName` | -- | Идентификатор пира-пользователя | | `aiPeer` | ключ хоста | Идентификатор AI-пира (один на профиль) | | `workspace` | ключ хоста | ID общего рабочего пространства | | `contextTokens` | `null` (без лимита) | Бюджет токенов для автоматически внедряемого контекста на шаг. Обрезается по границам слов | | `contextCadence` | `1` | Минимум шагов между API-вызовами `context()` (обновление базового слоя) | | `dialecticCadence` | `2` | Минимум шагов между LLM-вызовами `peer.chat()`. Рекомендуется 1–5. Применяется только в режимах `hybrid`/`context` | | `dialecticDepth` | `1` | Количество проходов `.chat()` на один вызов диалектики. Ограничено 1–3. Проход 0: холодный/горячий промпт, проход 1: самоаудит, проход 2: согласование | | `dialecticDepthLevels` | `null` | Опциональный массив уровней рассуждения на проход, например `["minimal", "low", "medium"]`. Переопределяет пропорциональные значения по умолчанию | | `dialecticReasoningLevel` | `'low'` | Базовый уровень рассуждения: `minimal`, `low`, `medium`, `high`, `max` | | `dialecticDynamic` | `true` | Если `true`, модель может переопределять уровень рассуждения при каждом вызове через параметр инструмента | | `dialecticMaxChars` | `600` | Макс. символов результата диалектики, внедряемого в системный промпт | | `recallMode` | `'hybrid'` | `hybrid` (автовнедрение + инструменты), `context` (только внедрение), `tools` (только инструменты) | | `writeFrequency` | `'async'` | Когда сбрасывать сообщения: `async` (фоновый поток), `turn` (синхронно), `session` (пакетно при завершении) или целое число N | | `saveMessages` | `true` | Сохранять ли сообщения в Honcho API | | `observationMode` | `'directional'` | `directional` (все включено) или `unified` (общий пул). Переопределяется объектом `observation` | | `messageMaxChars` | `25000` | Макс. символов на сообщение (разбивается на части при превышении) | | `dialecticMaxInputChars` | `10000` | Макс. символов для ввода запроса диалектики в `peer.chat()` | | `sessionStrategy` | `'per-directory'` | `per-directory`, `per-repo`, `per-session`, `global` |
Минимальный honcho.json (облако)
{
  "apiKey": "your-key-from-app.honcho.dev",
  "hosts": {
    "hermes": {
      "enabled": true,
      "aiPeer": "hermes",
      "peerName": "your-name",
      "workspace": "hermes"
    }
  }
}
Минимальный honcho.json (собственный сервер)
{
  "baseUrl": "http://localhost:8000",
  "hosts": {
    "hermes": {
      "enabled": true,
      "aiPeer": "hermes",
      "peerName": "your-name",
      "workspace": "hermes"
    }
  }
}

💡 Миграция с hermes honcho Если вы ранее использовали hermes honcho setup, ваша конфигурация и все данные на сервере сохранены. Просто повторно включите через мастер настройки или вручную укажите memory.provider: honcho для реактивации через новую систему.

Мульти-пировая настройка:

Honcho моделирует беседы как обмен сообщениями между пирами — один пользовательский пир плюс один AI-пир на профиль Hermes, все в одном рабочем пространстве. Рабочее пространство — это общая среда: пользовательский пир глобален для всех профилей, каждый AI-пир имеет свою собственную идентичность. Каждый AI-пир строит независимое представление/карточку на основе собственных наблюдений, поэтому профиль coder остаётся ориентированным на код, а профиль writer — на редактуру, при том же пользователе.

Соответствие:

Понятие Что это
Рабочее пространство (Workspace) Общая среда. Все профили Hermes в одном workspace видят одну и ту же пользовательскую идентичность.
Пользовательский пир (peerName) Человек. Общий для всех профилей в workspace.
AI-пир (aiPeer) Один на профиль Hermes. Ключ хоста hermes → по умолчанию; hermes.<profile> для остальных.
Наблюдение (Observation) Попировые переключатели, управляющие тем, из чьих сообщений Honcho строит модели. directional (по умолчанию, все четыре включены) или unified (единый пул наблюдателей).

Новый профиль, свежий Honcho-пир

hermes profile create coder --clone

--clone создаёт блок хоста hermes.coder в honcho.json с aiPeer: "coder", общим workspace, унаследованными peerName, recallMode, writeFrequency, observation и т.д. AI-пир создаётся в Honcho заранее, чтобы существовать до первого сообщения.

Существующие профили, заполнение Honcho-пиров

hermes honcho sync

Сканирует каждый профиль Hermes, создаёт блоки хостов для профилей без такового, наследует настройки из блока hermes по умолчанию и создаёт новые AI-пиры заранее. Идемпотентно — пропускает профили, у которых уже есть блок хоста.

Попировая настройка наблюдения

Каждый блок хоста может переопределять конфигурацию наблюдения независимо. Пример: профиль, ориентированный на код, где AI-пир наблюдает пользователя, но не моделирует себя:

"hermes.coder": {
  "aiPeer": "coder",
  "observation": {
    "user": { "observeMe": true, "observeOthers": true },
    "ai":   { "observeMe": false, "observeOthers": true }
  }
}

Переключатели наблюдения (один набор на пира):

Переключатель Эффект
observeMe Honcho строит представление этого пира из его собственных сообщений
observeOthers Этот пир наблюдает сообщения другого пира (питает кросс-пировое рассуждение)

Пресеты через observationMode:

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

См. страницу Honcho для полного справочника по наблюдению.

Полный пример honcho.json (мульти-профильный)
{
  "apiKey": "your-key",
  "workspace": "hermes",
  "peerName": "eri",
  "hosts": {
    "hermes": {
      "enabled": true,
      "aiPeer": "hermes",
      "workspace": "hermes",
      "peerName": "eri",
      "recallMode": "hybrid",
      "writeFrequency": "async",
      "sessionStrategy": "per-directory",
      "observation": {
        "user": { "observeMe": true, "observeOthers": true },
        "ai": { "observeMe": true, "observeOthers": true }
      },
      "dialecticReasoningLevel": "low",
      "dialecticDynamic": true,
      "dialecticCadence": 2,
      "dialecticDepth": 1,
      "dialecticMaxChars": 600,
      "contextCadence": 1,
      "messageMaxChars": 25000,
      "saveMessages": true
    },
    "hermes.coder": {
      "enabled": true,
      "aiPeer": "coder",
      "workspace": "hermes",
      "peerName": "eri",
      "recallMode": "tools",
      "observation": {
        "user": { "observeMe": true, "observeOthers": false },
        "ai": { "observeMe": true, "observeOthers": true }
      }
    },
    "hermes.writer": {
      "enabled": true,
      "aiPeer": "writer",
      "workspace": "hermes",
      "peerName": "eri"
    }
  },
  "sessions": {
    "/home/user/myproject": "myproject-main"
  }
}

См. справочник по конфигурации и руководство по интеграции Honcho.


OpenViking

Контекстная база данных от Volcengine (ByteDance) с иерархией знаний в стиле файловой системы, многоуровневым извлечением и автоматическим выделением воспоминаний в 6 категорий.

Лучше всего для Самостоятельного управления знаниями со структурированным просмотром
Требует pip install openviking + запущенный сервер
Хранение данных Собственный сервер (локальный или облачный)
Стоимость Бесплатно (с открытым исходным кодом, AGPL-3.0)

Инструменты: viking_search (семантический поиск), viking_read (многоуровнево: абстракт/обзор/полный), viking_browse (навигация по файловой системе), viking_remember (сохранение фактов), viking_add_resource (добавление URL/документов)

Настройка:

# Сначала запустите сервер OpenViking
pip install openviking
openviking-server

# Затем настройте Hermes
hermes memory setup    # выберите "openviking"
# Или вручную:
hermes config set memory.provider openviking
echo "OPENVIKING_ENDPOINT=http://localhost:1933" >> ~/.hermes/.env

Ключевые возможности:


Mem0

Серверное извлечение фактов с помощью LLM с семантическим поиском, переранжированием и автоматической дедупликацией.

Лучше всего для Автоматического управления памятью — Mem0 обрабатывает извлечение автоматически
Требует pip install mem0ai + API-ключ
Хранение данных Mem0 Cloud
Стоимость Тарифы Mem0

Инструменты: mem0_profile (все сохранённые воспоминания), mem0_search (семантический поиск + переранжирование), mem0_conclude (сохранение фактов дословно)

Настройка:

hermes memory setup    # выберите "mem0"
# Или вручную:
hermes config set memory.provider mem0
echo "MEM0_API_KEY=your-key" >> ~/.hermes/.env

Конфигурация: $HERMES_HOME/mem0.json

Ключ По умолчанию Описание
user_id hermes-user Идентификатор пользователя
agent_id hermes Идентификатор агента

Hindsight

Долговременная память с графом знаний, разрешением сущностей и многостратегическим извлечением. Инструмент hindsight_reflect обеспечивает кросс-мемориальный синтез, которого нет ни у одного другого провайдера. Автоматически сохраняет полные сообщения беседы (включая вызовы инструментов) с отслеживанием документов на уровне сессии.

Лучше всего для Извлечения на основе графа знаний со связями между сущностями
Требует Облако: API-ключ от ui.hindsight.vectorize.io. Локально: LLM API-ключ (OpenAI, Groq, OpenRouter и т.д.)
Хранение данных Hindsight Cloud или локальный встроенный PostgreSQL
Стоимость Тарифы Hindsight (облако) или бесплатно (локально)

Инструменты: hindsight_retain (сохранение с извлечением сущностей), hindsight_recall (многостратегический поиск), hindsight_reflect (кросс-мемориальный синтез)

Настройка:

hermes memory setup    # выберите "hindsight"
# Или вручную:
hermes config set memory.provider hindsight
echo "HINDSIGHT_API_KEY=your-key" >> ~/.hermes/.env

Мастер настройки устанавливает зависимости автоматически и устанавливает только то, что нужно для выбранного режима (hindsight-client для облака, hindsight-all для локального). Требуется hindsight-client >= 0.4.22 (автоматически обновляется при запуске сессии, если устарело).

Локальный режим UI: hindsight-embed -p hermes ui start

Конфигурация: $HERMES_HOME/hindsight/config.json

Ключ По умолчанию Описание
mode cloud cloud или local
bank_id hermes Идентификатор банка памяти
recall_budget mid Тщательность извлечения: low / mid / high
memory_mode hybrid hybrid (контекст + инструменты), context (только авто-внедрение), tools (только инструменты)
auto_retain true Автоматически сохранять сообщения беседы
auto_recall true Автоматически извлекать воспоминания перед каждым шагом
retain_async true Обрабатывать сохранение асинхронно на сервере
retain_context conversation between Hermes Agent and the User Метка контекста для сохранённых воспоминаний
retain_tags Теги по умолчанию для сохраняемых воспоминаний; объединяются с тегами инструментов при вызове
retain_source Опциональный metadata.source, прикрепляемый к сохраняемым воспоминаниям
retain_user_prefix User Метка перед сообщениями пользователя в автоматически сохраняемых транскриптах
retain_assistant_prefix Assistant Метка перед сообщениями ассистента в автоматически сохраняемых транскриптах
recall_tags Теги для фильтрации при извлечении

См. README плагина для полного справочника по конфигурации.


Holographic

Локальное хранилище фактов на SQLite с полнотекстовым поиском FTS5, оценкой доверия и HRR (Holographic Reduced Representations) для композиционных алгебраических запросов.

Лучше всего для Локальной памяти с расширенным поиском, без внешних зависимостей
Требует Ничего (SQLite всегда доступен). NumPy опционально для алгебры HRR.
Хранение данных Локальный SQLite
Стоимость Бесплатно

Инструменты: fact_store (9 действий: add, search, probe, related, reason, contradict, update, remove, list), fact_feedback (полезно/бесполезно — оценка, обучающая показатели доверия)

Настройка:

hermes memory setup    # выберите "holographic"
# Или вручную:
hermes config set memory.provider holographic

Конфигурация: config.yaml в разделе plugins.hermes-memory-store

Ключ По умолчанию Описание
db_path $HERMES_HOME/memory_store.db Путь к базе данных SQLite
auto_extract false Автоматическое извлечение фактов при завершении сессии
default_trust 0.5 Оценка доверия по умолчанию (0.0–1.0)

Уникальные возможности:


RetainDB

Облачный API памяти с гибридным поиском (Vector + BM25 + Reranking), 7 типами памяти и дельта-сжатием.

Лучше всего для Команд, уже использующих инфраструктуру RetainDB
Требует Аккаунт RetainDB + API-ключ
Хранение данных RetainDB Cloud
Стоимость $20/месяц

Инструменты: retaindb_profile (профиль пользователя), retaindb_search (семантический поиск), retaindb_context (контекст по задаче), retaindb_remember (сохранение с типом + важностью), retaindb_forget (удаление воспоминаний)

Настройка:

hermes memory setup    # выберите "retaindb"
# Или вручную:
hermes config set memory.provider retaindb
echo "RETAINDB_API_KEY=your-key" >> ~/.hermes/.env

ByteRover

Постоянная память через CLI brv — иерархическое дерево знаний с многоуровневым извлечением (нечёткий текст → поиск через LLM). Локально-ориентированная с опциональной облачной синхронизацией.

Лучше всего для Разработчиков, которым нужна портативная локальная память с CLI
Требует ByteRover CLI (npm install -g byterover-cli или скрипт установки)
Хранение данных Локально (по умолчанию) или ByteRover Cloud (опциональная синхронизация)
Стоимость Бесплатно (локально) или тарифы ByteRover (облако)

Инструменты: brv_query (поиск в дереве знаний), brv_curate (сохранение фактов/решений/шаблонов), brv_status (версия CLI + статистика дерева)

Настройка:

# Сначала установите CLI
curl -fsSL https://byterover.dev/install.sh | sh

# Затем настройте Hermes
hermes memory setup    # выберите "byterover"
# Или вручную:
hermes config set memory.provider byterover

Ключевые возможности:


Supermemory

Семантическая долговременная память с профильным извлечением, семантическим поиском, явными инструментами памяти и загрузкой беседы при завершении сессии через API графа Supermemory.

Лучше всего для Семантического извлечения с профилированием пользователя и построением графа на уровне сессий
Требует pip install supermemory + API-ключ
Хранение данных Supermemory Cloud
Стоимость Тарифы Supermemory

Инструменты: supermemory_store (сохранение явных воспоминаний), supermemory_search (поиск по семантической близости), supermemory_forget (забывание по ID или лучшему совпадению), supermemory_profile (постоянный профиль + недавний контекст)

Настройка:

hermes memory setup    # выберите "supermemory"
# Или вручную:
hermes config set memory.provider supermemory
echo 'SUPERMEMORY_API_KEY=***' >> ~/.hermes/.env

Конфигурация: $HERMES_HOME/supermemory.json

Ключ По умолчанию Описание
container_tag hermes Тег контейнера для поиска и записи. Поддерживает шаблон {identity} для тегов в рамках профиля.
auto_recall true Внедрять релевантный контекст памяти перед шагами
auto_capture true Сохранять очищенные сообщения пользователя и ассистента после каждого ответа
max_recall_results 10 Макс. извлекаемых элементов для форматирования в контекст
profile_frequency 50 Включать факты профиля на первом шаге и каждые N шагов
capture_mode all Пропускать крошечные или тривиальные шаги по умолчанию
search_mode hybrid Режим поиска: hybrid, memories или documents
api_timeout 5.0 Тайм-аут для SDK и запросов загрузки

Переменные окружения: SUPERMEMORY_API_KEY (обязательно), SUPERMEMORY_CONTAINER_TAG (переопределяет конфигурацию).

Ключевые возможности:

Пример многоконтейнерной конфигурации
{
  "container_tag": "hermes",
  "enable_custom_container_tags": true,
  "custom_containers": ["project-alpha", "shared-knowledge"],
  "custom_container_instructions": "Use project-alpha for coding context."
}

Поддержка: Discord · support@supermemory.com


Сравнение провайдеров

Провайдер Хранение Стоимость Инструменты Зависимости Уникальная возможность
Honcho Облако Платно 5 honcho-ai Диалектическое моделирование пользователя + контекст сессии
OpenViking Свой сервер Бесплатно 5 openviking + сервер Файловая иерархия + многоуровневая загрузка
Mem0 Облако Платно 3 mem0ai Серверное извлечение LLM
Hindsight Облако/Локально Бесплатно/Платно 3 hindsight-client Граф знаний + синтез reflect
Holographic Локально Бесплатно 2 Нет Алгебра HRR + оценка доверия
RetainDB Облако $20/мес 5 requests Дельта-сжатие
ByteRover Локально/Облако Бесплатно/Платно 3 brv CLI Извлечение перед сжатием
Supermemory Облако Платно 4 supermemory Экранирование контекста + загрузка графа сессии + мульти-контейнер

Изоляция профилей

Данные каждого провайдера изолированы по профилям:

Создание провайдера памяти

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