Провайдеры памяти
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 автоматически:
-
Внедряет контекст провайдера в системный промпт (то, что известно провайдеру)
-
Предварительно извлекает релевантные воспоминания перед каждым шагом (фоновая, неблокирующая операция)
-
Синхронизирует сообщения беседы с провайдером после каждого ответа
-
Извлекает воспоминания при завершении сессии (для провайдеров, которые это поддерживают)
-
Зеркалирует записи встроенной памяти во внешний провайдер
-
Добавляет инструменты провайдера, чтобы агент мог искать, хранить и управлять воспоминаниями
Встроенная память (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). Диалектика автоматически выбирает между холодными промптами (общие факты о пользователе) и горячими промптами (контекст сессии) в зависимости от наличия базового контекста.
Три независимые ручки настройки управляют стоимостью и глубиной по отдельности:
-
contextCadence— как часто обновляется базовый слой (частота API-запросов) -
dialecticCadence— как часто запускается диалектический LLM (частота LLM-запросов) -
dialecticDepth— количество проходов.chat()на один вызов диалектики (1–3, глубина рассуждения)
Мастер настройки:
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:
-
"directional"(по умолчанию) — все четыре флага включены. Полное взаимное наблюдение; включает кросс-пировую диалектику. -
"unified"— пользовательobserveMe: true, AIobserveOthers: true, остальные false. Единый пул наблюдателей; AI моделирует пользователя, но не себя, пользовательский пир моделирует только себя.
Переключатели на стороне сервера, установленные через панель 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
Ключевые возможности:
-
Многоуровневая загрузка контекста: L0 (~100 токенов) → L1 (~2k) → L2 (полный)
-
Автоматическое извлечение воспоминаний при завершении сессии (профиль, предпочтения, сущности, события, случаи, шаблоны)
-
Схема URI
viking://для иерархического просмотра знаний
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) |
Уникальные возможности:
-
probe— алгебраический поиск по конкретной сущности (все факты о человеке/объекте) -
reason— композиционные AND-запросы по нескольким сущностям -
contradict— автоматическое обнаружение противоречащих фактов -
Оценка доверия с асимметричной обратной связью (+0.05 полезно / -0.10 бесполезно)
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
Ключевые возможности:
-
Автоматическое извлечение перед сжатием (сохраняет инсайты до того, как сжатие контекста их отбрасывает)
-
Дерево знаний хранится в
$HERMES_HOME/byterover/(в рамках профиля) -
SOC2 Type II сертифицированная облачная синхронизация (опционально)
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 (переопределяет конфигурацию).
Ключевые возможности:
-
Автоматическое экранирование контекста — удаляет извлечённые воспоминания из захваченных сообщений, предотвращая рекурсивное загрязнение памяти
-
Загрузка беседы при завершении сессии для более богатого построения знаний на уровне графа
-
Факты профиля внедряются на первом шаге и с настраиваемыми интервалами
-
Фильтрация тривиальных сообщений (пропускает "ок", "спасибо" и т.д.)
-
Контейнеры в рамках профиля — используйте
{identity}вcontainer_tag(напримерhermes-{identity}→hermes-coder) для изоляции воспоминаний по профилям Hermes -
Многоконтейнерный режим — включите
enable_custom_container_tagsсо спискомcustom_containers, чтобы агент мог читать/писать в именованные контейнеры. Автоматические операции (синхронизация, предварительная выборка) остаются на основном контейнере.
Пример многоконтейнерной конфигурации
{
"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 |
Экранирование контекста + загрузка графа сессии + мульти-контейнер |
Изоляция профилей
Данные каждого провайдера изолированы по профилям:
-
Провайдеры локального хранения (Holographic, ByteRover) используют пути
$HERMES_HOME/, которые различаются для каждого профиля -
Провайдеры с файлом конфигурации (Honcho, Mem0, Hindsight, Supermemory) хранят конфиг в
$HERMES_HOME/, поэтому каждый профиль имеет свои учётные данные -
Облачные провайдеры (RetainDB) автоматически создают имена проектов с учётом профиля
-
Провайдеры с переменными окружения (OpenViking) настраиваются через файл
.envкаждого профиля
Создание провайдера памяти
См. Руководство разработчика: Плагины провайдеров памяти для информации о создании собственного провайдера.