Эволюция сжатия контекста в AI-агентах: от полной истории к интеллектуальной фильтрации
Каждый шаг AI-агента — это цикл: пользователь, LLM, инструменты. Вся история дописывается, и если отправлять её целиком при каждом вызове, контекстное окно быстро забивается. Даже у современных моделей с гигантскими окнами длинная неструктурированная история ухудшает качество ответов — модель «забывает» суть. Плюс накопленный диалог и реальный контекст на очередном ходе не одно и то же: часть сообщений избыточна, часть устарела.
Последние полтора года индустрия активно развивает context engineering — подход, при котором история не скидывается целиком, а обрабатывается: сжимается (суммаризацией, выделением ключевых фактов), выносится во внешнее хранилище (векторная БД) или подтягивается инструментами по необходимости (MCP, функции поиска). LangChain показывает эту эволюцию наглядно: начинали с простого отсечения хвоста (truncation), потом добавили summarization, memory, а теперь — агентные схемы с селективным извлечением контекста.
Сейчас типичное решение — гибридное: часть истории (последние N сообщений) идёт в контекст целиком, остальное сжато в краткое реферативное представление, а ещё часть лежит в векторной БД и подтягивается по релевантности. В LangChain это реализовано через ConversationSummaryBufferMemory, а для продвинутых сценариев — через custom tools, которые агент сам решает, когда вызывать. Другие фреймворки (LlamaIndex, CrewAI) делают аналогично, часто опираясь на открытый код LangChain как на референс.
Ключевой вывод: проблема контекста решается не увеличением окна, а умной архитектурой памяти. Дальнейшее развитие — адаптивное сжатие под задачу и динамическое переключение между полным, сжатым и поисковым режимами в ходе одного диалога.