Помнит ли платформа, о чем был разговор? Это самый простой вопрос про память у систем на LLM (больших языковых моделях). В работающем техническом решении память нужна в нескольких разных местах, и у каждого свое хранилище и свой срок. Термины (шаг, попытка, прогон, сессия, установка, ядро платформы, точка подтверждения, точка передачи, контролер, правила соответствия, карта замен) определены на обзорной странице.
Четыре горизонта памяти
| Горизонт | Что покрывает | Сколько живет |
|---|---|---|
| Память шага | Одну попытку одного шага | До конца попытки, на диск не записывается |
| Память процесса | Прогон от запуска до завершения | Дни и недели, переживает перезапуск платформы и многодневное ожидание контролера |
| Память диалога | Переписку сотрудника или покупателя магазина с ИИ-ассистентом на LLM между сессиями | Переживает обновление страницы, новое окно браузера и новую рабочую смену. Диалог закрывается сервером после объявленного срока простоя или по явной команде закрытия из системы заказчика |
| Память установки | Итоги прошлых прогонов и решения контролеров на точках подтверждения | Между разными задачами и прогонами, срок хранения задан правилами соответствия |
Память шага - это рабочие данные одной попытки, на диск они не записываются, и разбирать в ней нечего. Дальше о трех остальных горизонтах.
Память процесса, из-за которой задача переживает ожидание
Прогон маршрута может быть долгоживущим процессом. Он может остановиться на точке подтверждения и ждать контролера столько, сколько понадобится (до вечера, до понедельника или до возвращения согласующего сотрудника из отпуска). Состояние прогона лежит в базе данных ядра платформы. Из-за перезапуска платформы, ее обновления или отказа одной из копий ядра прогон не теряется, он продолжается с того места, где стоял.
Память процесса нужна и проверке при установке. Если шаг читает данные, которых в этой точке маршрута еще нет, потому что предыдущие шаги их не записывают, описание задачи отвергается. Так проверка при установке отсеивает описания, в которых шаг длинного процесса остался бы без данных от предыдущих шагов.
Память диалога, где одно лицо получает одно условное обозначение
Если техническое решение отвечает сотруднику или покупателю магазина в чате (ИИ-ассистент на LLM), переписка не начинается с нуля при каждом входе. История диалога хранится на стороне платформы и подставляется в контекст при сборке следующего ответа. Историю подставляет сервер. Подменить ее, прислав другую историю в запросе с рабочего места, нельзя.
У памяти диалога есть неочевидная часть, ради которой пришлось строить отдельный механизм. Персональные данные в текстах заменяются на условные обозначения до того, как текст уйдет в LLM. Если бы карта замен (таблица соответствия между персональными данными и их условными обозначениями) создавалась заново на каждую реплику, вчерашняя реплика вернулась бы в контекст с другим обозначением того же человека, и LLM увидела бы двух разных людей вместо одного. Поэтому карта замен привязана к диалогу целиком и живет, пока живет диалог (срок продлевается при каждой реплике).
Отсюда правило, которое мы не меняем ни под какие права доступа. Тексты диалогов хранятся только с заменой персональных данных на условные обозначения. Текст с восстановленными данными существует только на экране адресата в момент ответа и на диск не записывается. Иначе роль аналитика качества (сотрудник заказчика, который читает диалоги ИИ-ассистента, чтобы оценивать ответы) стала бы каналом доступа к персональным данным покупателей в открытом виде.
Память установки, где лежат итоги прогонов и решения контролеров
После завершения прогона платформа записывает его итог, то есть чем закончился маршрут, какое решение принял контролер на точке подтверждения и с каким комментарием. Запись делается после прогона и вне пути, по которому идет ответ, поэтому она не замедляет саму задачу.
Читать эту память может следующий прогон, если так объявлено в описании задачи. Пример с нашего стенда. Редактор отклонил ответ на отзыв покупателя и написал в комментарии, что покупатель просил не называть его по имени. Следующий прогон по тому же отзыву получает этот комментарий в контекст до вызова LLM и пишет ответ иначе. Комментарий при этом лежит в памяти уже с заменой имени, и в LLM имя не уходит.
Доступ к памяти установки проверяется при каждом чтении по ролям того, от чьего имени идет прогон.
Регламенты со сроком действия, отдельный вид памяти установки
Отдельный вид памяти установки - это регламенты, положения и инструкции как записи в базе установки с номером редакции, датами начала и конца действия и ссылкой на заменяющую редакцию. При запуске ядра платформы и затем раз в сутки платформа перечитывает эти записи и составляет перечень документов, которые пора пересмотреть. Признаки у перечня формальные.
- Подходит к концу или истек срок действия.
- Прошел интервал пересмотра, записанный в самой редакции.
- Стоит пометка «пересмотреть», которую поставил сотрудник заказчика, ответственный за регламенты.
- Записана отметка о внешнем событии, например об изменении документа в системе заказчика.
Перечень платформа записывает в журнал установки, то есть в служебный журнал ядра платформы, который читает администратор установки. Отдельного экрана для ответственного за регламенты на нашем стенде пока нет.
Пример с нашего стенда. Мы положили в записи о редакциях три строки.
- Действующая редакция правил возврата товара, у которой подходил к концу срок действия и давно прошел интервал пересмотра.
- Свежая редакция правил доставки.
- Замененная старая редакция правил возврата.
После перезапуска ядра платформа назвала кандидатом на пересмотр только первую, по двум признакам сразу (срок действия и интервал пересмотра). Свежую и замененную она не тронула.
Здесь платформа останавливается на формальных признаках. Судит о том, устарел ли документ по существу, и переписывает его ответственный за регламенты. Индекс поиска по документам (RAG) - это собранная платформой база фрагментов регламентов для ответов по ним. Свежесть индекса и актуальность самого регламента - это разные величины, и одна из другой не следует. Индекс, собранный по последней редакции документа, ничего не говорит о том, не устарел ли документ, а просроченный регламент ничего не говорит о состоянии индекса.
Правила, общие для памяти диалога и памяти установки
Для обеих действуют такие правила:
- Доступ к памяти проверяется на каждом чтении. Отказ в доступе - это штатная ошибка шага. Задача уходит в точку передачи, и прогон не зависает.
- Классы данных и сроки хранения задаются правилами соответствия в описании задачи. Служба информационной безопасности заказчика видит их в описании задачи, и изменить их можно, не пересобирая платформу.
- Запись в память установки - это объявленная часть описания задачи, которую платформа выполняет после прогона, а историю диалога сервер пишет на каждой реплике. Нового вида шага для записи в память в формате маршрута нет, и мы так решили. Чем меньше видов шагов, тем меньше правил приходится проверять при установке.
Чего платформа не помнит
Границы памяти такие:
- Не дообучается на данных заказчика. Память здесь - это хранилища, а сама LLM от прогона к прогону ничему не учится.
- Не переносит контекст между заказчиками. Установка изолирована, и то, что накопилось у одного заказчика, у другого не появляется.
- Не хранит персональные данные в открытом виде ни в текстах диалогов, ни в памяти установки.
На какой стадии память сегодня
Память процесса работает во всех технических решениях каталога, на ней держится каждое ожидание контролера. Память диалога и память установки проверены на нашем стенде в сентябре 2026 года на двух маршрутах стенда (ИИ-ассистент продавца в торговом зале и ответ на отзыв покупателя). Отбор кандидатов на пересмотр регламентов проверен там же на маршруте ответов по внутренним документам. Платформа находит просроченную редакцию и не трогает свежую и замененную. Экрана для перечня пока нет. Установок у заказчиков нет, замера на их данных нет.
Где посмотреть память на записанном запуске
На карточках технических решений витрины видно, какие шаги читают состояние прогона и по каким условиям расходятся ветки, например на карточке ответов по внутренним документам. Условие перехода читает то, что записал предыдущий шаг, и это самая наглядная часть памяти процесса. Соседние страницы раздела разбирают агентский цикл, объявление маршрута, проверки результата и границы самостоятельности платформы.