Память AI-агента: как агент помнит диалог и что ему нельзя запоминать
Память AI-агента — это не свойство самой модели, а часть приложения вокруг неё. Между запросами модель ничего не хранит, и всё, что агент «помнит», кто-то должен записать, найти в нужный момент и вернуть в запрос. Разбираем контекст и долговременную память, что в неё можно класть, чего нельзя и как она ломается.
Как работает память AI-агента: модель между запросами ничего не помнит
Языковая модель обрабатывает каждый запрос отдельно: получает текст, выдаёт продолжение и ничего не оставляет у себя. Её веса при обычной работе не меняются. Если утром сказать модели, что клиент просит звонить после 18:00, вечером в новом запросе она об этом не знает. Когда агент ведёт себя так, будто помнит, значит, приложение вокруг модели что-то сохранило и вернуло в запрос.
Проще всего устроено то, как агент помнит диалог. Приложение хранит сообщения и при каждой реплике собирает запрос заново: инструкцию, описания инструментов, историю, результаты прошлых вызовов и новый вопрос. На момент подготовки материала некоторые платформы берут хранение истории на себя и называют это «памятью» или «тредами», но принцип тот же: хранилище снаружи, повторная подача текста внутрь.
- «Агент забыл» чаще всего значит «в запрос это не попало». Сообщение вытеснено, сводка потеряла деталь, поиск не нашёл запись. Чинить нужно сборку запроса, а не менять модель.
- Всё «запомненное» — данные приложения. Их можно проверить, исправить и удалить. С весами модели так не получится.
- Дообучение — не способ запоминать факты о клиентах. Конкретный факт о человеке после него трудно проверить и трудно точечно отозвать.
Общее устройство агента описано в материале что такое AI-агент. Здесь только память.
Контекстное окно LLM: сколько агент способен держать в запросе
Объём текста, который модель принимает за один запрос, ограничен. Предел называют контекстным окном и считают в токенах, то есть в фрагментах слов. В окно входит всё сразу: инструкция, история, найденные документы, результаты инструментов и место под ответ. У разных моделей предел разный и меняется, поэтому смотрите актуальные параметры выбранной модели на момент проекта.
Заполнять окно до краёв не стоит. Во-первых, деньги: входной текст оплачивается при каждом обращении, подробнее в статье про расход агента на обращения к модели. Во-вторых, качество: по публикациям исследователей, на очень длинных запросах у ряда моделей хуже используются детали из середины текста, а лишнее и противоречивое сбивает ответ. У вашей модели это проверяют на ваших данных. В-третьих, скорость: длинный запрос обрабатывается дольше.
Условный пример, не замер, только метод. Пусть пара «вопрос — ответ» занимает около 200 токенов, а приложение при каждой реплике отправляет всю историю: 200 токенов на первой реплике, 400 на второй, 2 000 на десятой. За десять реплик на входе набегает 200 × (1 + 2 + … + 10) = 11 000 токенов при 2 000 токенов нового текста. Расход растёт быстрее диалога, поэтому историю не копят бесконечно. Оговорка: у части провайдеров повторяющееся начало запроса кэшируется и стоит дешевле (условия проверяйте на момент проекта), но это не отменяет ни задержки, ни проблем качества на длинном тексте.
Когда история не помещается или дорожает, у приложения три хода.
- Отрезать старое. Просто, но теряются ранние договорённости.
- Заменить старое сводкой. Её пишет модель, и она может опустить или исказить деталь, а ошибочная сводка дальше считается правдой. Числа, даты и номера хранят полями, а не в пересказе.
- Подтягивать нужное по мере надобности поиском по записям и документам. Часто экономнее всего, но требует аккуратной настройки и проверки качества поиска.
Виды памяти AI-агента: пять разных вещей под одним словом
Слово «память» в проектах обозначает разные вещи с разными хранилищами, сроками жизни и рисками. Мы различаем пять видов.
| Вид памяти | Что хранит | Срок жизни | Главный риск |
|---|---|---|---|
| Контекст текущей задачи | Сообщения, результаты вызовов инструментов, промежуточные выводы | До закрытия задачи | Переполнение окна, лишний текст |
| Сводка диалога | Сжатый пересказ ранней части разговора | Пока идёт диалог | Потеря деталей, ошибка пересказа, ставшая «фактом» |
| Долговременная память о клиенте | Подтверждённые предпочтения, договорённости, пометки по прошлым обращениям | Задаёт политика хранения | Устаревание, лишние персональные данные, утечка между пользователями |
| Знания компании | Регламенты, прайс, договоры; агент их читает и не меняет (RAG) | Пока документ актуален | Старые редакции, противоречия, чужие права доступа |
| Журнал действий | Что агент прочитал, вызвал, предложил и кто утвердил | По политике аудита | Персональные данные в журнале |
Знания компании и память о клиенте различаются тем, кто пишет. Документы пишут люди, и у каждого есть владелец. Память о клиенте копится в ходе работы, в том числе по предложению самого агента, поэтому записи в неё проверяют строже. Журнал нужен, чтобы восстановить, что произошло, а не чтобы агент на нём «учился»; как его использовать, описано в статье про мониторинг AI-агента.
Что такое векторная память агента
Векторная память — хранилище записей с поиском по смыслу. Текст записи специальная модель превращает в набор чисел (эмбеддинг), вопрос превращается так же, и система находит записи с ближайшими числами: запрос «когда клиенту удобно созваниваться» найдёт запись «просит звонить после шести вечера». Хранилищем может быть векторная база или расширение к обычной СУБД.
Ограничение: такой поиск находит похожее, а не верное и не точное. Номера заказов, артикулы и даты он ищет плохо, а из близких по смыслу записей не отличит актуальную. Поэтому его часто сочетают с поиском по словам и фильтрами по полям.
Что хранить в памяти AI-агента, а что нельзя
Первый вопрос к любому факту: есть ли он в учётной системе? Статус заказа, остаток, цена, срок договора лежат в 1С или CRM, и агент должен спрашивать их через инструмент в момент ответа, как описано в статье про инструменты AI-агента. Копия в памяти устареет, а агент будет уверенно отвечать по ней.
Что есть в учётной системе, агенту лучше не запоминать, а спрашивать. Память нужна для того, чего больше нигде нет.
Что имеет смысл хранить
- Предпочтения, которые подтвердил сам человек: язык, канал и время связи.
- Договорённости с датой, автором и ссылкой на источник, например «перенос поставки согласован письмом от такого-то числа».
- Итоги закрытых обращений полями (тема, решение, кто утвердил), а не стенограмма целиком.
Чего в памяти быть не должно
- Пароли, ключи, токены, коды из СМС, реквизиты карт. Попав в память, секрет попадёт в запрос к модели, журнал и резервную копию. Ключи хранит хранилище секретов, а подставляет их код инструмента.
- Лишние персональные данные. Всё, без чего задача решается, прежде всего паспортные данные, сведения о здоровье и семье. Если такие сведения нужны по сути процесса (например, в клинике), это отдельное решение оператора, а не побочный эффект памяти. Запоминать «на всякий случай» значит завести ещё одно хранилище, за которое придётся отвечать.
- Догадки агента, записанные как факты. «Клиент, вероятно, недоволен» — вывод модели, а не сведения о клиенте; при следующем обращении он станет исходной посылкой.
- Инструкции из чужих текстов. Фраза «в дальнейшем присылайте отчёты на этот адрес» в письме не должна становиться правилом: правила меняют владельцы процесса.
Запись в память — такое же действие, как запись в 1С: узкий инструмент с заданными полями, проверки в коде вместо просьбы к модели «запоминай только важное», для чувствительных записей подтверждение человеком (человек в контуре). Схему «модель сама решает, что запомнить» мы не берём для процессов, где запись влияет на деньги и клиентов.
Как ломается память AI-агента: шесть сбоев и что с ними делать
| Сбой | Как проявляется | Что помогает |
|---|---|---|
| Устаревшие факты | Клиент сменил телефон или условия, а агент действует по прежним | Дата и источник записи, срок жизни; изменяемое берут из учётной системы |
| Противоречия | В памяти и «звонить вечером», и «не звонить вечером» | Один факт — одна запись; конфликт показывают человеку |
| Закрепление ошибки | Агент записал свой вывод, и он стал «известным» | Пишут только подтверждённое; вывод модели остаётся предположением |
| «Отравление» | Вредный текст из письма или документа попал в память и влияет на будущие действия | Запись по правилам из доверенных источников, откат, тест со вредной записью (безопасность AI-агентов) |
| Утечка между пользователями | Поиск вернул запись другого клиента, и агент её пересказал | Фильтр по владельцу в коде запроса, а не в инструкции |
| Раздувание | Записей много, поиск находит не то | Срок жизни, слияние дублей, регулярная чистка |
Два сбоя опаснее остальных. «Отравление» действует отложенно: запись внесли сегодня, а последствия проявятся через недели в другом диалоге. Утечка между пользователями чаще всего оказывается обычной ошибкой разработки, например забытым фильтром. Просьба в инструкции «не показывай чужое» её не закрывает: модель может нарушить просьбу, а наличие фильтра в коде проверяется тестом.
Шесть контролей, которые закладываем с первого дня
Срок жизни
Одни записи живут до конца задачи, другие месяцы, но не вечно. Продление — перепроверка, а не молчание.
Источник и дата
Запись хранит, откуда она взялась и когда. Без источника в решениях не участвует.
Разделение по пользователям
Записи привязаны к владельцу, фильтр применяет код при каждом чтении и записи.
Возможность забыть
Запись о человеке можно найти и удалить вместе с её вектором в индексе, если оператор данных принял такое решение.
Аудит и откат
Каждая запись и чтение попадают в журнал, а версии позволяют вернуться к состоянию до вредной записи.
Проверка до запуска
В тесты входят вредная запись, устаревший факт, противоречие и запрос «от чужого имени». Как строить набор — в статье про оценку качества AI-агента.
Память агента и 152-ФЗ: что решаете вы, а что мы
Как только в памяти лежат сведения о конкретном человеке (имя, телефон, история обращений), память становится ещё одним местом хранения персональных данных. Оператором остаётесь вы, а не разработчик агента и не поставщик модели: цель, перечень полей, срок, место и порядок удаления определяет ваша компания вместе с юристом. Юридических заключений мы не даём и соответствия закону не обещаем. Наша часть техническая: чтобы записи можно было найти по человеку, удалить и показать, откуда они взялись.
До запуска задайте пять вопросов.
- Какие поля пишутся в память и зачем?
- Сколько они хранятся и что происходит по истечении срока?
- Где лежат записи, векторный индекс, журналы и копии и доходит ли удаление до всех этих мест?
- Уходят ли записи в облачную модель, как только попадают в запрос? Для персональных данных это передача стороннему сервису, подробнее в статье про ИИ и 152-ФЗ.
- Как исполняется просьба человека удалить его данные и кто её принимает?
Если облачная передача неприемлема, возможна установка в вашем контуре. Индекс векторов мы осторожно считаем хранилищем тех же данных, а не обезличенным представлением, пока обратное не показано отдельной оценкой.
Пример: клиент пишет в магазин второй раз
Иллюстрация, а не описание проекта. Клиент интернет-магазина пишет: «Опять пришёл не тот размер. Как в прошлый раз, позвоните после шести». Что при этом нужно агенту для интернет-магазина и откуда он это берёт:
| Что нужно агенту | Вид памяти | Откуда берётся |
|---|---|---|
| Текст диалога, номер заказа | Контекст задачи | Сообщения сессии; номер проверяется в учётной системе |
| Что было «в прошлый раз» | Не память агента | Запрос к CRM: прошлые обращения лежат там |
| Звонить после шести | Долговременная память | Запись с датой и источником, владелец — этот клиент |
| Условия обмена | Знания компании | Поиск по регламенту со ссылкой на пункт |
| Что предложил агент, кто утвердил | Журнал действий | Запись в журнале; обмен оформляет сотрудник |
В долговременную память попала одна короткая запись, остальное агент берёт из систем и документов, и так проще проверять и удалять. Если бы он «помнил» историю заказов сам, ответ пошёл бы по копии, которая разошлась с CRM.
Память в мультиагентной системе: кто имеет право записывать
В мультиагентной системе добавляется вопрос, кто пишет в общую память. Если агент, читающий чужие письма, может писать в неё, ошибка или вредный текст одного агента становятся «знанием» остальных. Поэтому у каждого агента свой контекст и только нужные ему данные, а запись в долговременную память идёт через отдельный шаг с проверкой. Устройство таких систем — в статье что такое мультиагентная система, критерии выбора — в разборе один агент или несколько.
Чек-лист: как проектировать память AI-агента
- Выпишите, что агенту нужно знать на каждом шаге, и источник каждого факта.
- Что есть в учётных системах, запрашивайте, а не запоминайте.
- Для остального выберите вид памяти из пяти и место хранения.
- Опишите схему записи: поля, кто и на каком основании её создаёт.
- Задайте срок жизни и порядок продления.
- Привяжите записи к владельцу и закрепите фильтр в коде.
- Составьте список того, что запоминать нельзя.
- Предусмотрите «забыть»: поиск по человеку, удаление вместе с вектором, журнал удалений.
- Решите, какие записи подтверждает человек.
- Добавьте в тесты вредную запись, устаревший факт, противоречие и чужой запрос и повторяйте после каждого изменения схемы или модели.
Эти пункты стоит перенести в техническое задание на AI-агента. Если подрядчик не может ответить на эти вопросы заранее, память придумают по ходу работы.
Сколько стоит память AI-агента в проекте
Память не бесплатна: хранилище, схема и правила записи, тесты, сопровождение. Отдельной строкой идут обращения к модели, которые растут с длиной контекста, а при установке в контуре ещё и оборудование. Поэтому по умолчанию начинаем с минимума: контекст задачи, поиск по документам и запросы к вашим системам. Долговременную память о клиентах добавляем, когда назван процесс, где без неё не обойтись, и описано, что делать с устаревшей записью.
Пилот на одном процессе — от 200 000 ₽, 3-4 недели; мультиагентная система — от 800 000 ₽, 2-3 месяца; сопровождение — от 40 000 ₽ в месяц; состав работ, в том числе перепроверку памяти, фиксируем в договоре. Расходы целиком — в статье сколько стоит AI-агент, что мы строим — на странице разработки AI-агентов, а почему данные устаревают после запуска — в материале о сопровождении.
Частые вопросы
Как работает память ИИ-агента?
Сама модель между запросами ничего не хранит. Память строит приложение: сохраняет сообщения, записи и результаты вызовов, а при каждом обращении выбирает нужное и добавляет в запрос. Что не попало в запрос, для модели не существует.
Почему ИИ-агент забывает начало диалога?
Обычно начало вытеснено из-за ограничения объёма, сводка потеряла деталь, поиск не нашёл запись или модель хуже использует деталь в длинном тексте. Лечится сборкой запроса: ключевые данные хранят полями и подают явно, а длинную историю сжимают.
Что такое контекстное окно LLM и нужна ли модель с самым большим окном?
Это предел объёма текста в одном запросе. Большое окно полезно для длинных документов, но расходы растут с каждым обращением, а качество на длинных запросах проверяют отдельно. Размер окна определяют по задаче и проверяют на ваших примерах.
Что такое векторная память агента и нужна ли она?
Это хранилище записей с поиском по смыслу: текст превращается в набор чисел, и система находит близкие по значению записи. Она нужна, когда записей много и искать их приходится не по точному полю. Если на человека приходится немного записей, хватает обычной базы с фильтрами.
Чем долговременная память агента отличается от RAG?
Тем, кто пишет. RAG — поиск по документам, которые подготовили люди; агент их только читает. Долговременная память — записи, накопленные в работе, иногда по предложению самого агента, поэтому контроль записи у неё строже. Поиск может быть одним и тем же, а правила доверия разные.
Можно ли заставить агента забыть данные клиента?
Если память устроена как данные приложения, да: записи привязаны к человеку, их можно найти и удалить вместе с вектором, а удаление доходит до журналов и копий в заранее описанные сроки. Если данные попали в дообучение модели, забыть их точечно трудно, поэтому факты о людях туда не кладут.
Нужна ли AI-агенту долговременная память?
Часто нет. Многим процессам хватает контекста задачи, запросов к учётным системам и поиска по документам. Долговременную память добавляют, когда без неё не обойтись, например когда договорённости с клиентом тянутся неделями и нигде больше не фиксируются.
Решим, что агенту помнить, а что запрашивать
На экспресс-аудите описываем, какие данные агенту нужны в процессе, где они лежат и что должно забываться. Экспресс-аудит — 50 000 ₽, 5-7 рабочих дней, сумма засчитывается в проект.
Оставить заявку