Перейти к тексту

Claude Code: работа с coding-агентом4. Контекст под контролем

Как агент изучает кодовую базу

Засчитывается, когда отвечены все вопросы квиза

Вы пришли в новый проект, и коллега спрашивает: «Ну, на чём тут всё написано?» Вы открываете README, package.json, пару папок — и через десять минут отвечаете. Агент в начале каждой session находится ровно в вашем положении. Только делает это каждый раз заново.

Зачем это нужно

Агент stateless: между session он ничего не помнит о вашем коде. Всё, что ему нужно для задачи, он должен найти сам, и от качества этого поиска зависит результат. Не нашёл нужный модуль — напишет свой, рядом с существующим.

Поэтому полезно знать, с чем агент стартует, как он ищет и во что это обходится вашему context window.

Как это устроено

С чем агент стартует. Claude Code в начале разговора даёт модели git status snapshot: текущую ветку, основную ветку, вывод git status и последние коммиты. Плюс CLAUDE.md, если он есть, и то, что вы видели в /context. Дерева файлов в этом списке нет — что лежит в репозитории, агент узнаёт инструментами: ищет файлы, читает README и манифесты, открывает исходники.

Два способа исследовать. Агент может читать файлы сам — тогда всё прочитанное оседает в основном context window. Или может отдать исследование subagent-у. У subagent-а своё, отдельное окно: он читает сколько нужно и возвращает только сводку. Большие чтения остаются в его контексте, а не в вашем.

Для этого в Claude Code есть встроенный subagent Explore — быстрый, только для чтения: инструменты Write и Edit ему запрещены. Вызывая его, Claude выбирает глубину: quick для точечного поиска, medium для обзора, very thorough для полного анализа. Explore стартует без ваших CLAUDE.md и без git status snapshot, чтобы исследование было быстрым и дешёвым.

Основной агент раздаёт области репозитория subagent-ам и собирает их сводки:

Subagent-ы читают код, основной агент получает только сводкиОсновной агент отправляет три subagent-а Explore в разные части репозитория. Каждый читает файлы в своём context window и возвращает основному агенту короткую сводку с путями к ключевым файлам. В окне основного агента оказываются только сводки.ОсновнойагентExplore: слойданныхExplore: сервисыExplore:маршруты и UIСводки спутями кфайлам

Как поступит агент, предсказать нельзя: модель недетерминирована, и на одинаковый запрос она иногда читает сама, а иногда зовёт subagent-ов. Если вам важен способ, скажите прямо — документация советует формулировку вроде «use subagents to investigate X».

Практика

В репозитории Cadence начните новую session и спросите:

Tell me what the tech stack of this project is and what its intended purpose is.

Пока агент работает, нажмите Ctrl+O — откроется transcript viewer с подробным ходом работы: какие файлы он прочитал и какие команды запускал. Обычно первый проход поверхностный: README, package.json, пара соседних файлов. Посмотрите на status line.

Теперь попросите глубже и добавьте в конец два слова:

Give me an in-depth overview of the modules of this app and read the source code to explain them. Use subagents.

Сравните, на сколько вырос контекст основной session, с объёмом прочитанного кода. Обратите внимание на сводки, которые возвращают subagent-ы: в них есть пути к ключевым файлам, чтобы основной агент мог открыть нужный файл позже.

Подводные камни

  • Subagent-ы не бесплатны. Каждый отправляет свои запросы, и они считаются в те же лимиты использования, что и основной разговор. Ваше окно остаётся чистым, но общий расход растёт.
  • Explore не знает ваших правил. Он стартует без CLAUDE.md, поэтому соглашения проекта из этого файла в его сводку не попадут. Если они важны для поиска, назовите их в запросе.
  • Subagent не видит ваш разговор. Он стартует с чистым окном и получает только поручение, которое составит Claude. Если важна деталь из обсуждения, проговорите её в запросе.

Вывод: исследование — основа любой задачи агента; для широкого обзора просите subagent-ов, чтобы код читали они, а в вашем окне оставались только выводы.

Проверь себя

Источники

Текст подготовлен с помощью LLM и может содержать неточности.