Этот материал призван сформировать устойчивое понимание работы с контекстом в современных агентных интерфейсах. Он подойдёт тем, кто уже сталкивается с ограничениями в использовании LLM и хочет выйти за рамки простого написания промптов.
TL;DR. Промпт-инжиниринг в том виде, в котором он был популярен в 2025 году, уже мёртв. В современных агентных инструментах, таких как Claude Code, Codex и Cursor, ваш текст составляет всего ~0,03% контекста. Остальные 99,97% — это system prompt, CLAUDE.md, память, MCP, навыки, история и результаты инструментов. Эти компоненты созданы, чтобы эффективно управлять контекстом, но при неаккуратном использовании могут быстро съедать лимиты и увеличивать расходы.
Акт 1. 0,03% и 99,97%
Современная работа с LLM — это не про написание промптов, а про проектирование контекста. Именно 99,97% — это то, что на самом деле определяет поведение модели.
Good context engineering means finding the smallest possible set of high-signal tokens that maximize the likelihood of some desired outcome.
Ключевые слова — smallest, high-signal, maximize. Всё, что происходит в современных LLM, строится вокруг этих принципов.
Контекстное окно как поверхность внимания
Представьте контекстное окно как рабочий стол. Чем больше на нём мусора, тем сложнее найти нужное. Чем чище — тем эффективнее работа.
Внимание модели — конечный ресурс. Для каждого токена сумма весов softmax по всему контексту равна 1. Чем длиннее контекст, тем меньше средний вес на токен. При этом распределение неравномерное: начало и конец получают больше внимания, середина — меньше.
У длинного контекста есть две ключевые проблемы, которые действуют одновременно.
Context rot: внимание размывается
Чем больше случайных токенов в запросе, тем сложнее модели отвечать релевантно. Это приводит к:
- зацикливанию на уже обсуждённых темах
- потере деталей из начала диалога
- нарушению ранее установленных ограничений
- размытым и менее точным ответам
Reasoning shift: рассуждения сокращаются
Модели распределяют ресурсы между обработкой контекста и логическими рассуждениями. Чем больше контекста — тем меньше места остаётся на рассуждения.
Это проявляется в:
- сокращении промежуточных шагов — модель сразу переходит к выводу
- меньшем количестве самопроверок
- рассмотрении одной гипотезы вместо нескольких
- уверенных, но менее обоснованных ответах
Вы добавляете больше документов, чтобы повысить точность. Но в итоге модель рассуждает хуже, а ответы звучат увереннее. При этом вы не видите проблемы — снаружи всё выглядит нормально.
Контекст — главный рычаг управления вычислительными затратами
Меньше токенов — меньше вычислений, быстрее ответ, ниже стоимость, выше точность. Это не четыре разных преимущества, а одно и то же.
Поэтому не стоит писать в один чат всё подряд — о здоровье, работе, коде и личной жизни. И не нужно загружать в один проект кучу файлов с командой «прочитай всё».
Акт 2. Почему всё устроено именно так
Attention Is All You Need
В 2017 году исследователи из Google представили архитектуру Transformer. Именно она легла в основу всех современных LLM: GPT, Claude, Gemini, Llama, DeepSeek. Буква T в GPT — это и есть Transformer.
Что было до 2017 года
Доминировали рекуррентные нейросети (RNN). Они обрабатывали текст последовательно — слово за словом. После каждого слова обновлялось «скрытое состояние» — компактный вектор, в который сжималась вся история.
Что изменил Transformer
Ключевая идея — self-attention. Каждое слово одновременно «смотрит» на все остальные. Никакой последовательности — всё параллельно.
Этот механизм позволил достичь нынешнего уровня развития LLM. Но он же накладывает фундаментальное ограничение — квадратичную сложность по длине контекста.
Attention требует O(n²) операций: каждый из N токенов взаимодействует с каждым. На 1000 токенов — миллион операций, на миллион — триллион.
Поэтому увеличение контекста стоит не линейно, а квадратично. Современные оптимизации (Flash Attention, sliding window, sparse attention) экономят ресурсы, но квадратичную природу не отменяют.
Акт 3. Из чего состоит контекст
На генерацию каждого токена влияют два блока: pretrained data (веса модели) и context window (текущий контекст).
Pretrained data — это дистиллированное сжатие интернета на момент обучения. Туда входят язык, факты, рассуждения, характер модели. Мы не можем его изменить — он «заморожен».
Контекст — это то, что мы можем формировать при каждом запросе. Он состоит из нескольких слоёв.
Слои контекста
Слой 0 — Веса (Pretrained Data)
- Формируются при обучении (месяцы)
- Изменить нельзя
- Хранят: язык, факты, рассуждения, характер
- Аналог: образование и личность человека
Слои 1–6 — Контекстное окно
- Формируется при каждом запросе (миллисекунды)
- Можно редактировать
- Хранит: конкретную задачу, историю, файлы, инструменты
- Аналог: документы на рабочем столе
System prompt и определения инструментов задаются харнессом (например, Claude Code). Они занимают первые тысячи токенов ещё до вашего первого сообщения.
Остальное — в нашей зоне ответственности: CLAUDE.md, память, навыки, MCP-серверы, загрузка файлов, обрезка истории.
CLAUDE.md — карта проекта, а не справочник
Это первый файл, который Claude Code добавляет в контекст после system prompt. Главная ошибка — превращать его в «простыню всего, что нужно знать».
Он должен быть минималистичным и структурированным. Особенно важен блок «что не делать» — большинство ошибок агента возникают из-за отсутствия явных запретов.
Познавательная минутка: CLAUDE.md читает только Claude Code. Codex использует AGENTS.md, Gemini — GEMINI.md. Для кросс-платформенной совместимости нужны все три файла и механизм их синхронизации.
MEMORY.md — память между сессиями
Загружается вместе с CLAUDE.md. Это не просто выжимка диалога, а структурированный индекс с типами, именами и описаниями.
Четыре типа памяти:
- user — роль, опыт, предпочтения пользователя
- feedback — обратная связь: «не делай X», «продолжай делать Y». Самое ценное.
- project — дедлайны, архитектура, ограничения
- reference — ссылки на внешние системы: Notion, репозитории и т.д.
Доступен механизм AutoDream — экспериментальная фоновая консолидация памяти, похожая на REM-сон. Он запускается автоматически или вручную, ищет дубли, противоречия и объединяет связанное в саммари.