Mem0 и графовая память.
Mem0 специализируется, в первую очередь, на векторной памяти через Qdrant или аналогичные БД.
Графы использует, скорее, как вспомогательную структуру для сохранения информации о связях между конкретными сущностями.
Поэтому реализация графового модуля оказывается значительно проще, чем в Graphiti или Hindsight (который, помимо прочего, также использует векторное хранилище).
Mem0 может при обработке нового события просто удалить одну из существующих связей. Тем самым оставить узел без связей вообще.
Самое неприятное – он может это сделать по ошибке.
Пример из трёх запросов (в качестве модели тут использовал qwen-3-235b-a22b-instruct-2507):
1. «Я живу в стране X» – сохраняет «пользователь живёт в X». Где «живёт» – это ребро.
2. «Я живу в городе N» – сохраняет «пользователь живёт в N». Создаёт новое ребро.
3. «До Y года я жил в M» – сохраняет «пользователь живёт в M». Удаляя при этом связи с сущностями из п.1 и п.2.
В результате мы получаем два важных узла, которые ни с чем не связаны. И такой «полностью отвязанный» мусор в графе будет постепенно накапливаться. Только из-за того, что в ядре Mem0 AI-агенту предоставляется возможность удалять рёбра.
Graphiti в таких кейсах прекрасен. Даже если AI-агент что-то понял не так и записал информацию ошибочно, всегда можно сказать «Нет, ты не понял. На самом деле вот так!». Он пометит предыдущее ребро, как невалидное и будет учитывать этот факт при следующих запросах.

Добавить комментарий