3,583 papers
arXiv:2605.17830 74 18 мая 2026 г. FREE

Temporal Memory Contamination: безопасный контент в памяти AI накапливается и начинает создавать утечки

КЛЮЧЕВАЯ СУТЬ
Скрытый генератор галлюцинаций живёт прямо в памяти AI: модель сжимает две записи о выходных пособиях (15к и 25к фунтов) — создаёт суммари «15–25к» — потом уверенно предлагает конкретному сотруднику ровно 20к. Этой цифры не было ни в одном источнике. Промпт-аудит памяти позволяет изолировать задачу от накопленной истории — модель явно показывает что и откуда тащит, прежде чем использовать. Фишка: добавляешь один блок «при работе над этим используй только то, что я укажу явно» плюс запрос аудита — и утечки между контекстами прекращаются.
Адаптировать под запрос

TL;DR

Temporal Memory Contamination — явление, при котором память AI-агента, заполненная безвредными задачами, постепенно становится источником опасных ошибок. Механика простая: модель копит в памяти информацию из сотен запросов, а потом при новом вопросе вытаскивает релевантные куски — даже если они не должны попасть в этот контекст.

Просишь ChatGPT (с включённой памятью) помочь с HR-задачами — она запоминает зарплаты сотрудников, детали увольнений, структуру команды. Потом, через три месяца, отвечая на вопрос коллеги, подтягивает эти детали в ответ. Никакого злого умысла — просто накопленные данные стали retrievable (извлекаемыми) для нового запроса. Чем больше памяти — тем выше шанс нежелательного пересечения контекстов.

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


📌

Схема явления

НАКОПЛЕНИЕ: агент выполняет независимые задачи → память растёт
      ↓
ТРИГГЕР: новый запрос, семантически похожий на что-то из прошлого
      ↓
ИЗВЛЕЧЕНИЕ: из памяти достаётся контент другого пользователя/задачи/времени
      ↓
НАРУШЕНИЕ: модель включает этот контент в ответ

Три механизма нарушения:
1. Cross-context leakage → данные из одного контекста попадают в другой
2. Stale information    → устаревший факт из памяти перебивает актуальный
3. Summarization combo  → модель объединяет несколько памяток → создаёт факт,
                          которого не было ни в одной из них по отдельности

🚀

Пример применения

Задача: Вы — основатель стартапа, используете ChatGPT с памятью уже полгода. Обсуждали там зарплатные вилки команды, переговоры с инвесторами, планы по продукту. Теперь хотите безопасно использовать тот же чат для подготовки публичного питча.

Промпт (аудит памяти перед чувствительной задачей):

Перед тем как мы начнём работу над питчем, сделай аудит своей памяти обо мне.

Выведи списком:
1. Что ты помнишь о моей компании, команде, финансах, переговорах
2. Какие из этих данных НЕ должны попасть в публичный питч
3. Какие данные из памяти могут быть устаревшими и вводить в заблуждение

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

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


🧠

Почему это работает (и почему это опасно)

Проблема в том, что память не понимает контекст — она понимает релевантность. Когда модель ищет, что достать из памяти для нового вопроса, она ищет семантически похожее. «Зарплата» в вопросе коллеги → «зарплата» в памяти из другого разговора. Модель не спрашивает «можно ли это тут использовать?» — она спрашивает «это похоже на то, о чём спрашивают?».

Вторая проблема — нормализация. Чем больше в памяти рутинных взаимодействий с чувствительными данными (конфиги, реквизиты, персональные данные), тем более «обычными» они становятся для модели. Разговор о конфигурации сервера сотый раз подряд — и модель перестаёт воспринимать его как потенциально опасный контекст.

Третья проблема — суммаризация. Если память сжимает несколько записей в одну, итоговая запись может содержать утверждение, которого не было ни в одном источнике. Пример из исследования: из двух записей о выходных пособиях (15к и 25к фунтов) модель создала суммари «15–25к» → а потом предложила конкретному сотруднику «20к». Этой цифры вообще не существовало в источниках.

Рычаги управления для пользователя: - Явная изоляция задачи («при работе над этим вопросом используй только то, что я укажу явно») → снижает риск подтягивания нерелевантной памяти - Периодическая очистка памяти через настройки ChatGPT/Claude → обнуляет накопленный риск - Разные проекты/чаты для разных контекстов (работа vs личное vs конфиденциальное) → архитектурная изоляция без промптов


📋

Шаблон промптов

📌

1 — Аудит памяти перед чувствительной задачей

Перед тем как выполнить {задачу}, сделай аудит того, что хранишь в памяти обо мне.

Перечисли:
1. Данные, которые могут быть релевантны для {задачи}
2. Данные, которые НЕ должны попасть в ответ по этому запросу
3. Данные, которые могут быть устаревшими

Подтверди: при ответе ты будешь опираться только на {что именно использовать}.

Плейсхолдеры: - {задачу} — конкретная задача: «подготовки питча», «общения с клиентом», «написания публичного поста» - {что именно использовать} — явный источник: «то, что я скажу в этом сообщении», «файл, который я прикреплю»


📌

2 — Изоляция контекста для конкретного запроса

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

Контекст для этого запроса:
{вставь только то, что нужно}

Задача: {задача}

📊

3 — Проверка на stale information (устаревшие данные)

Перед тем как ответить на вопрос о {теме}: 
— Есть ли в твоей памяти данные по этой теме из прошлых сессий?
— Они могут быть устаревшими?

Если да — дай мне возможность подтвердить актуальность, прежде чем ты их используешь.

Вопрос: {вопрос}

📌

4 — Регулярная инструкция для чатов с накопленной историей

Важное правило для нашей работы:
— Если вопрос касается {чувствительная тема: финансы/кадры/медицина/технические детали} — 
  всегда спрашивай, какие данные из памяти можно использовать
— По умолчанию: опирайся только на то, что я укажу явно в этом сообщении
— Если данные из памяти противоречат тому, что я говорю сейчас — 
  приоритет у текущего сообщения, предупреди о противоречии

Плейсхолдеры: - {чувствительная тема} — подставь свои: клиентские данные, зарплаты, медицинские данные, конфиги, API-ключи


🚀 Быстрый старт — вставь в чат:

Вот шаблон для управления памятью AI. Адаптируй под мою ситуацию: 
[опиши, что ты обсуждаешь с AI и что хочешь защитить от утечки между сессиями]

[вставить шаблон выше]

LLM спросит, какие контексты ты хочешь изолировать и что считать чувствительным — чтобы настроить правило под конкретную ситуацию.


📌

Три сценария поломки — и как их распознать

Механизм Что происходит Сигнал тревоги
Cross-context leakage Данные пациента А попадают в ответ про пациента Б Модель называет конкретные имена/цифры, которых ты не давал в этом запросе
Stale information Устаревший адрес из памяти перебивает актуальный из запроса Модель использует данные, которые ты уже обновлял
Summarization combo Из нескольких записей модель создаёт новый «факт» Модель утверждает конкретную цифру/деталь, которую ты точно не говорил

🧠

Почему это работает — механика

Память AI — не архив с папками, это пространство похожести. Когда ты спрашиваешь что-то новое, система ищет «похожее на запрос» в накопленном — и достаёт TOP-N результатов. Она не знает, что эти данные о другом человеке или из другого проекта.

Чем больше памяти, тем больше «ложных соседей». При 10 записях в памяти — мало что попадёт случайно. При 4000 — почти любой запрос найдёт что-то похожее, даже если это неуместно. Вероятность случайного пересечения контекстов растёт нелинейно.

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


⚠️

Ограничения

⚠️ Применимость к ChatGPT/Claude: Описанные риски наиболее острые для агентов с автоматическим управлением памятью (типа MemGPT). В обычном ChatGPT с памятью механика похожа, но менее агрессивная — пользователь имеет больше контроля.

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

⚠️ Recency-biased память безопаснее: Если есть выбор между краткосрочной памятью (последние N сообщений) и долгосрочной (вся история) — краткосрочная создаёт меньше риска перекрёстного загрязнения. Учитывай при выборе настроек.

⚠️ Исследование на специализированных агентах: Тестировалось на агентах-ассистентах с тысячами задач. Для обычного пользователя ChatGPT масштаб меньше, но принципы те же.


🔍

Как исследовали

Исследователи поставили простой вопрос, который до них почти никто не ставил: что происходит с безопасностью AI-агента, если он месяцами накапливает обычную рабочую память — без атак и без злого умысла? Для ответа они создали специальный протокол: зафиксировали набор тестовых запросов, а потом проверяли эти же запросы против «снимков» памяти разной глубины — 200, 400, 600 взаимодействий и так далее. Это позволило разделить два эффекта: меняется ли что-то из-за накопления или из-за того, что и сами входящие задачи стали сложнее со временем.

Проверяли на двух типах агентов: офисные ассистенты (медицинская практика, университетский регистратор, реальные корпоративные имейлы из базы Enron) и агенты типа Claw с доступом к файловой системе и учётным данным. Восемь разных архитектур памяти, около 4000 взаимодействий на каждый сценарий.

Главное открытие, которое противоречило интуиции: даже когда исследователи случайным образом перемешивали порядок взаимодействий в памяти — риск не исчезал. Значит, опасность создаёт накопленное содержимое, а не специфический порядок событий. Архитектуры с широким охватом и долгим хранением (MemTree, Self-Controlled Memory) давали риск 30–50% на стрессовых тестах; архитектуры с bias к свежим данным оставались на 10–20%. Дополнительно обнаружили: риск можно предсказать до генерации ответа — по тому, что было извлечено из памяти, с точностью отзыва 97–98%.


💡

Адаптации и экстраполяции

🔧 Применение принципа «retrieval-time detection» в обычном чате:

Исследование показало, что риск виден до генерации — на этапе извлечения. В обычном чате это переводится так: попроси модель сначала показать, что она собирается использовать из памяти, прежде чем ответить.

Правило для всех ответов на тему {чувствительная_область}:

Шаг 1: Перечисли, что из своей памяти ты считаешь релевантным для этого вопроса
Шаг 2: Я подтверждаю или отклоняю каждый элемент
Шаг 3: Только после подтверждения — формулируй ответ

Вопрос: {вопрос}

Это ручная реализация «retrieval-time monitor» из Algorithm 1 статьи — только вместо автоматического классификатора ты сам становишься фильтром.


🔧 Использование «эффекта нормализации» в свою пользу:

Исследование описывает context normalization как риск (агент привыкает к опасным паттернам). Но тот же принцип работает в плюс: систематическое повторение правил в начале сессий постепенно «нормализует» их для модели.

[Стартовое сообщение каждой рабочей сессии]

Напоминание о наших правилах работы:
— Конфиденциальные данные клиентов не используем в примерах
— При неуверенности — спрашиваешь, не предполагаешь
— Данные из прошлых сессий используешь только когда я явно ссылаюсь на них

Подтверди и начнём.

🔗

Ресурсы

Remembering More, Risking More: Longitudinal Safety Risks in Memory-Equipped LLM Agents Project page

Авторы: Ahmad Al-Tawaha (Virginia Tech), Shangding Gu (UC Berkeley), Peizhi Niu (UIUC), Ruoxi Jia (Virginia Tech), Ming Jin (Virginia Tech)

Связанные работы упомянутые в статье: MemEngine taxonomy (Zhang et al., 2025b), MemGPT (Packer et al., 2023), Generative Agents (Park et al., 2023), PrivacyLens (Shao et al., 2024)


📋 Дайджест исследования

Ключевая суть

Скрытый генератор галлюцинаций живёт прямо в памяти AI: модель сжимает две записи о выходных пособиях (15к и 25к фунтов) — создаёт суммари «15–25к» — потом уверенно предлагает конкретному сотруднику ровно 20к. Этой цифры не было ни в одном источнике. Промпт-аудит памяти позволяет изолировать задачу от накопленной истории — модель явно показывает что и откуда тащит, прежде чем использовать. Фишка: добавляешь один блок «при работе над этим используй только то, что я укажу явно» плюс запрос аудита — и утечки между контекстами прекращаются.

Принцип работы

Стандартная логика: «у меня есть история — AI помнит контекст». Реальная механика другая: AI не знает «чьи данные» — он знает «похоже на вопрос или нет». При 10 записях в памяти — шанс случайно вытащить чужое мал. При 4000 — почти любой запрос найдёт «похожее», даже если это совершенно неуместно. Это не баг и не взлом. Это архитектура: память работает как поиск по сходству, а не как папка с разграничением доступа.

Почему работает

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

Когда применять

Любая регулярная работа с AI-ассистентом где включена долгосрочная память — HR-задачи, клиентские данные, медицинские записи, финансы, технические конфиги. Особенно актуально когда один чат используешь для разных проектов или разных людей месяцами. НЕ критично для одноразовых запросов без памяти или изолированных проектов — там риск архитектурно снижен с самого начала.

Мини-рецепт

1. Сделай аудит перед чувствительной задачей: вставь блок «перед тем как начать — выведи что помнишь по теме X, что из этого не должно попасть в ответ, что может быть устаревшим».
2. Явно изолируй задачу: добавь фразу «при работе над этим используй только то, что я укажу сейчас — ничего из прошлых сессий».
3. Установи приоритет текущего: «если данные из памяти противоречат тому, что я пишу сейчас — приоритет у текущего сообщения, предупреди о противоречии».
4. Разные чаты для разных контекстов: работа с финансами, HR, клиентами — отдельные проекты. Это самый надёжный способ, не требует промптов вообще.

Примеры

[ПЛОХО] : Помоги подготовить питч для инвесторов — в чате, где полгода обсуждались внутренние зарплаты, переговоры и детали команды. Модель честно подтянет всё «релевантное» из памяти прямо в питч.
[ХОРОШО] : Перед работой над питчем сделай аудит памяти: что помнишь о моей компании, финансах, команде. Отдельно укажи что НЕ должно попасть в публичный питч. При работе над питчем опирайся только на то, что я дам явно в этом сообщении — всё остальное игнорируй.
Источник: Remembering More, Risking More: Longitudinal Safety Risks in Memory-Equipped LLM Agents
ArXiv ID: 2605.17830 | Сгенерировано: 2026-05-19 05:33

Проблемы LLM

ПроблемаСутьКак обойти
Память ищет похожее — не уместноеМодель с памятью не спрашивает «можно ли использовать эти данные здесь?». Она спрашивает «это похоже на то, о чём спрашивают?». Слово «зарплата» в новом запросе вытащит «зарплату» из чужого разговора. Граница между контекстами для памяти не существуетЯвно скажи модели что использовать: «При ответе опирайся только на то, что я укажу в этом сообщении. Ничего из прошлых сессий»
Сжатие памяти создаёт факты, которых не былоКогда память сжимает несколько записей в одну, она пишет новый текст. Этот текст может содержать утверждения, которых не было ни в одном источнике. Из записи «15 000» и записи «25 000» может появиться суммари «15–25 тысяч» а потом ответ «20 тысяч». Этой цифры не существовалоПопроси модель процитировать источник конкретного числа или факта: «Откуда эта цифра? Из какого сообщения?»

Методы

МетодСуть
Аудит памяти перед чувствительной задачейПеред важным запросом попроси модель показать что она помнит. Шаблон: Перед тем как выполнить {задачу}, выведи списком: 1) что помнишь по теме, 2) что из этого НЕ должно попасть в ответ, 3) что может быть устаревшим. Подтверди: будешь опираться только на {что именно}. Почему работает: модель делает скрытый процесс видимым. Ты видишь что она собирается использовать — до того как она ответит. Когда применять: перед любым запросом где накопленная история может навредить (публичный текст, общение с клиентом, чувствительная тема)
Явная изоляция контекстаСкажи модели игнорировать память для конкретного запроса. Шаблон: Для этого запроса работай только с тем, что я напишу сейчас. Не используй ничего из прошлых сессий. Контекст: {вставь нужное}. Задача: {задача}. Почему работает: явная инструкция перебивает автоматический поиск по памяти. Модель получает прямое указание откуда брать данные. Ограничение: снижает риск, не убирает полностью

Тезисы

ТезисКомментарий
Чем больше памяти — тем выше шанс случайного пересечения контекстовПри 10 записях в памяти почти ничего не попадёт случайно. При тысячах — любой запрос найдёт «похожее», даже если это неуместно. Рост нелинейный: каждая новая запись увеличивает число потенциальных ложных совпадений. Применяй: периодически чисти память или используй разные чаты для разных тем — это архитектурная защита, которую никакой промпт не заменит
📖 Простыми словами

Remembering More, Risking More: Longitudinal Safety Risks in Memory-EquippedLLMAgents

arXiv: 2605.17830

Проблема в том, что память AI-агента — это не аккуратный архив с папками, а огромная свалка, где всё лежит в одной куче. Когда ты просишь нейронку что-то вспомнить, она не проверяет «права доступа» или уместность данных, а просто выгребает всё, что похоже на твой текущий запрос по смыслу. Это явление назвали Temporal Memory Contamination: со временем безвредный опыт превращается в токсичный багаж, который модель начинает подмешивать в новые ответы, даже если её об этом не просили.

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

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

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

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

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с