Я начал отслеживать свои тренировки в ChatGPT. Повторения, веса, ощущения от тренировки. Через несколько недель я попросил его сравнить сегодняшние результаты с предыдущими сессиями. Это дало мне уверенное и детальное сравнение. Цифры были неправильными.

Не чуть-чуть не в стороне. Неправильный. В нем упоминались сеансы, которые не соответствовали тому, что я на самом деле зарегистрировал. Я вернулся к истории своих разговоров. Данные, с которыми он «сравнивал», не существовали в том виде, в котором они заявлены. Некоторые из них выглядели как сжатое изложение того, что я рассказал неделями ранее. Кое-что из этого выглядело придуманным.

Естественный диагноз – галлюцинации. Модель все выдумала. Я не мог этого подтвердить. Неужели ChatGPT никогда не сохранял исходные данные? Сохранил ли он что-то, а затем суммировал это? Память дрейфовала между сеансами? У меня не было возможности узнать, во что верила система в тот день, когда я зарегистрировал эти сеансы, и сохраняла ли она когда-либо реальные цифры. Я не мог исключить галлюцинацию. Я также не мог исключить коррупцию.

Эта неспособность различать является настоящей проблемой. В большинстве систем памяти ИИ вы не можете определить, какой режим отказа вы видите. Диагностического инструментария не существует. Его почти никто не строит.

## Два режима отказа, а не один

В индустрии есть одно слово для обозначения «модель сказала что-то не так»: галлюцинация. Это универсальное средство для каждого неправильного вывода. Когда агенты используют постоянную память, существует два различных режима сбоя. Им нужны разные исправления.

**Галлюцинация** — это провал на уровне модели. LLM генерирует контент без каких-либо оснований. Поиск прошел нормально. Поколение пошло не так. Исправления происходят на уровне модели: лучшее обоснование, генерация с расширенным поиском, ограниченное декодирование, цепочки проверки.

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

Повреждение памяти проходит все проверки, предназначенные для галлюцинаций. Отрывок соответствует запросу. Модель ссылается на свой источник. Выход основан на сохраненных данных. На каждом ограждении написано, что ответ основан на реальной информации. Информация неверна.

## Почему коррупция является стандартом

Каждая основная категория памяти агента по умолчанию хранит изменяемое состояние.

Память платформы (ChatGPT, Claude, Gemini, Copilot) перезаписывает записи при обновлении. Следа версий нет. Системы поиска (Mem0, Zep, LangChain Memory) объединяют или заменяют воспоминания при их консолидации.

Файловые системы (уценка, JSON) остаются изменчивыми, пока вы не добавите git. Git предоставляет реальную историю и различия для небольших репозиториев. Он [плохо масштабируется в гигабайтном масштабе](https://x.com/garrytan/status/2040797478434549792) для данных, написанных агентом, и немногие команды рассматривают его как журнал упреждающей записи для памяти.

Стандартные базы данных (SQLite, Postgres) могут реализовывать источники событий, временные таблицы и триггеры аудита. Их путь по умолчанию по-прежнему перезаписан: `UPDATE` заменяет строку, а старое значение исчезает.

Ни один из них не сохраняет [версированную историю и не предотвращает тихую мутацию](/memory-guarantees) из коробки. Любой из них *может*. Почти никто *не делает*.

Даже продуманные новые проекты могут попасть в ту же ловушку. [Спецификация GBrain] Гарри Тана (https://gist.github.com/garrytan/49c88e83cf8d7ae95e087426368809cb) многое дает правильно: SQLite, FTS5, векторный поиск, MCP с первого дня. Спецификация по-прежнему переписывает скомпилированную истину, а не добавляет к ней. Ваш агент переписывает 7471 страницу с неправильным слиянием. Неправильная версия становится канонической. Никакого аудиторского следа. Чистая архитектура, та же модель мутации.

Это не один неудачный запуск. Это эталонная культура для всей категории. Принятие, звезды и финансирование отслеживают показатели извлечения: отзыв при k (часто пишется R@k), точность, задержка, степень сжатия. Эти показатели имеют значение. Нужен хороший поиск. Недостаточно, когда агенты записывают в свою память. Нет широко используемых тестов производительности, что происходит с сохраненными данными после их записи.

[MemPalace](https://github.com/milla-jovovich/mempalace) — недавний пример. За два дня проект получил 19 000 звезд GitHub с «отличными оценками». [Независимый анализ](https://penfieldlabs.substack.com/p/milla-jovovich-just-released-an-ai) обнаружил, что заголовки были [метриками полноты поиска, а не сквозной точностью](https://github.com/milla-jovovich/mempalace/issues/27). Вводящая в заблуждение копия запуска — это проблема MemPalace. Проблемой категории является структура поощрений: 19 000 звезд за поисковые баллы, ноль вопросов о честности записи. Supermemory, Mem0 и как минимум дюжина других, которые я отслеживаю, конкурируют на одной оси. Никто не публикует показатели того, сохранятся ли сохраненные факты в течение недели, когда агент записывает их в неизменном виде.

Для традиционных приложений изменяемое состояние подходит. Для агентской памяти это проблема. Агенты пишут часто, между сессиями, иногда с конфликтами. Два сеанса записывают разные значения в одно и то же поле. Последняя запись побеждает. Первое значение исчезает. Никто не уведомляется. Нет никаких записей, что когда-либо было по-другому.

Обобщение на основе LLM еще больше усугубляет ситуацию. Системы объединяют старые записи в новые сводки. Краткое изложение заменяет оригиналы. Если слияние было неправильным (два человека слились в одного, пропала какая-то деталь, плохо разрешилась двусмысленность), оригиналы пропали. Нельзя сравнивать резюме с тем, что оно заменило. Того, что оно заменило, больше не существует.

Это не теоретически. Когда я [восстановил свою производственную базу данных](/posts/how-i-lost-and-recovered-6000-memories) после ее очистки, у меня были резервные копии, сделанные на разные даты. Я мог бы сравнить состояние объекта во времени. Некоторые объекты в резервных копиях от 3 и 9 марта различались. В системе, допускающей только добавление, оба значения сохраняются как наблюдения с отметками времени. В изменчивой системе выживают только самые последние. Вы никогда не узнаете, что существовало более раннее значение.

## Аудит, который никто не проводит

Большинство команд проверяют на наличие галлюцинаций. Они проверяют, что выходные данные модели основаны на полученном контексте. Они проверяют, изобретает ли модель факты.

Почти никто не проверяет, изменились ли сохраненные факты. Спросите:

**Вы видите, что изменилось?** Если значение отличается от значения на прошлой неделе, вы можете увидеть оба значения? Когда это изменилось и что послужило толчком к этому?

**Можете ли вы воспроизвести прошлое состояние?** Можете ли вы восстановить то, во что верил агент в конкретную дату, а не только по сегодняшнему снимку?

**Можете ли вы отследить источник?** Можете ли вы назвать для любого сохраненного факта имя агента, сеанса и входных данных, которые его создали или изменили?

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

## Что мешает

Повреждение памяти является структурной, а не модельной проблемой. Лучшие подсказки и более разумный поиск не исправят ситуацию. Исправление архитектурное.

**Неизменяемость.** Наблюдения не изменяются после записи. Новая информация – это новое наблюдение. Старые остаются. Состояние объекта извлекается из всей истории, а не из одной изменяемой строки.

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

**Временное воспроизведение.** Состояние берется из журнала наблюдений, а не из одной текущей строки. Вы можете реконструировать убеждение в любой момент прошлого. Коррупция становится заметной, когда нынешние и прошлые состояния расходятся.

Эти свойства чего-то стоят. Журналы только для добавления растут. Пересчет состояния из истории стоит больше, чем чтение одной строки. Системы, которые консолидируют данные, обменивают объем памяти и задержку на полную историю. Неизменяемость меняет простую запись и жесткое хранение на возможность аудита. Эта сделка того стоит, когда агенты записывают память, которая влияет на реальные результаты. Во многих производственных случаях это уже так.

Я встроил эти свойства в [Neotoma](https://neotoma.io). Я не предусмотрел каждый коррупционный сценарий. Я продолжал попадать в изменчивое состояние, которое давало неверные ответы, и у меня не было возможности их диагностировать. Neotoma требует времени на установку. Это не нулевая настройка. Вы не редактируете память как обычный файл. Это реальные затраты. Ставка делается на то, что версия истории, происхождение и воспроизведение имеют большее значение, чем удобство, когда агенты пишут состояние, которое определяет решения.

## Сложный риск

Порча усугубляется так, как галлюцинации обычно не возникают. Галлюцинированный ответ часто умирает, когда кто-то читает его и говорит: «Это неправильно». Один разговор, одна ошибка.

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

Масштабируйте это до реальных ставок. Неправильный адрес электронной почты в памяти означает, что каждая отправка отправляется не тому человеку, пока кто-нибудь не заметит. Неправильная сумма в долларах означает более одного неверного счета.

Коррупция живет на уровне памяти, а не в модели. Обычная отладка пропускает это. Модель работает. Поиск работает. Сохраненные данные неверны или никогда не сохранялись правильно. Вы не можете быстро спроектировать инфраструктуру прошлого, которая теряет свою собственную историю.

## Что проверить

Если вы используете память агента, попробуйте это. Выберите пять объектов, которые ваш агент сохранил более двух недель назад. Получите их. Сравните текущие значения с тем, что, по вашему мнению, вы сохранили изначально.

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

Серьезный тест целостности записи будет работать следующим образом. Начальные N объектов с известными значениями. Запускайте сеансы агента M, которые читают и записывают одни и те же объекты. Подождите неделю. Сравните сохраненные значения с оригиналами.

Два балла имеют значение. **Скорость дрейфа**: какая доля значений изменилась без явной коррекции пользователем? **Обнаруживаемость**: может ли система указать для каждого изменения, когда оно произошло, чем оно вызвано, а также предыдущее значение? Сегодня также нет широко используемых отчетов по тестам памяти ИИ.

Индустрия права в борьбе с галлюцинациями. Более сложная проблема уже существует внутри систем, которые выглядят работоспособными, потому что почти никто не проверяет, являются ли сохраненные факты теми же фактами, которые были сохранены.

## Когда индустрия начнет спрашивать

Целостность записи перестает быть необязательной, когда ошибки агента имеют свою цену. Сегодня многие ошибки подлежат регенерации или оперативной корректировке. Агенты все чаще [платят, отправляют электронные письма, выполняют код и действуют в реальном мире](/posts/six-agentic-trends-betting-on). Когда дорогостоящая неудача связана с дрейфом памяти, а не с вымыслами модели, вскрытие добавляет второй вопрос после «была ли у модели галлюцинации?» Изменились ли сохраненные данные?

Это давление не останется внутри предприятий, где есть группы по соблюдению требований. [Аудиторское давление падает на рынок](/posts/six-agentic-trends-betting-on) везде, где ошибки стоят денег. Консультантам, разработчикам-одиночкам и небольшим командам понадобится один и тот же ответ: во что верила система, когда выдавала такой результат? Если ваш уровень памяти не может сказать, то уровень памяти является ответственностью.

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