Context Window Budgeting в 2026: budget lanes, output reserve, token counting, truncation и compaction для LLM-приложений.
Context Window Budgeting в 2026 полезно понимать не как “таблицу лимитов моделей”, а как распределение ограниченного input budget между слоями контекста. Даже если модель поддерживает большое окно, это не отменяет economics, latency и риск lost-in-the-middle.
Именно поэтому главный вопрос звучит не “сколько токенов держит модель”, а какие токены действительно заслуживают места в текущем вызове.
Контекстное окно похоже на багаж в ручной клади. Формально чемодан может быть большим, но если вы заполнили его случайными вещами, нужные предметы либо не поместятся, либо потеряются внутри. Budgeting решает, что взять обязательно, а что сжать или оставить дома.
Когда budget exceeded, контекст не должен ломаться хаотично.
Healthy priority часто выглядит так:
instructions и output reserve защищены;
свежий tool result и последние critical turns защищены;
retrieval режется по relevance;
memory режется мягко;
старый history tail удаляется или compact-ится.
Обрезать “последние N символов” всего assembled prompt почти всегда неправильно. Так вы рискуете удалить и важный state, и часть schema, и критичный tool result без какой-либо логики.
from dataclasses import dataclass
@dataclass
class Budget:
instructions: int
retrieval: int
state: int
memory: int
tools: int
output_reserve: int
SUPPORT_BUDGET = Budget(
instructions=2_000,
retrieval=8_000,
state=3_000,
memory=1_000,
tools=2_000,
output_reserve=3_000,
)