Суть урока
Контекстное окно (context — текст видимый AI) — как оперативная память компьютера: всё что туда не влезло — недоступно агенту (агент — автономный исполнитель) прямо сейчас. Искусство работы с большими проектами — это искусство управлять тем, что находится в памяти в каждый момент времени.
Термины урока: context (контекст — текст видимый AI), token (токен — единица текста для AI), agent (агент — автономный исполнитель), prompt (промпт — запрос к AI), API (эй-пи-ай — интерфейс программирования).
Ключевые концепции
- Контекстное окно как ограниченный ресурс
- 5 техник управления контекстом
- Паттерн delegation: суб-агенты как изолированные рабочие пространства
- Семантический поиск по большой кодовой базе
Теория
Что такое контекстное окно
Размер контекстного окна (в токенах, единицах текста для AI) зависит от модели. На октябрь 2026 у Claude Opus 5.5, Sonnet 5.5 и Fable 5.1 окно в 1 млн токенов, у Haiku 4.5 — меньше. Актуальные цифры: Актуальное сейчас. Но даже миллион не бесконечен: большой реальный проект легко его заполнит, а каждый лишний токен стоит денег и добавляет шума:
- 100 файлов по 500 строк кода = ~300,000 токенов
- Добавь историю разговора (50 сообщений) = ещё ~20,000 токенов
- Добавь результаты инструментов (bash-вывод, grep-результаты) = ещё ~30,000 токенов
Итого: ~350,000 токенов. Для окна в 200 тысяч это переполнение, а для миллионного окна — уже треть, и сессия становится медленнее и дороже. Агент начинает "забывать" начало разговора или путаться в деталях. Когда окно подходит к пределу, Claude Code сжимает историю сам, но делает это по своему усмотрению; управлять сжатием лучше самому.
Признаки переполнения:
- Агент повторяет вопросы которые уже задавал
- Агент "не знает" о файлах которые читал 20 сообщений назад
- Ответы становятся менее точными
- Скорость снижается, стоимость растёт
Техника 1: Lean claude.md — минимальный контекстный файл
claude.md — это инструкции которые Claude Code читает при старте сессии. Начинающие пишут туда всё подряд: архитектуру, соглашения, историю проекта — и превращают его в монстра на 5000 слов.
Правильный подход: claude.md содержит только указатели, не содержимое.
# Проект: Invoice Automation ## Архитектура Смотри: docs/architecture.md ## API документация Смотри: docs/api-reference.md ## Текущие задачи Смотри: docs/current-sprint.md ## Соглашения по коду - Python 3.11+, типизация обязательна - Тесты через pytest, покрытие >80% - Форматирование: black + ruff
Когда агенту нужна архитектура — он читает docs/architecture.md. Когда не нужна — не читает, не засоряет контекст.
Правило: claude.md должен помещаться на один экран (документация Claude Code советует держать его в пределах 200 строк). Всё остальное — в отдельные файлы по требованию или в правила .claude/rules/. Файл создаётся командой /init. Кроме него Claude Code ведёт автоматическую память (auto memory): сам записывает выводы из твоих поправок между сессиями. Посмотреть и поправить её можно командой /memory.
Техника 2: Делегирование суб-агентам
Суб-агент работает в своём изолированном контексте (подробнее в уроке Суб-агенты). Это ключевое понимание. Исключение — fork: он наследует весь разговор, поэтому для экономии контекста используй обычного суб-агента.
Паттерн delegation:
Вместо того чтобы самому читать 50 файлов и держать всё в памяти:
Главный агент: "Суб-агент, исследуй папку src/payments/ и верни мне: список функций, их назначение, и 3 главных проблемы" Суб-агент: [читает 20 файлов, анализирует, возвращает 500-строчное суммари] Главный агент получает: компактное суммари (500 слов), а не 20 тяжёлых файлов
Суб-агент "сжигает" свой контекст на исследование. Главный агент получает только дистиллят. Это как иметь исследователя который читает за тебя и приносит только главное.
Когда делегировать:
- Анализ большой папки или модуля
- Поиск по всей кодовой базе
- Генерация объёмного кода (суб-агент пишет, возвращает готовое)
- Любая задача где результат компактнее процесса
Техника 3: /clear — свежий старт
Когда задача завершена — используй /clear чтобы очистить историю разговора. Следующая задача начинается с чистым контекстом.
Типичная ошибка: держать одну сессию открытой весь день, переходя от задачи к задаче. К вечеру агент несёт в памяти всю историю дня — медленно, дорого, менее точно.
Правильный ритм:
- Задача 1: отладить авторизацию →
/clear - Задача 2: написать тесты →
/clear - Задача 3: написать документацию →
/clear
Каждая задача — чистый контекст. Агент не тащит за собой груз предыдущих задач.
Когда НЕ делать /clear: если следующая задача зависит от решений принятых в текущей. Тогда лучше завершить обе задачи в одной сессии.
Техника 4: Временные файлы для передачи данных
Когда несколько агентов должны работать совместно — они обмениваются данными через файлы, не через контекст.
Пример воркфлоу:
Агент 1 (Researcher):
→ Анализирует конкурентов
→ Записывает в analysis/competitor-research.md
Агент 2 (Writer):
→ Читает analysis/competitor-research.md
→ Пишет статью на основе исследования
Агент 3 (SEO):
→ Читает article-draft.md
→ Оптимизирует под SEO
→ Записывает в article-final.mdКаждый агент работает независимо. Никто не держит в памяти работу предыдущего — только финальный результат.
Именование временных файлов:
_tmp/research-2026-10-04.md _tmp/draft-v1.md _tmp/seo-suggestions.md
Префикс _tmp/ и дата помогают понять что это промежуточные результаты. Добавь _tmp/ в .gitignore если не хочешь коммитить рабочие файлы.
Техника 5: Прогрессивная загрузка
Не читай всё сразу. Читай только то что нужно прямо сейчас.
Неправильно:
"Прочитай весь проект и найди где проблема с авторизацией"
Агент читает всё — засоряет контекст ненужными файлами.
Правильно:
"Какие файлы могут отвечать за авторизацию? Перечисли, не читай."
→ [Агент даёт список: auth.py, middleware.py, routes/users.py]
"Теперь прочитай только auth.py и найди проблему"
→ [Читает один файл, находит проблему]Прогрессивная загрузка: сначала карта, потом детали. Не наоборот.
Семантический поиск по большой кодовой базе
Когда проект большой — grep ищет по точному тексту. Семантический поиск ищет по смыслу.
Пример: ты ищешь "где обрабатываются ошибки оплаты". Grep найдёт строки с payment_error, PaymentException — только если знаешь точные слова. Семантический поиск найдёт весь код связанный с обработкой ошибок в оплате, даже если называется иначе.
Сам Claude Code по умолчанию ориентируется в проекте поиском по именам файлов и тексту (glob и grep): он подбирает несколько вариантов слов и читает найденное. Отдельного семантического индекса в документации нет. Если нужен поиск по смыслу или память между сессиями, подключают внешние инструменты, например claude-mem (проект сообщества) или MCP-серверы с индексом. Тяжёлый поиск удобно отдавать суб-агенту Explore: он читает много файлов в своём контексте и возвращает короткий итог.
Практический паттерн:
"Найди все места в коде где происходит что-то похожее на ретрай упавших запросов"
Агент подбирает разные формулировки и ищет по ним — находит паттерн retry даже если функции называются attempt_again, with_backoff, safe_execute.
Метрика: команда /context
Команда /context в Claude Code показывает разбивку того, что занимает место в текущем контексте, по категориям (системные инструкции, инструменты, память и CLAUDE.md, навыки, история разговора), и даёт подсказки по оптимизации. Формат вывода меняется от версии к версии; ниже иллюстрация, а не точная копия:
Контекст: 45 000 токенов из окна модели Системные инструкции и инструменты: ... Память и CLAUDE.md: ... Навыки: ... История разговора: ...
Смотри на это как на Task Manager компьютера. Видишь что документация архитектуры занимает много места и больше не нужна? Сожми разговор через /compact с указанием, что сохранить (например, /compact сохрани решения по авторизации), либо начни новую задачу с /clear. Сжать только часть разговора можно через /rewind: выбери сообщение и пункт Summarize from here.
Практика
Задание: Диагностика контекста реального проекта
- Открой любой свой проект или создай тестовый с 5-10 файлами
- Начни сессию Claude Code, прочитай несколько файлов
- Выполни
/context— посмотри распределение токенов - Найди самый "тяжёлый" компонент (файл или блок истории)
- Попрактикуй делегирование: попроси агента "вызвать суб-агента который прочитает папку X и вернёт суммари"
- После суммари — выполни
/clearи начни новую задачу с чистым контекстом - Сравни: насколько быстрее реагирует агент в начале свежей сессии vs конец долгой?
Команды управления контекстом — Cheat Sheet
| Команда | Что делает | Когда использовать |
|---|---|---|
/clear |
Очищает историю разговора, начинает чистую сессию | После завершения задачи, перед новой темой |
/compact |
Сжимает историю — агент суммаризирует контекст; можно добавить инструкцию, что сохранить | Когда контекст наполняется, но нужно сохранить контекст текущей задачи |
/context |
Показывает разбивку использования контекста по категориям | Диагностика: что занимает место? |
/usage |
Лимиты тарифа, стоимость и статистика (/cost — синоним) |
Контроль бюджета |
/memory |
Открывает файлы памяти и CLAUDE.md для просмотра и правки | Проверить, что Claude помнит о проекте |
CLAUDE.md |
Автоматически загружается при старте | Хранилище постоянных инструкций проекта |
| Суб-агент | Работает в изолированном контексте | Анализ большой папки, генерация объёмного кода |
Файлы _tmp/ |
Обмен данными между агентами | Когда несколько агентов работают конвейером |
Частые ошибки
1. Никогда не использовать /compact Если контекст переполняется — сессия деградирует. /compact сжимает историю, сохраняя суть. Claude Code умеет сжимать контекст и автоматически, но сам решает, что важно; ручной /compact с инструкцией держит под контролем главное. Используй его в длинных сессиях между этапами работы.
2. Загружать весь проект в контекст
❌ "Прочитай все файлы в src/ и найди проблему" ✅ "Какие файлы в src/ связаны с авторизацией? Перечисли, не читая."
Прогрессивная загрузка экономит тысячи токенов.
3. Одна бесконечная сессия на весь день К вечеру агент несёт в памяти всю историю дня. Правило: одна задача = одна сессия. /clear между задачами.
4. Огромный CLAUDE.md (больше ~200 строк) CLAUDE.md загружается КАЖДУЮ сессию. Если он 5000 слов — это 5000+ токенов сразу. Используй указатели: "Архитектура: см. docs/architecture.md".
5. Не использовать суб-агентов для тяжёлых задач Если нужно проанализировать 20 файлов — делегируй суб-агенту. Он "сожжёт" свой контекст и вернёт дистиллят.
Инструменты и ресурсы
/context— встроенная команда показа использования контекста/clear— очистка истории разговора/compact— сжатие истории с сохранением сутиclaude-mem(внешний repo) — система долгосрочной памяти через файлы- MCP filesystem — расширенный доступ к файловой системе
/memory— просмотр и правка автоматической памяти и CLAUDE.md- Суб-агенты — изолированные контексты для тяжёлых задач (см. урок Суб-агенты)
Ключевые выводы
Контекстное окно — ограниченный ресурс. Используй его на самое важное прямо сейчас. Суб-агент "сжигает" свой контекст, возвращает дистиллят — главный агент остаётся свежим. /clear после задачи — гигиена разработчика. Не тащи груз вчерашнего в сегодняшнее.
Связанные уроки
- Токены и контекст: базовое понимание что такое токены и как считается стоимость
- Context rot и 28 хаков: дополнительные техники эффективной работы с Claude Code, включая управление контекстом
Что дальше
Отметка хранится только в этом браузере и никуда не отправляется. Мой прогресс