Перейти к содержимому

Память ИИ-агентов: риски утечек данных и способы защиты

ИИ-агенты помнят слишком много - и это становится проблемой

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

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

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

Три уровня памяти ИИ-агента

Память современных агентов обычно условно разделяют на три уровня.

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

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

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

Почему накопление данных опасно

Главная проблема заключается не только в том, что агент что-то запомнил. Важнее, что сохранённые сведения могут автоматически возвращаться в подходящем контексте. Пользователь способен забыть о случайно упомянутом пароле, диагнозе, финансовой проблеме или внутреннем документе, а система продолжит учитывать этот фрагмент при будущих ответах.

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

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

Как работает атака на память

Один из классов подобных угроз называют MEXTRA - Memory EXTRAction Attack. Суть метода в том, что атакующий не обязательно получает прямой доступ к базе. Он формирует специальный запрос, который заставляет агента самостоятельно найти скрытые сведения и вывести их наружу.

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

Известны сценарии, в которых агент, работающий с медицинскими карточками, получал внешне безобидное задание. Внутри запроса содержалась команда найти прошлые врачебные инструкции и затем подготовить код для их вывода. В результате система могла сгенерировать программу с конструкцией вроде `print(...)`, после чего конфиденциальные сведения появлялись в консоли или в ответе пользователю.

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

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

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

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

Можно ли удалить информацию

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

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

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

Как сделать память безопаснее

Безопасная архитектура ИИ-агента должна включать несколько независимых механизмов защиты:

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

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

Принцип минимальной памяти

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

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

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

Прокрутить вверх