Long Context Management
Abstract
Большое context window — вместимость, а не гарантия внимания. Context management выбирает, организует и обновляет минимальный достаточный набор инструкций, состояния и evidence для текущего шага.
Что конкурирует за окно
- system и project instructions;
- определения tools и skills;
- сообщения и результаты tool calls;
- найденные документы;
- рабочее состояние и планы;
- требуемый запас для ответа модели.
Основные риски
- Noise: нерелевантные данные отвлекают от нужного evidence.
- Position sensitivity: качество может зависеть от позиции информации и конкретной модели.
- Stale state: в истории остаются отменённые решения.
- Compaction loss: сжатие теряет ограничения, причины решений или координаты источников.
- Context poisoning: недоверенный документ влияет на инструкции и действия.
- Cost and latency: длинный input увеличивает prefill и стоимость согласно тарифам провайдера.
Практическая стратегия
1. Разделяй типы контекста
Храни отдельно стабильные инструкции, состояние задачи, evidence и журналы. Это позволяет обновлять один слой без переписывания остальных.
2. Отбирай до запроса
Используй путь, metadata, keyword search или retrieval. Не отправляй всю базу только потому, что она помещается технически.
3. Сохраняй provenance
Каждый summary и extracted fact должен вести к исходному файлу, URL или диапазону строк. Иначе сжатие становится необратимой потерей доказательств.
4. Делай compaction как state transition
До сжатия зафиксируй:
- текущую цель и scope;
- запреты и решения пользователя;
- уже выполненные изменения;
- открытые вопросы;
- критерий готовности;
- ссылки на полные артефакты.
5. Проверяй актуальность
При конфликте summary и первичного источника перечитай источник. Устаревшие сообщения не должны автоматически перевешивать свежую инструкцию.
Быстрый выбор
| Ситуация | Подход |
|---|---|
| Один длинный документ | структура заголовков + координаты цитат |
| Большая база | retrieval + reranking + source metadata |
| Длинная агентная сессия | внешнее состояние + контролируемая compaction |
| Аудит всей папки | пакетная обработка + проверка покрытия |
| Несколько независимых веток | отдельный контекст на worker, общий контракт результата |
Что измерять
- найдено ли нужное evidence;
- сохранены ли ограничения после compaction;
- присутствуют ли противоречащие друг другу версии состояния;
- поддерживаются ли цитаты исходниками;
- как меняются качество, latency и стоимость при увеличении контекста.
Тестируй на используемой модели и реальных документах: наблюдения одной старой модели нельзя превращать в универсальное правило для всех длинных контекстов.