Context Engineering — 8 приёмов, после которых ваш AI-агент перестаёт тупить на ровном месте
Утром Claude Code пишет идеальный код. К обеду путает файлы и предлагает решения, которые вы уже отвергли два часа назад. Знакомо?
Первая мысль: модель деградировала, серверы перегружены, лимит близко. На самом деле виноват контекст. Не промпт и не модель.
TL;DR: По данным Anthropic, 70% ошибок production-агентов вызваны мусором в контексте, а не слабостью модели. 8 конкретных приёмов для Claude Code, Cursor и Copilot с числами из исследования Chroma на 18 моделях.
Prompt engineering → context engineering
Prompt engineering учит формулировать запрос. Context engineering учит управлять всем, что видит модель: системный промпт, загруженные файлы, описания инструментов, история разговора, результаты tool calls.
Собственные данные Anthropic (сентябрь 2025): 70% ошибок production-агентов — ошибки контекста. Когда 95% ввода собрано из файлов, схем инструментов и прошлых сообщений, идеальный промпт не спасёт, если сборка притащила мусор.
Chroma Research протестировали 18 LLM (Claude Opus 4, GPT-4.1, Gemini 2.5 Pro, Qwen 3). Точность падает до 30% при увеличении контекста с 300 до 113K токенов. Задачи те же самые, просто длиннее.
Чем больше скормите агенту, тем тупее он станет.
1. CLAUDE.md на диете
Каждый запрос к Claude Code начинается с «контекстного налога». По данным The Prompt Shelf, вот что загружается ДО вашего первого сообщения:
- Системный промпт Claude Code: 8 000–12 000 токенов
- Схемы инструментов: 4 000–6 000 токенов
- MCP-серверы: 1 000–3 000 токенов каждый
- Глобальный
~/.claude/CLAUDE.md: 500–2 000 токенов - Проектный
./CLAUDE.md: 1 000–5 000+ токенов
Итого до первого символа: 25 000–40 000 токенов. Пятая часть 200K-окна уходит на «фон» ещё до старта работы.
200-строчный CLAUDE.md стоит ~2 000 токенов. 500 строк — уже 5 000+. Что безопасно удалить:
Очевидные инструкции. «Пиши чистый код», «используй осмысленные переменные» — Claude делает это по умолчанию.
Раздутые преамбулы. You are an expert senior engineer with 15 years of experience in React, TypeScript and Node.js... → Expert TypeScript/React/Node.js. Production quality only. Минус ~50 токенов на каждом запросе.
Дублирующие запреты. «no var» + «no require» + «max 50 lines per function» → одна строка: TypeScript strict: const/let, import, explicit types, max 50 lines/fn.
Задачи для хуков. Форматирование Prettier, lint-проверки — перенесите в PostToolUse hook. Хук срабатывает всегда, а Claude может забыть на 15-й минуте сессии.
Что оставить: команды сборки/тестов (Claude не угадает npm run test:integration --watch) и контринтуитивные решения проекта (Supabase RLS, нестандартные триггеры). Цель: ядро под 100 строк (~800 токенов).
2. Ленивая загрузка через подкаталоги
Вместо одного гигантского файла:
./CLAUDE.md # Ядро: стек, критические правила, команды сборки ./src/api/CLAUDE.md # API-контракты и валидация ./src/app/CLAUDE.md # Фронтенд-конвенции ./src/lib/db/CLAUDE.md # Миграции и запросы
Claude Code загружает ближайший CLAUDE.md к файлу, с которым работает. Правила для src/app/ не грузятся, когда агент правит миграции в src/lib/db/. По данным The Prompt Shelf: экономия 40–70% контекста на задачу.
В Cursor аналог: .cursor/rules/*.mdc с типом «Apply to Specific Files». Правила активируются по glob-паттерну, только когда агент открывает подходящий файл. В Copilot: .github/instructions/NAME.instructions.md с path-specific правилами.
3. Критичное — в начало или конец
Исследование «Lost in the Middle» показало: модели лучше всего обрабатывают начало и конец контекста. Середина — слепая зона. Chroma подтвердили на всех 18 моделях.
Ещё один факт из того же исследования: перемешанные тексты дали лучшие результаты, чем логически организованные. Структурированный контекст создаёт паттерны, в которых модель теряет нужную «иглу».
Для кодинга это значит: файл на 500 строк с критичной функцией на строке 250 — плохой контекст. Read src/auth/service.ts:45-80 лучше, чем целый файл.
4. /compact с фокусом
/compact в Claude Code сжимает историю на 50–70%. Но голый /compact работает как рулетка: агент сам решит, что оставить. /compact Focus on the auth fix and Supabase config decisions — конкретнее и надёжнее.
Когда /clear лучше /compact:
- Переключаетесь на несвязанную задачу
- Дважды подряд не смогли исправить одну ошибку
- После сессии, где обсудили 5 тем одновременно
- Когда агент заметно деградирует
Перед любой очисткой запишите решения в файлы. Комментарий в коде или обновление CLAUDE.md. Иначе после /clear агент забудет всё и предложит то, что вы отвергли час назад.
5. Субагенты для чистого контекста
Claude Code позволяет делегировать задачи через инструмент Agent. Субагент работает в своём контексте и возвращает результат, не засоряя родительское окно.
Без субагента: «Найди все файлы с deprecated API, прочитай каждый, составь список». Агент читает 40 файлов, контекст забит, следующая задача страдает.
С субагентом: «Запусти агент: найди deprecated API и верни список путей с номерами строк». Субагент работает в своём окне, родительский контекст остаётся чистым.
Официальный гайд Anthropic по субагентам (7 апреля 2026) рекомендует делегировать, когда задача требует чтения множества файлов, но нужен только краткий ответ. Особенно полезно для разведки в незнакомом коде.
6. Структура файлов под навигацию агента
Feature-driven (лучше для агента):
src/
auth/
auth-service.ts
auth-service.test.ts
billing/
billing-service.ts
billing-service.test.ts
Layer-driven (хуже):
src/ models/ controllers/ services/ tests/
В feature-driven агент читает одну папку и видит всё: сервис и тесты рядом. В layer-driven ему приходится прыгать между 4 директориями, загружая лишние файлы.
Семантические имена тоже имеют значение. user-authentication-service.ts позволяет агенту выбрать нужный файл по одному имени. uas.ts заставит читать содержимое, тратя токены впустую.
7. Целевые промпты
Размытый: «Почини баг с логином.»
Целевой: «Форма логина на /auth/login возвращает 401 с валидными credentials после коммита abc123. Проверь src/auth/auth-service.ts и конфиг Supabase auth.»
Первый вариант заставит агента grep'ить весь проект. Второй — сразу открыть два нужных файла. По данным Chroma, агенты с фокусированным контекстом стабильно превосходят агентов с полным контекстом. Модель не имеет значения.
8. Оптимальная загрузка — менее 40%
По данным исследования на dev.to, агенты работают лучше, используя менее 40% контекстного окна. Бюджет для кодинг-задачи:
- Системный промпт + инструменты: 15–20%
- Файлы проекта: 30–40%
- История разговора: 15–20%
- Запас на ответ: 15–20% (никогда не жертвуйте этим)
Если задача требует больше — дробите через субагенты.
Подводные камни
Compact теряет решения. /compact Focus on code changes отбросит контекст архитектурных обсуждений из начала сессии. Вы потратили 20 минут на выбор подхода, а после compact агент предлагает вариант, который вы уже отвергли. Фиксируйте решения в файлах до compact.
Устаревший CLAUDE.md хуже отсутствующего. Исследование на dev.to показало: устаревшие контекстные файлы снижают точность и увеличивают расход на 20%+. CLAUDE.md с «используем Redux» при уже мигрированном Zustand — гарантия конфликтов.
MCP-серверы — тихий пожиратель. Каждый MCP-сервер сбрасывает описания и схемы в контекст. По наблюдениям paolino.me, это «главный offender»: токены, которые вы не писали и не оптимизировали. Пять серверов — 5 000–15 000 токенов фонового шума. Отключайте неиспользуемые.
Opus 4 молчит, когда не уверен. Chroma зафиксировали: Claude Opus 4 имеет 2.89% отказов в зашумлённом контексте. Вместо галлюцинации он просто не отвечает. GPT-модели в тех же условиях уверенно выдают неправильный ответ. Зашумлённый контекст, пустой вывод, и вы думаете, что сломалось соединение.
Красиво ≠ эффективно. Chroma показали на 18 моделях: перемешанный контекст работает лучше аккуратно организованного. Если вы потратили час на «идеальную» структуру инструкций с секциями и подзаголовками, она может работать хуже плоского списка правил.
Вердикт
Из 8 приёмов максимальный эффект дают два: диета CLAUDE.md (мгновенная экономия 2 000–4 000 токенов на каждом запросе) и субагенты для изоляции контекста (чистое окно даже на больших задачах). Целевые промпты и /compact с фокусом на третьем месте, но с меньшим абсолютным эффектом.
Остальные приёмы дают по 5–15% каждый, но складываются на длинных сессиях. Anthropic говорят о 70% ошибок из-за контекста, Chroma фиксируют 30% падение точности от длины. Если AI-агент тупеет к обеду — проблема почти наверняка в контексте.
Как попробовать
- Измерьте CLAUDE.md. Посчитайте строки: больше 300 — пора резать. Удалите очевидные инструкции, объедините дубли
- Вынесите правила в подкаталоги. Отдельный
CLAUDE.mdдля фронтенда, API, базы данных. Подробный гайд по структуре - Используйте
/compactс фокусом после каждого завершённого этапа:/compact Focus on [что сохранить] - Делегируйте разведку субагентам: «Запусти агент: найди все TODO и верни список». Когда делегировать
- Отключите MCP-серверы, которые не нужны для текущей задачи