Skip to main content

Переполнение и адаптивное сжатие контекстного окна

Инженерные паттерны предотвращения фатальных сбоев при исчерпании лимита контекста: Rolling Summaries, свертка состояний и селективное вытеснение устаревшей истории.

1. Обзор концепции и системная проблема

В длительных инженерных проектах агент может работать часами: читать файлы, запускать тесты, получать логи, исправлять ошибки. Рано или поздно даже окно на 200 000 токенов заполняется:

  • Наивный подход: просто обрезать (Truncate) первые сообщения. Но вместе с ними исчезает первичная инструкция пользователя, и агент внезапно "забывает", какую именно задачу он решает.
  • Другой наивный подход: остановить работу и сообщить об ошибке, заставляя пользователя вручную пересказывать все сначала.

Context Window Compaction — это техника непрерывного сжатия истории диалога на лету, которая позволяет агенту вести бесконечные рабочие сессии без падения с ошибкой переполнения и без потери начальных целей.

2. Архитектурная таксономия и ментальная модель

┌─────────────────────────────────────────────────────────────┐
│                 CONTEXT COMPACTION LIFECYCLE                │
├─────────────────────────────────────────────────────────────┤
│ 1. BUFFER MONITORING (Total Tokens: 165k / 200k Limit)      │
│    • Порог срабатывания: 80% заполнения окна                 │
├─────────────────────────────────────────────────────────────┤
│                          │                                  │
│                          ▼ Trigger Compaction Worker        │
├─────────────────────────────────────────────────────────────┤
│ 2. PARTITIONING & ROLLING SUMMARIZATION                     │
│    ┌─────────────────────────────────────────────────────┐  │
│    │ [PINNED] System Prompt & Core Rules (Immutable)     │  │
│    ├─────────────────────────────────────────────────────┤  │
│    │ [SLICED] Old Turns 1–30 ➔ Distilled into Executive  │  │
│    │          State: "Auth configured, DB migrated"      │  │
│    ├─────────────────────────────────────────────────────┤  │
│    │ [KEPT RAW] Fresh Turns 31–40 (Exact detail for dev) │  │
│    └─────────────────────────────────────────────────────┘  │
├─────────────────────────────────────────────────────────────┤
│ 3. CONTEXT RE-ASSEMBLY: New Size = 45k tokens (Fresh room!) │
└─────────────────────────────────────────────────────────────┘

3. Практические инженерные сценарии в продакшене

01. Бесконечная сессия вайбкодинга в агентском IDE

Разработчик работает в Cursor или Claude Code уже шестой час подряд. Система каждые 40 сообщений незаметно сворачивает старые логи терминала в аккуратный markdown-блок <previous_session_summary>, сохраняя сессию быстрой, дешевой и отзывчивой.

02. Сохранение артефактов решений (Architectural Decision Records)

Во время сжатия агент отдельно сохраняет отклоненные гипотезы: "Мы пытались использовать библиотеку X, но она несовместима с Windows". Это гарантирует, что через 100 сообщений агент не попытается установить библиотеку X снова.

4. Подводные камни, типовые ошибки и безопасность

  • Потеря тонких деталей (Information Loss): Модель самаризации может решить, что конкретный номер порта или название редкого поля не важны, и удалить их из конспекта. Важные параметры должны сохраняться в выделенных полях JSON State, а не в свободном тексте.
  • Дрейф цели при многоразовом сжатии: Если сессия длится неделями и конспект конспектируется в десятый раз, возникает эффект испорченного телефона. Первичный запрос пользователя (User Intent) всегда должен оставаться неизменным в корне промпта.

5. Стратегический вывод для инженера 2026 года

Сжатие контекста — это ключ к созданию автономных систем длительного действия (Long-Running Agents). Умение проектировать алгоритмы ротации и подведения итогов памяти позволяет создавать агентов, которые могут работать над проектом неделями без потери фокуса.

/ Частые вопросыSchema.org FAQPage

FAQ: Переполнение и адаптивное сжатие контекстного окна

API провайдера возвращает ошибку 400 (`context_length_exceeded`) и полностью прекращает обработку. Если в приложении нет логики сжатия, сессия пользователя навсегда ломается, заставляя его начинать чат с нуля.
/ Внутренняя перелинковка
Все термины
Промпты и RAG

Контекстное Окно (Context Window)

Максимальный рабочий объем токенов, который языковая модель может одновременно удерживать в механизме Self-Attention и памяти KV Cache во время вычисления одного инференс-запроса.

Читать термин
Промпты и RAG

Деградация контекста (Context Rot & Attention Decay)

Системное снижение точности, следования инструкциям и логической согласованности LLM по мере накопления в рабочем окне диалогового шума, устаревших черновиков кода и выводов компилятора.

Читать термин
Агенты и MCP

Память Агента

Комплексная подсистема хранения, фильтрации и выборки данных, которая преобразует stateless-вызов LLM в stateful-систему: от краткосрочного scratchpad-буфера до мультисессионного хранилища знаний.

Читать термин
Промпты и RAG

Эпизодическая и Семантическая Память Агента

Архитектурное разделение памяти ИИ-агента на долгосрочную фактическую базу (Semantic Memory) и хронологический журнал событий конкретных рабочих сессий (Episodic Memory).

Читать термин