Вайбцех

Контекст для ИИ-агента: 5 правил отбора нужных файлов в 2026

Опубликовано 10 мин чтенияБазовый
Автор по приложенному фото показывает карту контекста, а кот внизу удивлённо смотрит на лишние файлы.
Что узнаете
  • карта контекста задачи с обязательными файлами и файлами для поиска
  • шаблон цели, ограничений и проверки результата
  • правила передачи диапазонов строк и указателей вместо больших документов
  • аварийный план при лишней загрузке файлов, переполнении и сжатии контекста
Применить за 30 мин
Базовый
15просмотров
Что в инструкции
  1. Что такое значимый контекст для агента?
  2. Какие данные и файлы передать агенту?
  3. Как собрать контекст проекта?
  4. Как описать контекст запроса?
  5. Как понять, что контекста уже достаточно?
  6. Почему большой контекст мешает?
  7. Что делать, если агент загружает лишние файлы?
  8. Вопросы и ответы

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

Карта контекста задачи с обязательными файлами Разделение постоянного и рабочего слоёв контекста Указатели на файл, сущность и диапазон строк Проверка результата и границы рабочей области агента

Что такое значимый контекст для агента?

Anthropic формулирует этот принцип так:

Хорошая работа с контекстом означает поиск самого маленького возможного набора информативных токенов» (перевод автора).

- Applied AI team Anthropic, Effective context engineering for AI agents

Слово «минимальный» здесь не означает короткий. Если для изменения формы нужны типы, API и тест, их нельзя выбрасывать ради экономии. Минимум означает отсутствие лишнего материала.

Для задачи полезна карта контекста. Я разделяю контекст на два слоя:

  • Постоянный слой. Правила проекта, команды сборки и тестирования, стиль кода, устройство окружения, ограничения.
  • Рабочий слой. Файлы, данные и решения только для текущей задачи.

Постоянный слой не должен превращаться в энциклопедию. Рабочий слой не должен превращаться в копию всего репозитория. Агенту нужны сведения для ближайшего решения. Само по себе увеличение объёма контекста не гарантирует пользы и может снижать фокус модели.

Какие данные и файлы передать агенту?

В CLAUDE.md Anthropic предлагает держать команды, ключевые файлы, стиль, правила тестирования, окружение и неожиданные ограничения. Это постоянные сведения. Их не надо заново вставлять в каждый запрос.

Тема контекста связана с практикой шире одного промпта. На практикуме по вайб-кодингу я показываю руками, как собирать карту задачи, разделять постоянные правила и рабочие файлы, а затем принимать результат по проверяемому критерию.

Для рабочей задачи собери такой набор:

  • цель изменения;
  • файл, который точно изменится;
  • связанные типы или схему данных;
  • API или функцию, через которую проходит изменение;
  • тесты и команду проверки;
  • конфигурацию, если она влияет на поведение;
  • ограничения: что нельзя менять и какой результат нельзя сломать.

Не прикладывай большой документ целиком, если задача касается одной таблицы или функции. Передай путь к файлу и укажи, что именно искать. Подойдут:

  • путь к каталогу;
  • имя функции или компонента;
  • строка поиска;
  • диапазон строк;
  • имя таблицы или поля;
  • ссылка на файл с правилами.

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

Практически я не использую фиксированное число файлов: состав зависит от задачи. Правка текста обычно требует одного целевого файла и правила стиля. Изменение формы может затронуть компонент, типы, API и тест.

Практикум «Старт»

Три дня живой практики: от идеи до работающего проекта по ссылке

2 000 ₽старт 5 августа, 18:00 МСК

Как собрать контекст проекта?

Кот показывает карту проекта с четырьмя зонами контекста.

Дальше я использую такую последовательность.

  1. Определи точку изменения.

    Запиши, что должно измениться и где пользователь увидит результат.

    Посмотри корневые правила проекта. Найди команду проверки и файл, который отвечает за нужное поведение.

  2. Собери обязательные пути.

    Добавь целевой файл, тесты, типы, API и конфигурацию, если они связаны с задачей.

    Не копируй содержимое заранее. Сначала передай пути и попроси агента подтвердить связи между ними.

  3. Оставь поиск на потом.

    Вынеси в отдельную зону похожие реализации, документацию и историю изменений.

    Эти материалы агент ищет только при необходимости. Они не должны попадать в каждый запрос автоматически.

  4. Задай запреты.

    Запиши каталоги, секреты, сгенерированные файлы и соседние части проекта, которые нельзя читать или менять.

    Файловая граница ограничивает, какие пути агент может читать и изменять в sandbox. Сетевая граница определяет, к каким доменам ему разрешён доступ. Настройка обеих границ описана в материале Anthropic о sandbox.

  5. Зафиксируй проверку.

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

    Одного сообщения «готово» недостаточно. Нужен результат проверки, по протоколу проверки после каждой правки.

Модель карты выглядит так:

Способ передачиКогда применятьРиск
Целиковый файлНебольшой файл, который нужен целикомЛишний шум в большом файле
Путь и диапазон строкНужен конкретный фрагментМожно пропустить зависимость вне диапазона
Имя сущности и поискСначала нужно найти реализациюПоиск может вернуть несколько совпадений
Задача:
Что должно измениться:

Постоянные правила:
- CLAUDE.md
- команды проверки
- ограничения проекта

Прочитать обязательно:
- путь к целевому файлу
- путь к тестам
- путь к типам или API
- путь к конфигурации

Найти по необходимости:
- связанные реализации
- документацию
- похожие компоненты
- историю изменений

Не читать и не менять:
- секреты
- соседние проекты
- сгенерированные файлы
- нерелевантные каталоги

Проверка:
- команда
- ожидаемый результат

Такой список лучше длинной инструкции на все случаи. Агент видит рабочую область, но не получает разрешение бесконтрольно ходить по проекту.

Как описать контекст запроса?

Стартовая просьба может выглядеть так:

Сначала разведка, потом план
Задача: изменить поведение формы регистрации.

Сначала найди релевантные файлы и объясни связи между ними:
- компонент формы;
- типы данных;
- API;
- тесты;
- конфигурация, если она влияет на поведение.

Составь план изменения и укажи:
- какие файлы нужно прочитать;
- какие файлы могут измениться;
- какие файлы менять нельзя;
- какой проверкой подтвердить готовность.

Код пока не меняй. Если сведений не хватает, сначала назови конкретный путь или факт, который нужно найти.

В хорошем запросе нет просьбы «сделай красиво» без критерия. Есть наблюдаемый результат: что должно появиться, сохраниться или перестать происходить.

Ограничения пиши отдельно. Например: не менять API, не трогать миграции, сохранить формат ответа, не переписывать соседние компоненты. Это не гарантирует идеальное поведение, но сужает пространство решений.

Первую проверку тоже задавай заранее. Агент должен знать, что делать после плана: открыть тест, выполнить команду, найти обработчик или проверить конкретный сценарий.

Как понять, что контекста уже достаточно?

Сиба-ину поднимает лапу у чек-листа достаточного контекста.

Проверь пять признаков:

  1. Агент может одним предложением повторить, что должно измениться.
  2. Агент называет файлы, которые нужно прочитать или изменить.
  3. Агент видит запреты и границы рабочей области.
  4. Агент знает, чем проверить готовность.
  5. Агент называет ближайшее действие вместо пересказа проекта.

Если одного признака нет, добавь недостающий указатель. Не отправляй весь диалог заново. Передай путь, имя функции, найденную строку или короткий результат поиска.

Материалы удобно разделить на три категории:

  • Обязательные. Без них решение может сломать задачу.
  • Проверочные. Нужны, чтобы подтвердить изменение.
  • По необходимости. Агент загружает их только после разведки.

Для узкой разведки я использую sub-agent. Даю ему узкую роль, понятный результат и короткий возврат в основной контекст, как в сценарии с read-only-субагентом. В ответе прошу пути, факты, риски и следующий шаг. Общая оценка «всё нормально» не помогает главному агенту продолжить работу.

Почему большой контекст мешает?

В одном issue Claude Code показал первые 2 171 строки CSS-файла и добавил в контекст 62 374 токена. После этого даже простой запрос continue начал падать с ECONNRESET. Для больших файлов сначала сужай область через Grep, а потом читай конкретный фрагмент.

bash
rg -n "название-функции|название-класса|уникальная-строка" path/to/project

Затем передай агенту найденный путь и диапазон строк. Это лучше, чем читать весь файл в надежде, что нужное место обнаружится само.

В другом случае контекст вырос примерно с 50 000 до 692 190 токенов за 923 сообщения. Автор связывает основной рост с накоплением system-reminder после изменений файлов, но отмечает, что вклад других источников контекста не исключён. Поэтому этот случай не следует считать описанием стабильного поведения всех версий Claude Code.

Корневой CLAUDE.md загружается в каждую сессию, поэтому нерелевантные инструкции увеличивают контекст, как объясняет материал Anthropic. Держи постоянные правила короткими, а локальные инструкции не складывай в корневой файл без причины.

Сжатие истории помогает, но не превращает её в надёжную память. /compact заменяет старую историю кратким описанием. При сжатии могут потеряться детали, если они не были вынесены в устойчивую внешнюю заметку. В одном issue ручной /compact завершался ошибкой лимита даже при отображаемом использовании около 20%.

Перед сжатием сохрани:

  1. текущую цель;
  2. изменённые файлы;
  3. решения и ограничения;
  4. известные риски;
  5. оставшиеся действия;
  6. команду проверки.

После этого можно продолжить в новой сессии. Переноси состояние задачи, а также ключевые решения и результаты команд по схеме передачи задачи между сессиями.

Практикум «Старт»

Три дня живой практики: от идеи до работающего проекта по ссылке

2 000 ₽старт 5 августа, 18:00 МСК

Что делать, если агент загружает лишние файлы?

Мужчина закрывает лицо рядом с перечёркнутым полным JSON.

Лишний контекст появляется и без явной команды Read. В issue #4464 описан случай, когда системные напоминания автоматически вставляли полное содержимое изменённого JSON. Пользователь не просил читать файл, но он всё равно попадал в историю.

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

Аварийная схема:

  1. Останови агента, если он начал менять нерелевантные файлы.
  2. Сохрани состояние задачи во внешнем файле.
  3. Запиши пути, диапазоны строк, факты, риски и следующий шаг.
  4. Начни новую сессию.
  5. Передай только карту и обязательные материалы.
  6. Проверь изменённые файлы отдельно.

Внешний файл хранит состояние задачи. /compact сжимает историю. Это разные действия. Сжатие не гарантирует сохранение всех деталей.

Для результата sub-agent используй короткий формат:

Файл:
Диапазон строк:
Факт:
Риск:
Следующий шаг:

Если в основной контекст возвращается только общая оценка, исследование придётся повторять. Путь и конкретный факт ценнее длинного журнала действий.

Вопросы и ответы

Вопросы и ответы

Что значит «дайте контекст»?

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

Как понять, что «дан контекст»?

Контекст дан, если агент может назвать цель, нужные файлы, границы работы, критерий готовности и ближайший шаг. Если один пункт пропущен, добавь конкретный указатель вместо повторной передачи всей истории диалога.

Какой контекст нужен задачам?

Для каждой задачи нужен свой набор. Обычно это целевой файл, связанные типы или API, тесты, конфигурация, ограничения и команда проверки. Фиксированного числа файлов фактура не даёт. Поисковый запрос «контекста задачах» встречается в статистике, но в нормальном тексте используй форму «контекст для задач».

Нужно ли передавать весь контекст документа?

Нет. Передай путь к документу и укажи нужную часть: раздел, таблицу, имя сущности, поисковую строку или диапазон строк. Весь документ нужен только тогда, когда без него нельзя понять задачу.

Какую информацию включить в контекст?

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

Какую часть контекста проекта показать агенту?

Покажи часть, связанную с решением: целевой файл, его зависимости, тесты и конфигурацию. Подробнее о слоях контекста в коде смотри в материале о перепечатке изменений. Секреты, сгенерированные файлы, соседние проекты и нерелевантные каталоги исключи.

Что входит в контекст выполнения?

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

Что делать, если мало контекста?

Попроси агента назвать конкретно, какого пути, факта или результата проверки не хватает. Добавь только это. Если диалог уже переполнен или после сжатия пропали решения, сохрани состояние и начни новую сессию.

Источники

Практикум «Старт»

Три дня живой практики: от идеи до работающего проекта по ссылке

2 000 ₽старт 5 августа, 18:00 МСК

Материал был полезен?
Сергей Мазур
Автор
Сергей Мазур
Основатель Вайбцеха

Собираю продукты с ИИ-агентами и рассказываю, как это делать без программиста.

Читайте также

Контекст в коде: как перепечатать изменения

Контекст в коде - это всё, что доступно программе или модели в конкретный момент работы. Разбираю его слои и показываю, как вручную переносить изменения от ИИ.

15 мин

Claude Code теряет контекст на третьем часу: 4 причины и что делать в 2026

Он не сломался и ты не «неправильно попросил»: посреди длинной сессии переписка сжимается в пересказ, и половина договорённостей исчезает. Разбираем, что съедает память и как удержать проект в файле, а не в чате.

21 мин

Хостинг для сайта из Claude: 3 сервиса для публикации HTML в сети

Готовый сайт от ИИ ещё не доступен посетителям, пока не опубликован по рабочей ссылке. Разбираем три способа размещения: GitHub Pages, Cloudflare Pages и Surge.

15 мин

MCP: как ужать контекст при 58 инструментах через локальный CLI

MCP подключает ИИ-агента к внешним данным и действиям. Показываю локальный сценарий через `mcptoon`, конфиг в JSON и проверку ошибок.

12 мин

Термины из инструкции