Hindsight — open-source память для AI-агентов, которая учится как человеческий мозг, а не как тупой поиск по векторам
Hindsight — open-source память для AI-агентов, которая учится как человеческий мозг, а не как тупой поиск по векторам
Каждый, кто строил AI-агента, сталкивался с одной и той же проблемой: агент забывает всё между сессиями. Ты объяснил ему контекст проекта, показал предпочтения, рассказал про архитектуру — а через час он снова спрашивает «а какой у вас фреймворк?». RAG? Он ищет по семантике и понятия не имеет, что «прошлой весной» — это конкретный период времени. Knowledge graph? Он хранит связи, но не умеет делать выводы из накопленного опыта.
Hindsight от Vectorize.io подходит к проблеме иначе: вместо одной стратегии поиска — четыре параллельных, вместо плоского хранилища — иерархия фактов, наблюдений и ментальных моделей, и вместо пассивного recall — активный reflect, где агент сам формирует убеждения на основе накопленных данных.
TL;DR: Hindsight — open-source (MIT) система памяти для AI-агентов. Три операции: Retain (сохранить), Recall (вспомнить), Reflect (осмыслить). Четыре параллельных стратегии поиска. SOTA на LongMemEval: 89% с open-source моделью на 120B. Docker за 60 секунд. 4 000+ звёзд на GitHub.
Зачем нужна специализированная память
Простой пример. Агент за три месяца работы с пользователем накопил сотни фактов: «Алиса работает в Google», «Google находится в Mountain View», «Алиса переехала в Сан-Франциско в прошлом мае». Простой RAG на вопрос «где живёт Алиса?» может выдать «Mountain View» — потому что семантически Google и местоположение связаны сильнее, чем факт о переезде, который записан другими словами.
Hindsight решает это через четыре параллельных стратегии поиска (авторы называют подход TEMPR):
- Semantic — классический поиск по смыслу через эмбеддинги
- Keyword (BM25) — точное совпадение имён, терминов, идентификаторов
- Graph — связи между сущностями: «Алиса → работает → Google → находится → Mountain View»
- Temporal — временные запросы: «прошлой весной», «после января 2026»
Результаты четырёх стратегий объединяются через reciprocal rank fusion и перетасовываются cross-encoder reranker'ом. На выходе — не просто «ближайшие по косинусу документы», а контекст, в котором учтены время, связи между сущностями и точные совпадения.
Три операции: Retain, Recall, Reflect
Вся архитектура Hindsight строится вокруг трёх действий.
Retain — запомнить
Принимает текст, прогоняет его через LLM для извлечения фактов. Из сырого текста «Мы вчера обсуждали миграцию на PostgreSQL 17, Петя сказал, что deadline — пятница» вытаскиваются атомарные факты: кто, что, когда, с какой уверенностью. Каждый факт индексируется по всем четырём стратегиям.
После записи фактов запускается фоновая консолидация наблюдений: система сопоставляет новые факты с уже существующими и формирует обобщения. Если за неделю накопилось 15 фактов про проблемы с деплоем — Hindsight создаст observation «деплой нестабилен, основные причины: X, Y, Z» с ссылками на исходные факты.
from hindsight_client import Hindsight client = Hindsight(base_url="http://localhost:8888") # Сохраняем факт client.retain( bank_id="project-memory", content="Алиса провела код-ревью PR #342. Нашла race condition в обработчике WebSocket-подключений. Fix займёт ~2 дня." )
Recall — вспомнить
Ищет по четырём стратегиям параллельно, возвращает релевантные факты в пределах заданного token budget.
results = client.recall( bank_id="project-memory", query="Какие проблемы нашла Алиса на прошлой неделе?" ) # Вернёт факт о race condition + все связанные наблюдения
Reflect — осмыслить
Самая интересная часть. Reflect не просто ищет — он рассуждает над накопленной памятью. Можно задать вопрос, и Hindsight соберёт релевантные факты, наблюдения и ментальные модели, а затем сгенерирует ответ с учётом всего контекста.
response = client.reflect( bank_id="project-memory", query="Какие риски у текущего спринта?" ) # Hindsight соберёт факты о deadline'ах, найденных багах, # загруженности команды — и сформулирует анализ рисков
Reflect можно настроить через mission (роль агента), directives (жёсткие правила) и disposition (мягкие черты характера: скептицизм, эмпатия, буквальность — каждый на шкале от 1 до 5). Mission и disposition влияют только на reflect, не на recall — поиск остаётся объективным.
Иерархия памяти
Hindsight хранит данные не в одном плоском слое, а в четырёх уровнях, которые при recall приоритизируются сверху вниз:
- Mental Models — созданные пользователем сводки для частых запросов (высший приоритет)
- Observations — автоматически консолидированные знания, выведенные из множества фактов
- World Facts — объективные факты из внешних источников
- Experience Facts — собственные действия и взаимодействия агента (низший приоритет)
Это значит, что если ты вручную создал ментальную модель «Наш стек: FastAPI + PostgreSQL + Redis», она будет возвращаться раньше, чем десятки отдельных фактов, из которых можно было бы то же самое вывести.

Бенчмарки: что стоит за цифрами
Vectorize.io заявляет SOTA на LongMemEval — бенчмарке для оценки долгосрочной памяти чат-ассистентов, принятом на ICLR 2025. Бенчмарк тестирует пять способностей: извлечение информации, мультисессионные рассуждения, темпоральные рассуждения, обновление знаний и отказ от ответа при нехватке данных.
Результаты по заявлению Vectorize.io:
- OSS-20B модель: 83.6% (против 39% у full-context baseline с той же моделью — это +44.6 пунктов)
- OSS-120B модель: 89.0%
- Gemini 3: 91.4%
Для сравнения, конкуренты на том же бенчмарке:
- Supermemory + GPT-4o: 81.6%
- Supermemory + GPT-5: 84.6%
- EverMemOS (независимое исследование, январь 2026): 83.0%
Результаты Hindsight верифицированы независимыми исследователями из Virginia Tech (Sanghani Center) и The Washington Post — это важно, потому что большинство конкурентов показывают только собственные замеры. Но стоит отметить: верификация касается воспроизводимости результатов, а не того, что подход объективно лучше в реальных сценариях. Бенчмарк — это бенчмарк.
Подводные камни
Каждый retain — это вызов LLM. Hindsight прогоняет входящий текст через модель для извлечения фактов. Плюс после записи запускается фоновая консолидация наблюдений — ещё один вызов LLM. Если ты работаешь с OpenAI API, это деньги за каждую операцию записи. С локальными моделями через Ollama — это значительное время инференса на каждый retain. Prompt caching пока не реализован, что делает расходы выше, чем могли бы быть.
Удаление документов оставляет мусор. Issue #572: при удалении документа из memory bank связанные observation-ноды остаются в графе как «мёртвые» узлы. Это не критично для работы, но постепенно загрязняет граф — и может влиять на качество recall при большом объёме данных.
Docker не стартует под WSL. Issue #116 открыт с 7 января 2026 и до сих пор не решён. Если ты разрабатываешь на Windows с WSL — придётся повозиться с workaround'ами или использовать нативный Linux/macOS.
4 000 звёзд — это не 40 000. Проект свежий и активно развивается, но community ещё маленькое. 8 открытых issues и 282 форка — это немного. Если наткнёшься на edge case, ответ на GitHub Discussions можешь ждать дольше, чем хотелось бы.
Альтернативы
-
Mem0 — managed-сервис с knowledge graph и заявленным 80% сокращением промпт-токенов через сжатие истории. Быстрее всего в продакшен: не нужно поднимать инфраструктуру. Но: closed-source ядро, графовая БД работает только на Pro+ тарифах, и ты привязан к их cloud.
-
Zep — биtempoральные knowledge graphs, которые отслеживают и когда факт был записан, и когда он был валиден. Лучший выбор, если нужно рассуждать о том, как сущности и связи менялись со временем. Сложнее в настройке, чем Hindsight, зато мощнее в enterprise-сценариях с несколькими источниками данных.
-
Supermemory — семантическая память с темпоральной прослойкой. Фокус на персональных AI-ассистентах, а не на продакшен-инфраструктуре для агентов. Closed-source, self-hosting только через enterprise agreement.
Ключевое отличие Hindsight — MIT-лицензия. Можно форкнуть, задеплоить на своей инфре и никому ничего не платить. Из перечисленных альтернатив только Zep имеет open-source версию, но с ограниченным функционалом.
Вердикт
Если строишь AI-агента, который должен помнить контекст между сессиями — Hindsight стоит попробовать прямо сейчас. MIT-лицензия, Docker за минуту, Python/TypeScript/Go SDK, MCP-сервер из коробки — порог входа минимальный. Результаты на LongMemEval убедительные и независимо верифицированы.
Не стоит, если у тебя простой чат-бот с короткими сессиями — overhead от LLM-вызовов на каждый retain не окупится. И если ты на Windows с WSL — подожди, пока починят Docker-совместимость.
Главный риск — стоимость. Каждая запись в память = вызов LLM. При тысячах retain'ов в день на GPT-4o это ощутимо. Ollama с локальной моделью решает проблему денег, но добавляет латентность. Следи за issue #367 — когда добавят prompt caching, расходы должны упасть.
Как попробовать
- Запусти Docker-контейнер — нужен только API-ключ OpenAI (или любого другого провайдера):
export OPENAI_API_KEY=sk-xxx docker run --rm -it --pull always -p 8888:8888 -p 9999:9999 \ -e HINDSIGHT_API_LLM_API_KEY=$OPENAI_API_KEY \ -v $HOME/.hindsight-docker:/home/hindsight/.pg0 \ ghcr.io/vectorize-io/hindsight:latest
-
Открой UI на localhost:9999 — там можно визуально исследовать граф памяти.
-
Установи Python-клиент и попробуй три операции:
pip install hindsight-client -U