Memory OS: шестислойная система памяти с открытым кодом для агента Hermes

Открытый агент Hermes Agent от Nous Research и так умеет запоминать контекст между сессиями — у него есть файлы с курируемой памятью и полнотекстовый поиск по истории диалогов. Но разработчик, известный под ником ClaudioDrews, посчитал встроенную память слишком поверхностной для серьёзной работы и выпустил под лицензией MIT библиотеку Memory OS, которая надстраивает над Hermes сразу шесть слоёв памяти — от локальных файлов до векторной базы данных.

Что такое Memory OS

Memory OS — это не плагин, который просто включается поверх Hermes. Это отдельная многослойная система, работающая рядом с родной памятью агента: она сохраняет файлы рабочего пространства и базу сессий Hermes и добавляет к ним ещё четыре слоя. Весь стек разворачивается локально через Docker, Qdrant, Redis и Python 3.11+, и работает с любым LLM-провайдером, который поддерживает Hermes, — OpenRouter, OpenAI, Anthropic или Ollama. В README проект описан как «операционная система памяти», а не как рядовая функция.

Шесть слоёв — от файлов до векторов

Слой 1 — Workspace: файлы MEMORY.md, USER.md и CREATIVE.md, которые подставляются в системный промпт на каждом шаге.

Слой 2 — Sessions: база state.db на SQLite с полнотекстовым поиском FTS5 по истории переписки.

Слой 3 — Structured Facts: устойчивые факты хранятся в memory_store.db с использованием SQLite, HRR и FTS5, а также системы доверительных оценок (trust scoring). Обратная связь корректирует эти оценки со временем вместе с разрешением сущностей (entity resolution).

Слой 4 — Fabric, сильно переработанный форк Icarus Plugin. По сравнению с исходным esaradev/icarus-plugin форк добавляет извлечение сессий силами LLM и обеспечивает кросс-сессионное вспоминание через 16 инструментов, включая fabric_recall, fabric_write и fabric_brief.

Слой 5 — векторная база на Qdrant с 4096-мерными косинусными векторами плюс разреженный поиск BM25 (ранжирование по ключевым словам).

Слой 6 — LLM Wiki, автоматически курируемое хранилище понятий, сущностей и сравнений. Эта вики непрерывно возвращается обратно в Qdrant через процесс wiki-continuous-ingest.

Как устроено извлечение и запись памяти

На этапе pre_llm_call Memory OS выполняет так называемое «хирургическое вспоминание»: параллельно опрашивает четыре источника — Fabric, Qdrant, Sessions и Facts. Каждый источник отсекается порогом релевантности прежде, чем что-либо попадёт в модель. Дедупликация в рамках сессии не даёт одному и тому же контексту появляться дважды, а фильтр-«социальный завершитель» отсекает тривиальные реплики вроде простого «спасибо». На этапах post_llm_call и on_session_end система автоматически извлекает и фиксирует новые знания. Заявленная цель — экономия токенов, а не набивание контекстного окна.

Каскад отказоустойчивости и уборка мусора

Поиск на пятом слое построен на четырёхуровневом резервном каскаде: сначала гибридный поиск, затем плотные векторы, затем лексический поиск, и в конце — SQLite. Если один метод не срабатывает или не находит результата, подключается следующий. Раз в неделю запускается сканер устаревания, который убирает залежавшиеся записи, а семантическая дедупликация объединяет почти идентичные воспоминания при косинусном сходстве выше 0,92. Эти меры по обслуживанию призваны не дать памяти раздуться за месяцы использования.

Локально — и осознанно

Memory OS позиционируется как альтернатива облачным сервисам памяти вроде mem0, Zep и Letta: данные памяти остаются на локальной машине без подписки, хотя сами вызовы LLM по-прежнему уходят к выбранному провайдеру. Сам Hermes уже поддерживает восемь внешних провайдеров памяти, включая mem0 и Honcho, но Memory OS в их число официально не входит — это отдельный проект сообщества, надстроенный поверх Hermes напрямую. Для команд с требованиями к локализации данных такая полностью локальная память может быть существенным аргументом.

Сильные и слабые стороны

Среди плюсов авторы отмечают чёткое разделение на слои файлов, сессий, фактов, векторов и вики, полностью локальную инфраструктуру без облачной подписки, независимость от конкретного LLM-провайдера (как и у самого Hermes) и продуманную экономию токенов за счёт фильтрации источников и дедупликации.

Минусы тоже очевидны: проект совсем новый, коммитов пока немного; форк Icarus Plugin, по словам автора, несовместим с апстримом; для развёртывания требуется тяжёлый набор компонентов — Docker, Qdrant, Redis и ARQ Worker; опубликованных бенчмарков по качеству вспоминания, задержкам или экономии токенов пока нет.

Источник: MarkTechPost.