Сергей Смирнов, ИИ-инженер и основатель LLMStart.ru, опубликовал разбор проблемы управления памятью в корпоративном ИИ-консультанте, который его команда сделала для компании Айтон. Бот помогает пользователям работать в «1С:Управление нашей фирмой»: принимает текстовые вопросы и скриншоты, ищет ответы в базе знаний, при необходимости подключает субагента для поиска актуальной информации в интернете. На каждый вопрос агент делает 2–4 тяжёлых поисковых запроса — и именно это стало корнем проблемы.

Когда команда разобрала более 300 реальных сессий, интуитивная картина рассыпалась. Казалось бы, контекст должен забиваться историей переписки — вопросами и ответами. На деле один шаг диалога потребляет в среднем около 2000 токенов, и 93% из них приходится на результаты поисковых вызовов, а не на реплики пользователя. Системный промпт фиксирован (1513 токенов), вопрос пользователя весит в среднем 45 токенов, ответ агента — около 109. Зато один поход в базу знаний стоит порядка 950–1050 токенов, а за шаг агент делает их два-три.

Элемент контекстаСреднее (avg)Медиана (p50)95-й перцентиль (p95)
Системный промпт1 5131 5131 513
Вопрос пользователя454870
Ответ агента10933446
Результат поиска по базе9501 0511 447
Результат вызова эксперта6226881 115
Вызовы инструментов на цикл225

Дальше срабатывает эффект снежного кома. Агент хранит всю историю сессии и тащит за собой не только предыдущие реплики, но и все поисковые выдачи, которые он запрашивал раньше. На 5-м шаге диалога доля устаревших результатов поиска составляет 65%, на 15-м — уже 83%, на 30-м — 88%, на 50-м — 90%. К середине типичного диалога пользователь, скорее всего, обсуждает уже другую тему, но агент продолжает тащить данные из первых запросов. Без оптимизации самые длинные сессии упираются в 200 тысяч токенов на 19-м шаге.

К 15-му циклу диалога доля устаревших данных в контексте достигает 83%, к 50-му — 90%.

Здесь важен более широкий контекст: заявленное окно в миллион токенов не означает, что модель одинаково хорошо работает со всем его объёмом. Anthropic называет это явление context rot — «гниение контекста». Специализированный бенчмарк MRCR v2 (усложнённый вариант теста «найди иголку в стоге сена») прячет в огромный текст 8 фактов и проверяет, сколько из них модель найдёт без ошибок. По данным обзора yage.ai за март 2026 года, на окне в 1 миллион токенов Claude Opus 4.6 находит 76% скрытых фактов, тогда как Gemini 3.1 Pro — только 24,5%. Более старые модели показывают 16–18%. Разрыв трёхкратный при одинаковом заявленном размере окна.

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

Стек проекта: Python и FastAPI на бэкенде, LangChain для управления агентом, Qdrant как векторная база данных, Langfuse для аналитики, OpenRouter как провайдер. Основная модель — Gemini 3.1 Pro, для лёгких задач (краткий пересказ, промежуточные шаги) используется более дешёвая Gemini 3 Flash. Именно разница в стоимости моделей делает оптимизацию контекста экономически значимой: чем меньше токенов отправляется в дорогую модель, тем ниже операционные расходы при том же качестве ответов.