Практичная память AI-агента состоит из нескольких хранилищ. Векторная база находит похожие по смыслу документы, граф связывает людей и события, а PostgreSQL хранит точные задачи, сроки и права.
Я пришёл к этой схеме в Digital Shadow. Qdrant хорошо находил фрагменты, но операционный контекст не помещался в отдельные коллекции.
Где векторной памяти стало мало
Сначала я разделил память на проекты, партнёров, крипту и личные записи. В реальной работе один партнёр участвует в нескольких проектах, документ относится к разным решениям, а личный разговор может повлиять на бизнес.
Дублирование данных и строгие правила маршрутизации не устранили ошибки. Бизнес-встреча попадала в личную коллекцию, а личная тема могла оказаться в памяти проекта. Причина находилась в модели данных.
Qdrant формулирует сильную сторону векторного поиска так:
“Vector search retrieves information by semantic meaning, not just exact keyword matches.” — Qdrant Documentation
Источник: Qdrant vector search overview
Семантическая близость помогает искать документацию, FAQ, инструкции и фрагменты встреч. Связанный контекст требует цепочки: человек → проект → встреча → решение → дедлайн → документ.
Почему операционный контекст похож на граф
Компания хранит отношения: кто участвовал во встрече, к какому проекту она относилась, что было обещано и какое решение зависело от другого.
В графовой модели человек связан с проектом, проект с документом, документ с риском, риск с задачей, а задача с дедлайном.
Neo4j описывает эту модель через nodes и relationships:
“Nodes represent entities or discrete objects in a domain. Relationships represent a connection between a source node and a target node.” — Neo4j Documentation
Источник: Neo4j graph database concepts
Граф отвечает на вопросы, в которых нужен обход связей: что команда обещала клиенту после встречи, почему выбрала стек или какие решения зависят от поставщика X.
Что изменилось в Digital Shadow
Для графовой памяти я использую Graphiti и FalkorDB, а точные сущности храню в PostgreSQL. Вечерняя рефлексия превращается в эпизоды, факты и связи: упомянутых людей, проекты, решения и изменения состояния.
Graphiti называет такую структуру Context Graph, то есть временной граф сущностей, отношений и фактов.
“Graphiti helps you create and query Context Graphs that evolve over time.” — Graphiti Documentation
Источник: Graphiti Context Graph overview
Время здесь имеет значение. Партнёр меняет роль, проект закрывается, дедлайн переносится, а договор получает новую версию. Граф должен сохранять историю этих изменений.
FalkorDB выступает графовой базой в текущей схеме. Документация: FalkorDB
Роль PostgreSQL
Задачи, сроки, статусы, пользователи, права и настройки требуют точного ответа. Для них похожее воспоминание или вероятностное объяснение не подходит.
PostgreSQL даёт foreign keys, транзакции, triggers, views и transactional integrity. Эти свойства позволяют проверять изменения и вести операционный журнал.
Источник: What is PostgreSQL?
LLM объясняет данные, векторный поиск находит документы, а граф показывает связи. Текущий статус задачи остаётся в транзакционной таблице.
Когда памяти становится слишком много
После перехода на граф ассистент начал возвращать слишком широкий контекст. Вопрос о партнёре мог поднять проекты, встречи, договорённости, решения и документы на несколько экранов.
Я добавил приоритеты и режимы ответа. По умолчанию система показывает короткий контекст, по запросу раскрывает детали, свежие факты ставит выше старых, а решения отделяет от фоновых наблюдений.
Хранилище отвечает за полноту, а policy layer дозирует выдачу.
Рабочая схема памяти
- Векторная база хранит документы, заметки и фрагменты встреч для поиска по смыслу.
- Графовая база связывает людей, проекты, компании, решения и события.
- PostgreSQL хранит задачи, дедлайны, статусы, права, настройки и журналы.
- LLM рассуждает и объясняет найденный контекст.
- Policy layer задаёт доступ, приоритет, свежесть и видимость данных.
Гибридная схема сложнее одного векторного хранилища, потому что отражает реальную структуру работы. Бизнес-контекст складывается из документов, людей, решений, сроков и связей между ними.
