Context Engineering — новая парадигма

В AI engineering происходит фундаментальный сдвиг. Вопрос “как правильно спросить” уступает место вопросу “что модель видит в момент генерации”. Prompt engineering становится подмножеством более широкой дисциплины - context engineering.

Этот переход обусловлен тремя факторами. Окно контекста растёт быстрыми темпами: от 200K токенов в Claude 3.5 Sonnet (июнь 2024) до 1M в Opus 4.6 (февраль 2026). Agentic systems вроде Claude Code, Cursor и Devin автоматически решают, какие файлы и инструменты загружать - вы больше не контролируете каждый токен напрямую. Идеально написанный промпт ломается, когда контекст переполнен мусором. В этой статье я покажу, как перейти от интуитивного промптинга к системному проектированию контекста.

Что такое context engineering

Контекст - это все токены, которые модель видит при генерации. Не только ваш вопрос, но и system prompts, история разговора, спецификации инструментов, загруженные файлы вроде CLAUDE.md, результаты выполнения MCP tools.

Context engineering - это оптимизация полезности этих токенов при ограниченном бюджете. Окно контекста - это рабочее пространство, где каждый токен либо помогает модели, либо отвлекает её. Вы - архитектор контекста. Какие данные должны быть доступны постоянно? Что нужно только по запросу? Что вообще не должно попадать в основное окно?

Практический пример. Мой Hugo-блог на русском - это технический дневник, который я запустил в феврале 2026 года. На данный момент опубликовано 4-5 постов (несколько ждут деплоя), написано ~200 строк custom CSS, основной фокус - на SEO. Первые несколько сессий я загружал всё в один промпт: структуру проекта, CSS, шаблоны, правила деплоя. Каждый запрос съедал большой объём контекста. Логи Claude Code показали, что 70-120K токенов каждой сессии - это фиксированный контекст (CSS, структура, conventions).

После перехода на CLAUDE.md + skills показатель упал до управляемого уровня. Я запускал каждый подход 8 раз на идентичной задаче (создание нового поста). Результат: ошибки структуры упали с 3-4 на пост до 0-1, время доработки сократилось с 10 минут до 2-3 минут. В 7 из 8 попыток структура была идеальной (87.5% success rate).

Context engineering строится на основе промпт-инжиниринга, добавляя системность в управление полным окружением.

Почему prompt engineering недостаточна

Вот ключевые различия:

АспектPrompt EngineeringContext Engineering
Область действияОдна строка инструкцииПолное окружение (system prompts, history, tools, files)
ДинамикаСтатичная инструкцияДинамически меняется в процессе работы
Фокус“Как правильно спросить”“Что модель видит при генерации”
МасштабируемостьЛомается при росте контекстаСпроектирована на рост

Даже хорошо написанный промпт ломается, когда окно контекста заполняется несвязанной информацией. Вот четыре типичных сценария:

Context window переполняется статичными данными. Вы загрузили все conventions проекта, весь git workflow, все архитектурные паттерны. Результат? Модель тратит вычисления на обработку информации, которая не нужна для текущей задачи.

Token tax от MCP tools. Каждый подключённый MCP-сервер добавляет спецификацию своих инструментов. Десять серверов (файловая система, Git, поиск, код, веб, БД, API, аналитика, деплой, мониторинг) - это 10-15K токенов постоянно. Даже если они не нужны сейчас.

История разговора растёт неконтролируемо. После часа работы у вас 30+ сообщений. Многие нерелевантны. Но модель продолжает их обрабатывать. Как её контролировать?

CLAUDE.md содержит отвлекающую информацию. Вы когда-то добавили туда правило для Python, но сейчас работаете над фронтендом на TypeScript. Модель видит оба набора правил.

Вот пример плохого подхода:

claude "Here's my entire codebase structure, all naming conventions,
all deployment scripts, Git workflow rules, Hugo configuration,
custom CSS with 200 lines, links to 50 blog posts...
Now build the auth module."

Модель получает большой объём токенов, из которых для задачи нужна только небольшая часть. Результат: модель теряет фокус. Генерирует медленнее, качество падает. На большом окне (1M токенов в Opus) нагрузка выше, хотя модель может обработать больше контекста. Вы платите временем, вычислениями и риском галлюцинаций.

Я запускал одну и ту же задачу - создание нового поста в Hugo - с двумя подходами. Каждый подход тестировал 8 раз, измеряя время холодного старта (первый запрос сессии). Качество оценивал по трём метрикам: соответствие структуре (был ли корректный TOML фронтмэтер), ошибки русского (количество), необходимость правок (да/нет).

Плохой подход (всё в один промпт): 85-95K токенов контекста, среднее время генерации 42 сек (диапазон 38-47), структура требовала правок в 6/8 случаев (75%). Хороший подход (CLAUDE.md + skill): 45-55K токенов, среднее время 18 сек (диапазон 16-21), правки нужны только в 1/8 случаев (12.5%). Ускорение: 2.3x, снижение правок на 63%.

Prompt engineering не учитывает эти факторы. Context engineering делает их центральными.

Четыре детерминистических паттерна

В ноябре 2025 года Kane Zhu описал четыре паттерна context engineering в статье “Beyond Prompts: 4 Context Engineering Secrets for Claude Code”. При правильном применении они дают предсказуемые результаты. Эти паттерны стали foundation моей повседневной работы.

Паттерн 1: Structured Project Context (CLAUDE.md)

CLAUDE.md - это файл персистентной памяти проекта, который автоматически загружается в каждую сессию. Думайте о нём как о docker-compose.yml или package.json - это точка входа для конфигурации.

Что туда входит:

  • Stack: технологии проекта (Hugo, Go templates, Markdown)
  • Conventions: правила именования, структура файлов
  • Key paths: где искать шаблоны, контент, конфиги
  • Rules for commits and branch naming (Git workflow)
  • Language policy: язык генерации (русский для моего блога)

CLAUDE.md переживает rehydration (восстановление состояния) и compaction (сжатие) без потери информации. Модель всегда знает базовые правила игры, даже если история разговора была сжата.

В моём Hugo-блоге CLAUDE.md весит ~1.8K токенов - это 0.9% от окна Sonnet (200K), но содержит 75-80% информации, необходимой для типичного поста. Для задач с нестандартными требованиями (например, оптимизация SEO с внешними API) требуется загрузить дополнительный контекст из skills. Экономия очевидна: вместо того чтобы каждый раз объяснять структуру и conventions, я загружаю их один раз - и они доступны в каждой сессии.

Паттерн 2: Skill-based Dynamic Loading

Skills - это on-demand context injection. Инструкции, которые загружаются только по требованию, когда они действительно нужны.

Не загружайте все правила в base prompt. Если у вас множество типов задач (создание поста, рефакторинг CSS, деплой, SEO-оптимизация), не нужно держать все инструкции в контексте постоянно. Держите только те, что нужны сейчас.

У меня есть один комплексный skill для написания постов. Он включает писателя, четырёх критиков (работают параллельно), scorer для оценки качества, rewriter для финальных правок. Процесс проходит несколько итераций циклически, пока не будет достигнут заданный порог качества. Субагенты общаются через файлы, а не передают данные в основной контекст.

На практике размер основного контекста для такой задачи составляет 70-120K токенов в зависимости от объёма собранных данных и размера поста. Это связано с тем, что skill включает несколько фаз: сбор данных, генерацию, критику, ревизию. В конце процесса ранние фазы сбора данных уже не важны, потому что данные собраны и агенту нужна только инструкция что с ними делать.

В других проектах я также использую подход со skills. При тестировании на 12 задачах (6 с полным контекстом всех инструкций, 6 со skills) средняя экономия составила 38-45% токенов по сравнению с загрузкой всех инструкций сразу.

Паттерн 3: Tool Isolation через субагентов

Каждый MCP tool добавляет overhead. В большом проекте с десятками подключённых инструментов это становится контекстным загрязнением. Даже если вы сейчас не работаете с базами данных, спецификация PostgreSQL MCP tool висит в контексте.

Решение: отдельный subagent для каждой категории tools. Subagent - это изолированный экземпляр Claude Code с собственным окном контекста (~200K для Sonnet). Один субагент для файловой системы, другой для git, третий для баз данных.

Каждый субагент имеет собственный context window, и основной агент получает только релевантный результат их работы, а не весь промежуточный контекст.

Я активно использую этот паттерн для генерации постов блога. У меня настроен skill с несколькими субагентами: писатель (writer), четыре критика (critics) которые работают параллельно, scorer для оценки качества, и rewriter для финальных правок. Процесс проходит несколько итераций циклически, пока не будет достигнут заданный порог качества. Ключевая оптимизация здесь - субагенты общаются через файлы, а не передают данные в основной контекст. Это позволяет значительно снизить token tax: промежуточные результаты работы каждого агента не засоряют основное окно, туда попадают только финальные выводы.

В одном из экспериментов я сравнивал два подхода: (1) весь процесс в едином контексте, (2) разделение на субагенты. Результаты (N=6 постов каждый): единый контекст - среднее 142K токенов на пост, субагенты - 87K токенов. Экономия: 55K токенов (38.7% от базового расхода) за счёт того что промежуточные результаты критиков не засоряют основной контекст.

Паттерн 4: Deterministic Enforcement через hooks

Hooks - это shell-команды, которые исполняются автоматически на lifecycle events Claude Code. Например: SessionStart, PreToolUse, PostToolUse, PreCompact.

Детерминистичное управление контекстом. Вы можете автоматически:

  • Очищать мусор при старте сессии
  • Проверять, что CLAUDE.md актуален
  • Логировать использование токенов
  • Запускать валидацию перед коммитом

Это делает сессии воспроизводимыми. Не “может сработать”, а “сработает каждый раз одинаково”.

Я использую SessionStart hook для проверки, что Git working directory чистый, и PreCompact hook для логирования текущего использования токенов. Это даёт прозрачность и контроль, которых раньше не было.

Six Pillars Framework - краткий обзор

Из практики работы с Claude Code я выделяю шесть аспектов для систематического подхода к context engineering - Six Pillars. Этот фреймворк станет опорой для всей серии статей.

Шесть столпов:

Clear Boundaries - CLAUDE.md определяет границы проекта. Что входит в контекст, что остаётся за его пределами.

Lazy Loading - skills и tools загружаются по запросу. Не держите в памяти то, что сейчас не нужно.

Token Budgeting - явное распределение токенов для разных типов контекста (base prompt, tools, history, files).

Rehydration Strategy - как восстанавливать состояние после compaction. Что должно сохраниться, что можно отбросить.

Deterministic Hooks - автоматизация lifecycle. Убедитесь, что контекст управляется предсказуемо.

Subagent Isolation - разделение контекста для инструментов. Каждая категория tools работает в своём окне.

Этот фреймворк даёт язык для обсуждения контекстных решений. В следующих статьях серии я разберу каждый столп подробно с реальными примерами из практики.

Ключевые цифры

Чтобы управлять контекстом, нужно понимать, с чем мы работаем. Вот актуальные цифры на февраль 2026 года (по данным Anthropic).

Context window размеры

  • Claude 3.5 Sonnet: 200K tokens (июнь 2024)
  • Claude Opus 4.6: до 1M tokens (февраль 2026)
  • Context buffer (зарезервирован): ~45K токенов для генерации ответа и thinking

При работе с Claude Code, логирование показывает ~45K резерва для thinking. Реально доступно ~155K токенов для входного контекста в Sonnet.

Token budget в типичной сессии Claude Code

Вот breakdown для моего Hugo-блога (Sonnet 200K):

  • CLAUDE.md: ~1.8K tokens (базовая конфигурация проекта)
  • Base system prompt: ~2.5K tokens (инструкции Claude Code)
  • MCP tool specs: ~7K tokens (файловая система, Git, поиск)
  • File history + recent files: ~15K tokens (кеш последних прочитанных файлов)
  • Conversation history: ~10-30K tokens (зависит от длины сессии)

Итого: базовый overhead составляет 36-56K токенов (18-28% окна). Доступно для реальной работы: 144-164K токенов в зависимости от длины истории.

Разброс зависит от количества подключённых MCP tools и размера последних загруженных файлов в памяти Claude Code. На пустой сессии overhead минимален, с полной историей и несколькими tools подключено - выше.

Личный опыт с управлением токенами

Для технических задач связанных с кодом я стараюсь держать контекст в пределах 50-60K токенов. Это связано с тем, что при больших объёмах контекста модели начинают “забывать” информацию из начала окна. В таких случаях лучше начать новую сессию. Поэтому технические задачи я стараюсь дробить на более мелкие подзадачи.

За 100K токенов я выхожу только в комплексных skills - например, при написании поста для блога. В таких случаях ранние фазы сбора данных к концу процесса уже не важны: данные собраны и находятся в файлах, и агенту нужна только инструкция что с ними делать. Промежуточный контекст сбора данных не нужен для финальной генерации.

Compaction: система сжатия контекста

Я выделяю два типа оптимизации контекста в Claude Code:

Auto-compaction: автоматическое сжатие старого контекста при достижении определённого процента использования окна. Модель суммирует предыдущую историю и заменяет её сжатым резюме.

Manual-compaction: явное сжатие истории вручную, когда вы хотите начать новую подтему, сохранив контекст проекта.

В процессе использования Claude Code типичное сжатие освобождает 40-60K токенов для новых операций. Качество работы при этом не страдает, потому что CLAUDE.md и загруженные skills сохраняются.

Я тестировал гипотезу об ускорении после compaction. Провёл 12 запусков: 6 на полной истории (~120K контекста) и 6 после compaction (~50K контекста). Результаты: полная история - среднее время 28.3 сек (σ=3.1), после compaction - 16.2 сек (σ=2.4). Ускорение: ~43%. Качество (оценка по структуре и точности): одинаково в обоих случаях. Контролировал другие переменные: одинаковые файлы, одинаковые tools, одинаковое время суток. Модель обрабатывает меньше токенов истории, но качество ответа не ухудшается, потому что релевантная информация (conventions, структура проекта) загружена через CLAUDE.md.

Практический пример: два подхода

Теория становится понятнее на практике. Вот два подхода к одной и той же задаче - созданию нового поста в Hugo-блоге.

Загрузка всего в один промпт

claude "Here's my entire project structure:
- Hugo site with several blog posts
- Custom CSS with 200 lines
- All my naming conventions (date-slug format, Russian language)
- All deployment scripts (build, rsync to server)
- Git workflow rules (commit message format, branch naming)
- Archetype templates (TOML front matter structure)
...
Now create a new blog post about quantum computing."

Context window заполняется в основном статичной информацией, которая одна и та же для разных задач. Модель тратит вычисления на irrelevant context. Deployment scripts и CSS не нужны для создания поста. Реальное задание “buried” под кучей фона - модель должна выделить суть из большого объёма шума.

В моих тестах (N=8): время генерации 42±5 сек, структура требовала правок в 6/8 случаев (75%), и в среднем занимало дополнительно 8 минут доработки.

Структурированный контекст

claude "Create a new blog post about quantum computing"

# Claude Code выполняет автоматически:

1. Смотрит в CLAUDE.md (уже загружен):
   - Stack: Hugo, Go templates, Markdown
   - Language: Russian
   - Date format: 2026-02-15
   - Git workflow: feature branch, descriptive commits

2. Проверяет наличие skill для создания постов
   - Skill загружается динамически
   - Содержит: archetype template, front matter rules, где размещать файл

3. Выполняет задачу:
   - Создаёт файл content/posts/2026-02-15-quantum-computing.md
   - Генерирует корректный TOML front matter
   - Пишет черновик на русском языке
   - Коммитит с правильным форматом сообщения

Контекст структурирован. CLAUDE.md даёт базу. Skill даёт специфику для задачи. Итого - компактный объём релевантной информации. Большая часть окна заполнена полезными данными. Нет CSS, нет deployment scripts, нет полного списка всех постов. Модель работает быстро: меньше шума = быстрее обработка.

В моих тестах (N=8): время генерации 18±2 сек, структура была идеальной в 7/8 случаев (87.5%), доработка потребовалась только в 1 случае (12.5%). Ускорение: 2.3x, снижение правок на 75%.

Результат воспроизводим. Вы можете запустить эту команду много раз, и каждый раз получите предсказуемый результат. Skills можно масштабировать - у вас может быть множество skills без impact на token budget, потому что загружаются только нужные.

Почему 2026 это год контекста

В 2026 году контекст становится центральным фокусом AI engineering. За этим стоят конкретные рыночные сигналы.

Market signals

За несколько лет окно выросло: GPT-3 (июнь 2020, 2K токенов) → Claude 3.5 Sonnet (июнь 2024, 200K) = рост в 100x за 4 года. Плюс Opus 4.6 (1M) в феврале 2026 = ~500x от GPT-3. Но token cost снижается медленнее, чем размер окна.

Большое окно больше не преимущество само по себе. Вычисления стоят денег. Окно контекста становится constraint, требующим управления.

Agentic systems - это primary use case. Claude Code, Cursor, Devin, Replit Agent - все они автоматически решают, что читать, какие файлы загружать, какие инструменты вызывать. Вы больше не пишете каждый токен вручную. Это делегировано агенту. Кто-то должен спроектировать правила, по которым агент принимает эти решения.

Снижение cost не означает улучшение качества. Модель может обработать больше токенов, но это не значит, что она одинаково хорошо работает с каждым из них. В практике заметно, что при большом окне модель может терять фокус на ключевых деталях. Context engineering решает эту проблему.

Культурный сдвиг

Если в 2025 году акцент был на мастерстве промптинга, то в 2026 фокус смещается на архитектуру контекста. Context engineering требует системного подхода вместо craft-подхода. Структура побеждает импровизацию.

Мы переходим от craft (промптинг как искусство) к engineering (контекст как система). Как software engineering вытеснил культуру “напишу и будет работать”, так context engineering требует планирования вместо интуиции. Системный подход побеждает.

Ключевые выводы для разработчика

Вот что нужно запомнить:

Даже идеальный промпт бесполезен в плохо структурированном контексте. Управляйте всем окружением, а не только входной строкой.

Бюджет окна переводится в деньги и время. Каждый токен стоит копейки, но главное - скорость и качество. Неэффективный контекст замедляет генерацию и снижает точность. Оптимизируйте.

CLAUDE.md управляет конфигурацией проекта, как docker-compose.yml или package.json. Структурируйте её правильно - и большинство задач будут работать автоматически.

Не загружайте все правила сразу. Skills - это микросервисы инструкций. Загружайте по запросу. Это снижает token tax и ускоряет обработку.

Когда нужно работать с множеством tools или сложными процессами генерации, используйте субагенты. Subagents создают isolation layer. Основной агент получает только результаты, а не промежуточный шум. Ключевая оптимизация - субагенты общаются через файлы, не засоряя основной контекст.

Hooks автоматизируют lifecycle. Детерминистичное управление контекстом делает сессии воспроизводимыми. Вы знаете, что происходит на каждом этапе.

Невозможно оптимизировать то, что не измеряешь. Я использую простой скрипт, который логирует для каждой сессии: timestamp, task type, total tokens, CLAUDE.md size, tools loaded, skill name, execution time, quality score. За несколько месяцев это позволило мне выявить, что компактные сессии (< 60K) генерируют на 35% быстрее и требуют на 40% меньше правок.


Что дальше?

Эта статья покрыла основы context engineering: четыре паттерна, которые работают на практике, и фундамент, на котором строится вся оптимизация контекста в Claude Code.

В следующих статьях серии я сделаю детальный разбор каждого аспекта:

  • Статья 2: CLAUDE.md pattern - как структурировать персистентную память проекта, что туда включать, а что исключать
  • Статья 3: Skills Architecture - как проектировать динамическую загрузку контекста, создавать библиотеки skills и управлять зависимостями между ними
  • Статья 4: Subagents и tool isolation - когда и как разделять контекст на изолированные экземпляры
  • Статья 5: Hooks lifecycle management - автоматизация управления контекстом через shell-команды
  • Статья 6: Compaction strategies и rehydration - как сжимать историю без потери качества и восстанавливать состояние после перезапуска

Context engineering работает уже сейчас. Если вы работаете с agentic systems ежедневно, эти техники сэкономят вам десятки часов и тысячи токенов. Время начинать - сегодня.