В 2026 полезно мыслить контекст не как один большой prompt, а как набор шести рабочих слоёв: instructions, retrieval, conversation state, durable memory, tool results и output constraints. Именно из этих блоков обычно собирается input для LLM-приложения.
Важно: эти компоненты не равны по ценности. Одни задают рамку поведения, другие приносят факты, третьи держат continuity, четвёртые обеспечивают machine-readable output. Хороший Context Engineering начинается не с вопроса “что ещё добавить в prompt”, а с вопроса какой слой реально нужен для этой задачи.
Instructions — это system prompt, policy blocks, guardrails и output-level указания. Они отвечают за то, как модель должна себя вести.
Сюда обычно входят:
Этот слой чаще всего:
Retrieval нужен тогда, когда модель должна опираться на ваши внешние знания, а не только на pretraining.
Типичные источники:
Практически retrieval отвечает за два вопроса:
Ключевая мысль: retrieval полезен не количеством найденных chunks, а их relevance contribution.
Conversation state — это рабочее состояние текущего диалога. Не “вся история навсегда”, а то, что нужно модели прямо сейчас для continuity.
Обычно сюда входят:
Если история длинная, healthy pattern почти всегда такой:
Durable memory хранит факты, которые живут дольше одной сессии.
Примеры:
Memory отличается от conversation state так:
| Слой | Что хранит |
|---|---|
| Conversation state | что происходит в этой сессии прямо сейчас |
| Durable memory | что стоит помнить между сессиями |
Если смешать их в один слой, вы быстро получите либо перегруженный context, либо потерю continuity.
Tool results — это live data, полученные от систем во время выполнения: API, database, search, calculators, workflow tools.
Они отличаются от retrieval тем, что:
Типовые примеры:
Output constraints — это JSON schema, structured outputs, strict tool arguments, UI contracts и другие формальные ограничения на то, в каком виде модель должна вернуть результат.
Этот слой часто недооценивают, хотя он критичен для:
Без него модель может “понять задачу правильно”, но вернуть ответ в форме, которую приложение не сможет использовать.
Runtime metadata никуда не исчезли. Просто в зрелой taxonomy их полезнее считать не отдельным огромным компонентом, а вспомогательным атрибутом внутри других слоёв:
Это делает контекст чище и помогает не создавать искусственный “седьмой слой”, который на деле редко является главным носителем смысла.
Обычно здоровая последовательность такая:
Это не универсальные проценты, а mental model: разные слои выполняют разные функции, и у каждого должен быть собственный budget и priority.