Ландшафт memory-систем для LLM-агентов
Источник: Шубин Данила, Habr, опубликовано 04.05.2026 Почему стоит читать: Честный сравнительный разбор, включает критику маркетинговых цифр Graphify.
Встроенная память чата — закрывает 80% задач
В апреле 2026: ChatGPT, Claude, Gemini — встроенная память включена по умолчанию. Никаких фреймворков.
Как работает:
- Во время разговора генерируется сжатый профиль пользователя (~1К токенов)
- Профиль автоматически в системный промпт каждой новой сессии
- Можно явно «запомни» / «забудь»
Но у встроенной памяти 5 жёстких ограничений, на которых вырос весь остальной рынок:
| # | Ограничение | Решение |
|---|---|---|
| 1 | Работает только в чат-продукте провайдера, не в API | Mem0, Zep, Letta |
| 2 | Память одного пользователя/чата, не multi-tenant | Mem0, Zep |
| 3 | Факты в свободной форме, нет temporal/structured queries | Zep |
| 4 | Только про разговор, не про код/архитектуру | Graphify |
| 5 | Closed-box, нет контроля policy | Letta |
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
Матрица выбора
| Вопрос | Решение |
|---|---|
| Нужна память про пользователя, работаю с API | Mem0 |
| Нужны temporal queries («что было 6 мес. назад») | Zep |
| Нужен полный контроль policy памяти | Letta |
| Нужна архитектурная память про кодбазу | Graphify |
| Нужна личная база знаний/контекст между сессиями | Karpathy LLM Wiki / Obsidian |
| Работаю в ChatGPT/Claude как продукте | Встроенная память (ничего не нужно) |
Источник: Шубин Данила, Habr, 04.05.2026 Clipped: 2026-06-09