Библиотека · Память и контекст: чтобы агент не терял нить

Управление контекстом — продвинутые техники

Строитель55 минОбновлено: октябрь 2026
17 из 105 в библиотеке

Модуль: 9. Продвинутые возможности | Время: ~30 мин теории + 25 мин практики

Суть урока

Контекстное окно (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 — как приносить на встречу все папки из шкафа вместо одного листа с повесткой. Lean CLAUDE.md — повестка: «Архитектура: смотри папку A, задачи: смотри папку B». Нужна папка — откроешь.

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: Делегирование суб-агентам

🎨 Образ: Суб-агент как исследователь-помощник. Ты читаешь 50 книг или нанимаешь помощника? Он читает, делает конспект на 1 страницу — тебе нужна только эта страница. Его рабочий стол засыпан книгами, твой — чист.

Суб-агент работает в своём изолированном контексте (подробнее в уроке Суб-агенты). Это ключевое понимание. Исключение — fork: он наследует весь разговор, поэтому для экономии контекста используй обычного суб-агента.

Паттерн delegation:

Вместо того чтобы самому читать 50 файлов и держать всё в памяти:

Напиши в чат
Главный агент: "Суб-агент, исследуй папку src/payments/ 
и верни мне: список функций, их назначение, и 3 главных проблемы"

Суб-агент: [читает 20 файлов, анализирует, возвращает 500-строчное суммари]

Главный агент получает: компактное суммари (500 слов), 
а не 20 тяжёлых файлов

Суб-агент "сжигает" свой контекст на исследование. Главный агент получает только дистиллят. Это как иметь исследователя который читает за тебя и приносит только главное.

Когда делегировать:

  • Анализ большой папки или модуля
  • Поиск по всей кодовой базе
  • Генерация объёмного кода (суб-агент пишет, возвращает готовое)
  • Любая задача где результат компактнее процесса

Техника 3: /clear — свежий старт

🎨 Образ: /clear — как стереть доску в классе после урока. Следующая задача начинается на чистой доске, без мела от вчера. Агент не тащит за собой груз прошлых обсуждений.

Когда задача завершена — используй /clear чтобы очистить историю разговора. Следующая задача начинается с чистым контекстом.

Типичная ошибка: держать одну сессию открытой весь день, переходя от задачи к задаче. К вечеру агент несёт в памяти всю историю дня — медленно, дорого, менее точно.

Правильный ритм:

  1. Задача 1: отладить авторизацию → /clear
  2. Задача 2: написать тесты → /clear
  3. Задача 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 — Task Manager контекстного окна. Видишь что docs/architecture.md жрёт 12K токенов и больше не нужен? Как закрыть вкладку браузера которая замедляла компьютер.

Команда /context в Claude Code показывает разбивку того, что занимает место в текущем контексте, по категориям (системные инструкции, инструменты, память и CLAUDE.md, навыки, история разговора), и даёт подсказки по оптимизации. Формат вывода меняется от версии к версии; ниже иллюстрация, а не точная копия:

Напиши в чат
Контекст: 45 000 токенов из окна модели

Системные инструкции и инструменты: ...
Память и CLAUDE.md: ...
Навыки: ...
История разговора: ...

Смотри на это как на Task Manager компьютера. Видишь что документация архитектуры занимает много места и больше не нужна? Сожми разговор через /compact с указанием, что сохранить (например, /compact сохрани решения по авторизации), либо начни новую задачу с /clear. Сжать только часть разговора можно через /rewind: выбери сообщение и пункт Summarize from here.


Практика

Задание: Диагностика контекста реального проекта

  1. Открой любой свой проект или создай тестовый с 5-10 файлами
  2. Начни сессию Claude Code, прочитай несколько файлов
  3. Выполни /context — посмотри распределение токенов
  4. Найди самый "тяжёлый" компонент (файл или блок истории)
  5. Попрактикуй делегирование: попроси агента "вызвать суб-агента который прочитает папку X и вернёт суммари"
  6. После суммари — выполни /clear и начни новую задачу с чистым контекстом
  7. Сравни: насколько быстрее реагирует агент в начале свежей сессии 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, включая управление контекстом

Что дальше

→ GitHub и worktrees: параллельная разработка

Отметка хранится только в этом браузере и никуда не отправляется. Мой прогресс