Память

Как удалить факт из памяти ИИ и убедиться, что он удалён

Удаление факта — это четыре разных удаления: запись, поисковый индекс, граф связей и история диалога. Без всех четырёх факт возвращается. Даём чек-лист и процедуру проверки.

Вы удалили из памяти ассистента запись «работает в компании А». Через два дня он снова о ней упоминает. Ощущение мистическое, объяснение скучное: запись жила не в одном месте, а в четырёх, и вы стёрли одну.

Это общее свойство любой системы с памятью, не особенность конкретного продукта. Как только текст индексируется для поиска, из него извлекаются связи и он попадает в сводки, у одного факта появляется несколько независимых представлений.

#Зачем это нужно и когда не нужно

Удаление нужно, когда факт не должен существовать: он неверен, он чужой, он относится к тому, чего в памяти быть не должно.

Удаление не нужно, когда факт просто устарел. Для этого есть замена: старая версия остаётся в истории с отметкой, до какого момента была верна, и её можно вернуть, если вы ошиблись. Разница разобрана в материале про bi-temporal память. Стирать устаревшее — значит терять возможность ответить на вопрос «а как было раньше».

Правило простое: неверное — удалять, устаревшее — заменять.

#Что понадобится

  • Доступ к списку памяти ассистента.
  • Доступ к истории переписки — удалить исходное сообщение, если факт выведен из него.
  • Понимание, включены ли у вас векторный поиск и граф связей: если нет, два из четырёх шагов отпадают.
  • Пять минут через сутки — на проверку, что факт не вернулся.

#Четыре места, где живёт один факт

Место Что там лежит Что бывает, если не удалить
Запись памяти сам факт как текст подмешивается в промпт при каждом ответе
Поисковый индекс зеркало текста для поиска находится поиском, попадает в блок памяти
Граф связей рёбра, выведенные из факта ассистент «знает» связь без самого факта
История диалога исходные сообщения извлечение записывает факт заново

Четвёртая строка объясняет главный сюрприз: факт возвращается сам. Пока в переписке лежит фраза, из которой он был извлечён, следующее автоматическое пополнение памяти извлечёт его повторно. Удаление записи без удаления источника — это отсрочка, а не решение.

#Шаг 1. Удалить запись памяти

Откройте список того, что ассистент о вас помнит, и удалите нужную строку. В Persona это страница /settings/memory — там же можно править текст записи, закреплять её и возвращать ранее отменённые.

Важно различать две операции, которые в интерфейсах часто выглядят похоже:

  • Отмена ставит отметку «недействительно с такого-то момента»; запись выпадает из ответов, но остаётся в базе и в выгрузке данных.
  • Удаление убирает строку физически.

Для неверного факта нужно именно удаление. Для устаревшего — отмена.

#Шаг 2. Удалить исходные сообщения

Найдите в переписке фразу, из которой факт был извлечён, и удалите её — обычно вместе со всей сессией, если она короткая, или конкретное сообщение, если интерфейс это позволяет.

Отдельно проверьте ответы самого ассистента: если он повторял этот факт, его собственные реплики тоже становятся текстом, из которого можно извлечь факт заново. Механика самоподтверждения разобрана в материале про галлюцинации в памяти.

#Шаг 3. Проверить поисковый индекс

Полнотекстовый индекс — это отдельная структура, зеркало вашего текста. В правильно устроенной системе он обновляется триггерами при изменении исходной таблицы, и отдельных действий не требует.

Ловушка в том, что триггеры срабатывают только на явные операции с таблицей. Удаление «за компанию» — каскадом от родительской записи — может пройти мимо них, и в индексе останутся записи об удалённом. В Persona это учтено явно: при удалении аккаунта сообщения удаляются отдельным запросом к своей таблице, а не через каскад от сессии, — именно чтобы триггеры отработали и зеркало очистилось.

Если у вас включён векторный поиск, у него своё зеркало, и оно обычно не обслуживается триггерами: строку в векторной таблице и её метаданные нужно удалять явно. В Persona это два отдельных запроса в той же процедуре удаления.

Практическая проверка: поищите удалённый текст обычным поиском по переписке. Если находится — зеркало не очистилось.

#Шаг 4. Проверить граф связей

Если из факта извлекались связи между сущностями, они живут отдельными записями. В аккуратной реализации ребро графа перестаёт быть актуальным, когда исчезает поддерживающий его факт; но связь между ними должна быть явной — а она есть не везде.

Проверка прямая: откройте граф и посмотрите, осталась ли связь. Если осталась и она неверна — уберите её вручную. Рёбра, как и факты, обычно не удаляются физически, а помечаются недействительными, поэтому «пропала из графа» и «стёрта» — разные состояния.

#Шаг 5. Проверить сводки

Сводка сессии — сжатый пересказ старой части диалога, и удалённый факт может сидеть в ней. Отдельного интерфейса для правки сводок обычно нет.

Практическое решение: начать новый чат. Сводка привязана к сессии и в новую не переносится. Если факт был важной частью старой беседы, полностью надёжный путь — удалить сессию целиком.

#Проверка результата

Одна проверка, но выполненная правильно.

  1. Задайте прямой вопрос в новом пустом чате. Не «помнишь ли ты X», а тот вопрос, в ответе на который факт всплывал.
  2. Повторите через сутки. Если у вас включено фоновое пополнение памяти, оно могло сработать ночью и вернуть факт из оставшихся сообщений.
  3. Откройте список памяти ещё раз. Записи с похожей формулировкой быть не должно.
  4. Проверьте выгрузку своих данных. Отменённая запись в ней останется — это правильно; удалённая исчезнуть должна. В Persona выгрузка доступна на странице «Мои данные» и содержит в том числе поля версионирования, так что видно и то, что было отменено.

Пункт 2 — тот, который пропускают. Факт, вернувшийся на вторые сутки, — самый частый сценарий «удаление не сработало».

#Что может пойти не так

Факт вернулся через день. Исходные сообщения не удалены, фоновое извлечение записало его заново. Возврат к шагу 2.

Факт не в списке памяти, но ассистент его знает. Проверьте системный промпт: если вы вписали что-то о себе в настройки характера, оно подаётся при каждом ответе и в списке памяти не показывается.

Удалили не то. Если операция была отменой, а не удалением, запись возвращается одним действием. Если было физическое удаление — восстановить можно только из резервной копии.

Хочется удалить всё сразу. Массовая очистка памяти существует и обычно требует ввода подтверждающего слова. В Persona она находится на владельческой странице приватности и удаляет все записи личной памяти разом. Это необратимо: перед таким шагом сделайте выгрузку — как и что выгружается, разобрано в гайде про экспорт и перенос памяти ассистента.

Нужно удалить вообще всё. Это уже не удаление факта, а удаление аккаунта, и оно устроено иначе: чистятся все таблицы, зеркала и производные. Процедура и её границы — в материале про удаление аккаунта и данных.

Ассистент облачный. Тогда у вас нет доступа к четырём местам — есть только тот интерфейс, который вам дали, и удаление записи не отменяет того, что выведено из истории чатов. Что именно можно и нельзя удалить в такой схеме, разобрано в материале про память ChatGPT.

#Частые вопросы

#Почему нельзя просто сказать ассистенту «забудь это»?

В некоторых системах команда сработает и удалит запись — но только запись. Исходные сообщения, индекс и связи она не тронет, а значит факт вернётся при следующем пополнении памяти. Команда в чате — это первый шаг, а не вся процедура.

#Чем отмена отличается от удаления?

Отмена ставит отметку недействительности: запись не участвует в ответах, но остаётся в базе, в истории и в выгрузке, и её можно вернуть. Удаление убирает строку. Для устаревшего нужна отмена, для неверного и чужого — удаление.

#Останется ли удалённое в резервных копиях?

Останется, и это нормальное свойство любых резервных копий. Если факт критичен, придётся либо дождаться ротации копий, либо чистить их отдельно — автоматически это не делается нигде.

#Как понять, что у меня вообще включён векторный индекс?

По косвенному признаку: находится ли в памяти то, что вы формулируете не теми словами, что в записи. Если поиск срабатывает только при дословном совпадении — векторного зеркала у вас, скорее всего, нет, и один из шагов процедуры отпадает.

#Что делать, если фактов для удаления много?

Не удалять по одному по ходу чтения, а сначала разметить весь список, потом выполнить. Разметка отделяет «неверно» от «устарело», и без неё вы часть устаревшего сотрёте вместо замены. Общая механика того, что и когда попадает в память, — в статье о том, как работает память у ИИ.

#Вывод

Удаление факта из памяти ассистента — это процедура из нескольких шагов, а не одно нажатие: запись, исходные сообщения, поисковые зеркала, граф связей, сводки. Начинайте с вопроса «неверно или устарело» — для устаревшего удаление вредно, там нужна замена. И обязательно проверяйте результат в новом чате через сутки: если у вас работает фоновое пополнение памяти, единственный настоящий тест — переживёт ли удаление следующий цикл.

Хотите ИИ, который помнит вас?

Persona держит контекст между чатами и работает на вашем железе — если развернуть её у себя и подключить локальную модель.

Создать аккаунт