Компакция контекста: как ИИ-агенты сжимают историю диалога
Длинные сессии с ИИ-агентами упираются в лимит контекстного окна. Компакция — способ сжать историю разговора, не потеряв суть. Разбираем, как это устроено в Claude Code, Cursor и других инструментах.

Осенью 2024 года Anthropic добавила в Claude Code команду /compact, а к 2025 году автоматическое сжатие истории стало штатной функцией: когда диалог подходит к пределу окна, агент сам сворачивает старые сообщения в краткое резюме и продолжает работу. Похожие механизмы есть у Cursor, Cline и агентских фреймворков вроде LangGraph. Причина у всех одна — контекстное окно не резиновое, а разговор с агентом за час работы над кодом легко перевалит за сотни тысяч токенов.
Компакция (context compaction) — это не магия, а инженерный компромисс между тем, чтобы помнить всё, и тем, чтобы вообще уместиться в лимит. И у этого компромисса есть цена: часть деталей теряется, а вместе с ними иногда и нить рассуждения.
Зачем вообще сжимать контекст
У любой языковой модели есть контекстное окно1 — максимум токенов, которые она видит за один запрос. У Claude Sonnet 4.5 и Opus 4.1 это 200 000 токенов в стандартном режиме (с бета-опцией расширения до 1 млн у Sonnet), у GPT-4.1 — до 1 млн, у Gemini 2.5 Pro — до 1 млн, с анонсированным расширением. Числа большие, но агент расходует их быстро: каждый вызов инструмента, каждый прочитанный файл, каждый лог ошибки складывается в историю.
Есть и второй фактор — деньги. Вы платите за токены на входе при каждом обращении к модели. Если история диалога 300 000 токенов, то каждый следующий шаг агента оплачивает эти 300 000 заново. Сжатие истории до 20 000 токенов прямо режет счёт за API.
Контекст — это не память, а оперативная нагрузка. Чем больше вы туда кладёте, тем дороже и медленнее каждый следующий шаг, и тем выше шанс, что модель потеряет важное среди второстепенного.
Как работает компакция
Базовая идея простая: когда история приближается к порогу (обычно 70–90% окна), агент берёт старые сообщения и просит модель — ту же или отдельную, более дешёвую — пересказать их коротко. Резюме заменяет исходные сообщения, и диалог продолжается с облегчённой историей.
На практике подходы отличаются деталями.
Суммаризация «в лоб»
Самый распространённый вариант. Весь ранний контекст (или его часть) сворачивается в текстовое резюме: что за задача, какие файлы правили, какие решения приняли, что осталось сделать. Свежие сообщения при этом обычно сохраняются целиком — именно они важны для следующего шага.
Скользящее окно
Агент держит только последние N сообщений, а всё старше просто отбрасывает. Дёшево и предсказуемо, но грубо: если ключевое решение было принято в начале сессии, оно исчезнет.
Гибрид с внешней памятью
Часть контекста выносится за пределы окна — в файл, векторную базу или структурированные заметки, и подтягивается обратно по мере надобности через RAG2. Claude Code, например, умеет писать заметки в файл CLAUDE.md и в отдельные файлы задач, чтобы не держать всё в активной сессии.
Сравнение подходов к управлению контекстом
| Подход | Что происходит со старым контекстом | Риск потери данных | Стоимость |
|---|---|---|---|
| Суммаризация | Сворачивается в текстовое резюме | Средний: детали теряются, суть остаётся | Один доп. вызов модели на сжатие |
| Скользящее окно | Отбрасывается целиком | Высокий: раннее решение исчезает без следа | Почти нулевая |
| Внешняя память + RAG | Выносится в файл или базу, подтягивается по запросу | Низкий, если поиск сработал; иначе нужное не найдётся | Инфраструктура поиска, эмбеддинги |
| Без сжатия | Всё остаётся в окне до упора | Нулевой до лимита, затем обрыв | Максимальная: платите за всю историю каждый шаг |
На практике серьёзные агенты комбинируют: свежие сообщения — как есть, средний слой — резюме, долгосрочные факты — во внешнем хранилище.
Что теряется при сжатии
Главная проблема компакции — модель сама решает, что важно, а что нет, и ошибается. Типичные потери:
- Точные значения. Резюме напишет «настроили таймаут», но забудет, что он был 30 секунд, а не 300.
- Отвергнутые варианты. Агент может заново предложить решение, которое вы уже отклонили десять сообщений назад — потому что причина отказа не попала в резюме.
- Тон и договорённости. «Не трогай файл конфигурации» легко теряется, если сжатие сочло это второстепенным.
Именно поэтому в Claude Code компакция по умолчанию оставляет недавние сообщения нетронутыми, а сжимает только раннюю часть. И поэтому же ручная команда /compact позволяет указать, на чём сфокусировать резюме, — вы подсказываете модели, что нельзя терять.
Кому это пригодится, а кому нет
Пригодится
- Разработчикам в долгих сессиях. Рефакторинг на несколько часов в Claude Code или Cursor без компакции упрётся в лимит и оборвётся. Сжатие даёт продолжать работу непрерывно.
- Тем, кто следит за счётом за API. Если вы строите агента на своём ключе, сжатие истории — прямой способ сократить расход входных токенов в разы.
- Авторам агентов и чат-ботов. Для многошаговых сценариев (обработка тикетов, длинные исследования) без управления контекстом вы либо разоритесь на токенах, либо упрётесь в окно.
Не пригодится или даже помешает
- Для коротких разовых запросов. Если сессия укладывается в окно с запасом, сжатие только добавит риск потерять деталь без всякой выгоды.
- Там, где важна дословная история. Юридический разбор, аудит логов, точная реконструкция диалога — здесь лучше держать полную историю и разбивать задачу на части, чем доверять резюме.
- Для задач с критичными числами. Финансовые расчёты, конфигурации, версии зависимостей — всё, где ошибка в одной цифре стоит дорого, плохо переживает автоматическое сжатие.
Как этим управлять на практике
- Выносите долгоживущие факты во внешний файл сами — в Claude Code это
CLAUDE.md, в других инструментах свои механизмы. Что записано в файл, то переживёт любую компакцию. - Если инструмент даёт ручную команду сжатия — используйте её осознанно перед сменой задачи, а не ждите автоматического порога посреди сложного шага.
- После автоматической компакции проверьте, что агент помнит ключевые ограничения — переспросите его о критичных деталях, прежде чем продолжать.
- Для критичных значений дублируйте их прямым текстом в свежем сообщении, а не полагайтесь, что они уцелели в резюме.
1 Контекстное окно — максимальное количество токенов (примерно 3–4 символа русского текста на токен), которые модель обрабатывает за один запрос, включая и ваш ввод, и историю, и ответ.
2 RAG (retrieval-augmented generation) — подход, при котором нужные фрагменты подтягиваются из внешнего хранилища по запросу и добавляются в контекст, вместо того чтобы держать всё в окне постоянно.
Prompt-инженер: Идеальные запросы для Midjourney, ChatGPT и других моделей.
Спросить за 15 ₽Источники: Anthropic — Claude Code documentation, Anthropic — Models overview (context windows)
Частые вопросы
Компакция происходит автоматически или её надо включать?
Потеряет ли агент важные детали после сжатия?
Сколько токенов остаётся после сжатия?
Экономит ли компакция деньги?
Чем компакция отличается от долгосрочной памяти агента?
Как убедиться, что важное решение не пропало при сжатии?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.