Большинство ассистентов забывают вас между сессиями: каждый новый чат начинается с чистого листа. Поиск по истории решает это лишь наполовину — он находит снимки прошлого, но не понимает, что факты о вас со временем меняются. Persona подходит иначе: у неё есть диалоговая память, которая помнит и сами факты, и их историю. Разберём два понятия, которые за этим стоят.
#Кросс-чат recall: знание переходит между беседами
«Кросс-чат recall» означает, что перед ответом Persona подтягивает релевантное из всех ваших прошлых диалогов, а не только из текущего окна. Спросили про «Олега» в новом чате — Persona вспомнит, что вы обсуждали Олега две недели назад в другой беседе.
Технически это полнотекстовый поиск по вашей базе — режим по умолчанию, он работает сразу и ничего не требует. Опционально его можно усилить векторным поиском по смыслу, слив оба результата в один список. Если человек назван только по имени и таких несколько, Persona переспросит фамилию, чтобы не перепутать людей. Итог: разговор начинается со знания о вас, а не с нуля.
Про векторный режим стоит сказать честно: он выключен по умолчанию и требует отдельного модуля для векторов в базе, embed-модели и однократного прохода индексации по накопленной памяти. Без них происходит тихий откат на поиск по ключевым словам — ничего не ломается, просто поиск остаётся буквальным. Какая embed-модель что даёт и почему её нельзя выбирать по остаточному принципу, разобрано в обзоре embed-моделей для поиска по памяти.
#Bi-temporal факты: память помнит, как менялась
Вот где Persona отличается от простого «лога». Факты о вас не вечны: вы переехали, сменили работу, поменяли мнение. Наивная память на этом ломается — в ней одновременно живут «живёт в Москве» и «переехал в Берлин», и непонятно, что верно.
Bi-temporal подход решает это так: при появлении противоречащего факта старый не удаляется, а помечается как недействительный с этого момента, а новый становится актуальным. Поэтому:
- в ответах используется только актуальное знание;
- но история сохраняется — видно, что и когда поменялось;
- ошибочную правку можно откатить (старый факт не потерян).
Идея в том, что память не просто накапливает, а сверяет новое со старым и решает — добавить, обновить, удалить или ничего не делать.
#Чем это лучше поиска по таймлайну
| Поиск по истории | Диалоговая память Persona | |
|---|---|---|
| Находит прошлые записи | ✓ | ✓ |
| Переносит знание в новый чат | ✗ | ✓ (кросс-чат recall) |
| Понимает, что факт изменился | ✗ | ✓ (bi-temporal) |
| Хранит историю факта и откат | ✗ | ✓ |
Поиск отвечает на «что я видел». Память отвечает на «что про меня правда сейчас — и что было раньше». Разница не косметическая: без второго ассистент будет уверенно оперировать вашим позапрошлогодним местом работы.
#Почему память не заменяется длинным контекстом
Частое возражение: зачем всё это, если у современных моделей окно на сотни тысяч токенов — сложим туда всю историю. Не сложится по двум причинам.
Первая: контекстное окно живёт ровно один запрос, а память должна переживать перезапуск. Вторая: заявленный размер окна и длина, на которой модель действительно удерживает факты, — разные величины, и разрыв бывает кратным. Как его измерить на своей модели, описано в разборе заявленного контекста против полезного. Подробнее про сам механизм окна — в статье про контекстное окно на 1M токенов.
#Где здесь граница приватности
Память лежит там, где развёрнута Persona: если вы поставили её у себя, база и recall работают на вашей машине. Но обратите внимание на границу, которую легко упустить: найденные фрагменты памяти подмешиваются в запрос к модели. С локальной моделью они остаются на вашем железе; с облачным ключом уходят выбранному вами провайдеру вместе с вопросом — то есть в облако попадают не только ваши слова, но и куски вашей памяти.
Ещё одна деталь: векторный индекс доступен только владельцу инстанса, потому что эмбеддинги считаются по глобальной конфигурации. Для участников общей копии это означает поиск по ключевым словам — и это сделано намеренно, чтобы их текст не уходил на железо владельца.
#Частые вопросы
#Чем память отличается от истории чата?
История — это лента сообщений одной беседы; она не переносится в новый чат и не разрешает противоречия. Память — это отдельный слой фактов о вас, который подтягивается в любой беседе и знает, что факт мог измениться. Историю вы листаете, память отвечает.
#Что произойдёт, если Persona запомнила про меня неправду?
Ошибочный факт можно поправить, и старая версия при этом не исчезает: она помечается недействительной с момента правки. Если поправили неудачно — откат вернёт прежнее значение. Это и есть практический смысл bi-temporal-подхода: память не переписывается набело, а ведёт версии.
#Нужно ли включать векторный поиск, чтобы память работала?
Нет. По умолчанию работает поиск по ключевым словам, и он справляется, когда в вопросе есть имена, названия и характерные слова. Векторный режим нужен, когда формулировка не совпадает с исходной дословно — это улучшение, а не условие работы.
#Почему ассистент переспрашивает фамилию?
Потому что по одному имени невозможно отличить двух разных людей в вашей памяти, а перепутать их хуже, чем спросить. Уточнение задаётся один раз, дальше факт закрепляется. Если людей с таким именем один, переспроса не будет.
#Сколько памяти накапливается и можно ли её выгрузить?
Объём фактов на порядки меньше архива захвата — это текстовые записи, а не скриншоты. Выгрузить память можно: она лежит в вашей базе, и в этом принципиальное отличие от облачных ассистентов, где экспорта именно памяти обычно нет. Что занимает место на самом деле — разобрано в статье сколько это весит и тормозит ли ПК.
#Какая модель нужна, чтобы память работала хорошо?
Здесь нужны две модели разных классов: разговорная для ответов и поисковая для семантического поиска, если вы его включаете. Ошибка обычно во второй — её берут по остаточному принципу и получают поиск, который не находит. Как подобрать обе, разобрано в гайде как подобрать модель для ассистента с памятью.
#Вывод
Память — это не лог и не поиск, а сверяемое знание о вас, которое корректно стареет. Если вам нужен ассистент, который просто находит старые сообщения, хватит поиска по истории. Если нужен тот, кто оперирует актуальными фактами и умеет показать, что изменилось и когда, — нужна именно диалоговая память с версионированием фактов. И помните про границу: с облачным ключом фрагменты этой памяти уходят провайдеру вместе с вопросом.