Ландшафт memory-систем для LLM-агентов

Источник: Шубин Данила, Habr, опубликовано 04.05.2026 Почему стоит читать: Честный сравнительный разбор, включает критику маркетинговых цифр Graphify.


Встроенная память чата — закрывает 80% задач

В апреле 2026: ChatGPT, Claude, Gemini — встроенная память включена по умолчанию. Никаких фреймворков.

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

  • Во время разговора генерируется сжатый профиль пользователя (~1К токенов)
  • Профиль автоматически в системный промпт каждой новой сессии
  • Можно явно «запомни» / «забудь»

Но у встроенной памяти 5 жёстких ограничений, на которых вырос весь остальной рынок:

#ОграничениеРешение
1Работает только в чат-продукте провайдера, не в APIMem0, Zep, Letta
2Память одного пользователя/чата, не multi-tenantMem0, Zep
3Факты в свободной форме, нет temporal/structured queriesZep
4Только про разговор, не про код/архитектуруGraphify
5Closed-box, нет контроля policyLetta

Mem0 — Память для разработчиков своих агентов

Что делает: Даёт API ровно той же памяти, что у ChatGPT, но для ваших own-агентов.

Архитектура (свежая версия):

  • ADD-only: LLM один раз извлекает новые факты, пишет рядом со старыми
  • Поиск с дедупликацией через embedding
  • Убрали поддержку Neo4j в open-source. Если читали paper апреля 2025 — архитектура уже другая.

Сильные стороны:

  • Минимальный overhead extraction (дешевле Zep)
  • 26% improvement над OpenAI Memory на бенчмарке LOCOMO

Слабые стороны:

  • Нет временной модели. «Пользователь был в Берлине, потом переехал в Лиссабон» → теряет историю или хранит обе записи
  • Семантические дубликаты (embedding-поиск не всегда склеивает похожие факты)

Когда использовать: Customer-support бот, персонализированный чат-агент, работаете с API без встроенной памяти.


Zep / Graphiti — Temporal Knowledge Graph

Что делает: Temporal граф — каждый факт имеет valid_from, valid_until, recorded_at.

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

  • Запрос «где жил пользователь 6 месяцев назад» → graph traversal по временным полям. Mem0 не может.
  • Отслеживание изменений фактов во времени

Бенчмарковая война Mem0 vs Zep (апрель 2025 → сейчас):

  • Mem0 опубликовал paper → Zep оспорил методологию (неправильный user_id)
  • Zep пересчитал: 75% J-score
  • Mem0 CTO ответил: при правильной методологии Zep = 58.44%
  • Независимые исследователи: воспроизвести ни те, ни те цифры не удаётся
  • «Индустрия достаточно молода, что бенчмарки оспариваются в issue-трекерах, а не в peer-reviewed publications»

Слабые стороны:

  • Огромный extraction overhead (несколько LLM-проходов на разговор)
  • Retrieval сразу после ingest часто фейлится (фоновая обработка — задержка минуты/часы)
  • Latency на сложных запросах — секунды вместо миллисекунд

Когда использовать: Финансовые/юридические агенты, где важна история изменений фактов.


Letta (бывший MemGPT) — OS Metaphor

Идея: Context window = процессор с RAM. Агент сам управляет перемещением между RAM (main context) и disk (archival storage).

Архитектура:

  • Main context (RAM) = системный промпт + текущие сообщения, лимит 16-32K токенов
  • Recall storage = полный лог, без лимита, требует поиска
  • Archival storage (disk) = произвольное хранилище, агент читает/пишет через function calls

При заполнении context на ~80% → агент получает «memory pressure warning» → сам решает что выгрузить.

Ключевое отличие: Память — не внешний сервис, а операция самого агента. Полный контроль policy («помни жалобы 2 года, забывай транзакции через 30 дней»).

Слабые стороны:

  • Steep learning curve (недели на тюнинг системного промпта)
  • Agentic loop overhead — лишний LLM-call на каждое «что положить в archival»
  • Production-кейсов пока единицы

Когда использовать: Regulated domains с требованиями аудита. Специфические policy памяти.


Graphify — Память для кода (отдельная категория)

Важно: Graphify — НЕ memory framework. Не хранит «факты о пользователе». Делает одну вещь: индексирует код в граф.

Почему это нужно:

  • Векторный поиск плохо работает с кодом («функции обрабатывающие платежи» → вытягивает всё с словом payment)
  • Архитектура кода (вызовы, импорты, наследование) — это граф
  • Claude Code без графа: час grep/glob чтобы понять архитектуру → десятки тысяч токенов

Стек:

  • NetworkX (in-memory граф), tree-sitter (AST, 25 языков) — без LLM за 0 токенов
  • Leiden clustering (community detection — группы связанных файлов)
  • vis.js (HTML-визуализация)
  • PreToolUse hook → перед каждым Glob/Grep → агент сначала читает GRAPH_REPORT.md

ВАЖНО — маркетинговые цифры требуют поправки:

ЗаявлениеРеальность
«71.5× меньше токенов»Лучший случай в синтетическом сценарии
«6.8× на code review, до 49×»Связанный проект code-review-graph
Реалистично:2-5× в среднем, до 10× при удачном совпадении структуры

«Главное, что Graphify делает: переводит задачу из неподходящего инструмента (full-context чтение) в подходящий (graph traversal). Это корректный инструмент для класса структурных вопросов — не магическая компрессия.»

Автор Graphify (safishamsi) строит коммерческий продукт Penpax поверх него — open-source с коммерческим интересом.


Karpathy LLM Wiki / Obsidian — Память для знаний

(Апрель 2026: гист karpathy/442a6bf555914893e9891c11519de94f → десятки форков)

Подход: LLM-поддерживаемая база знаний в Obsidian — не память про пользователя, а внешний мозг.

  • Постоянное накопление контекста между сессиями
  • Структурированные заметки, которые сам LLM читает и обновляет
  • Связь с CLAUDE.md, MEMORY.md паттернами

→ Этот vault использует именно этот подход. Подробно: Graphify vs Karpathy LLM Wiki


Матрица выбора

ВопросРешение
Нужна память про пользователя, работаю с APIMem0
Нужны temporal queries («что было 6 мес. назад»)Zep
Нужен полный контроль policy памятиLetta
Нужна архитектурная память про кодбазуGraphify
Нужна личная база знаний/контекст между сессиямиKarpathy LLM Wiki / Obsidian
Работаю в ChatGPT/Claude как продуктеВстроенная память (ничего не нужно)

Источник: Шубин Данила, Habr, 04.05.2026 Clipped: 2026-06-09