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

> Контекст для агента - это не весь проект, а минимальный набор файлов, правил и сведений, нужных для следующего правильного решения.

Источник: https://vibeceh.ru/guides/kontekst-peredat-agentu-tolko-nuzhnye-fajly
Автор: Сергей Мазур · опубликовано 2026-08-21

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

![Карта контекста задачи с обязательными файлами](https://placehold.co/1200x500/e8f0eb/333333.png?text=Karta+konteksta+zadachi)

![Разделение постоянного и рабочего слоёв контекста](https://placehold.co/1200x500/f1e8df/333333.png?text=Postoyannye+pravila+i+rabochie+fajly)

![Указатели на файл, сущность и диапазон строк](https://placehold.co/1200x500/e6edf4/333333.png?text=Ukazateli+na+fajl%2C+suschnost+i+diapazon+strok)

![Проверка результата и границы рабочей области агента](https://placehold.co/1200x500/f0e9d8/333333.png?text=Proverka+rezultata)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

![Кот показывает карту проекта с четырьмя зонами контекста.](https://s3.regru.cloud/crossmark/statejnik/images/guides/kontekst-peredat-agentu-tolko-nuzhnye-fajly/kadr-1.webp)

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

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

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

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

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

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

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

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

Файловая граница ограничивает, какие пути агент может читать и изменять в sandbox. Сетевая граница определяет, к каким доменам ему разрешён доступ. Настройка обеих границ описана в [материале Anthropic о sandbox](https://www.anthropic.com/engineering/claude-code-sandboxing).

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

Одного сообщения «готово» недостаточно. Нужен результат проверки, по [протоколу проверки после каждой правки](/guides/claude-code-rabochij-protokol-proverki-rezultata-posle-kazhdoj-pravki).

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

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

```text
Задача:
Что должно измениться:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

![Сиба-ину поднимает лапу у чек-листа достаточного контекста.](https://s3.regru.cloud/crossmark/statejnik/images/guides/kontekst-peredat-agentu-tolko-nuzhnye-fajly/kadr-3.webp)

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

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

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

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

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

Для узкой разведки я использую sub-agent. Даю ему узкую роль, понятный результат и короткий возврат в основной контекст, как в [сценарии с read-only-субагентом](/guides/subagenty-odin-pomoshchnik-dlya-otdelnoy-zadachi-v-claude-code). В ответе прошу пути, факты, риски и следующий шаг. Общая оценка «всё нормально» не помогает главному агенту продолжить работу.

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

Большой контекст мешает, когда в него попадают лишние результаты чтения, повторно вставленные файлы, старые сообщения и постоянные правила, не связанные с задачей. В Claude Code чтение 2 171 строки CSS заняло 62 374 токена, а повторная загрузка изменённых файлов увеличила контекст примерно с 50 000 до 692 190 токенов за 923 сообщения.

В одном [issue Claude Code показал первые 2 171 строки CSS-файла и добавил в контекст 62 374 токена](https://github.com/anthropics/claude-code/issues/68231). После этого даже простой запрос `continue` начал падать с `ECONNRESET`. Для больших файлов сначала сужай область через `Grep`, а потом читай конкретный фрагмент.

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

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

В [другом случае контекст вырос примерно с 50 000 до 692 190 токенов за 923 сообщения](https://github.com/anthropics/claude-code/issues/43410). Автор связывает основной рост с накоплением `system-reminder` после изменений файлов, но отмечает, что вклад других источников контекста не исключён. Поэтому этот случай не следует считать описанием стабильного поведения всех версий Claude Code.

Корневой `CLAUDE.md` загружается в каждую сессию, поэтому нерелевантные инструкции увеличивают контекст, как объясняет [материал Anthropic](https://claude.com/blog/steering-claude-code-skills-hooks-rules-subagents-and-more). Держи постоянные правила короткими, а локальные инструкции не складывай в корневой файл без причины.

Сжатие истории помогает, но не превращает её в надёжную память. `/compact` заменяет старую историю кратким описанием. При сжатии могут потеряться детали, если они не были вынесены в устойчивую внешнюю заметку. В [одном issue ручной `/compact` завершался ошибкой лимита даже при отображаемом использовании около 20%](https://github.com/anthropics/claude-code/issues/63197).

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

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

После этого можно продолжить в новой сессии. Переноси состояние задачи, а также ключевые решения и результаты команд по [схеме передачи задачи между сессиями](/guides/claude-code-peredacha-zadachi-mezhdu-sessiyami-bez-poteri-konteksta).

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

Если агент загружает лишние файлы, останови текущую работу, сохрани состояние задачи во внешнем файле и оставь только пути, риски и следующий шаг. В issue Claude Code описан конкретный случай, когда `system-reminder` автоматически вставляли содержимое изменённого JSON. При сжатии могут потеряться детали, если они не были вынесены в устойчивую внешнюю заметку. В новой сессии передай компактную карту вместо всей истории.

![Мужчина закрывает лицо рядом с перечёркнутым полным JSON.](https://s3.regru.cloud/crossmark/statejnik/images/guides/kontekst-peredat-agentu-tolko-nuzhnye-fajly/kadr-2.webp)

Лишний контекст появляется и без явной команды `Read`. В [issue #4464](https://github.com/anthropics/claude-code/issues/4464) описан случай, когда системные напоминания автоматически вставляли полное содержимое изменённого JSON. Пользователь не просил читать файл, но он всё равно попадал в историю.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Покажи часть, связанную с решением: целевой файл, его зависимости, тесты и конфигурацию. Подробнее о слоях контекста в коде смотри в [материале о перепечатке изменений](/guides/kontekst-perepechatat-kod-i-ponyat-izmeneniya). Секреты, сгенерированные файлы, соседние проекты и нерелевантные каталоги исключи.

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

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

- [Effective context engineering for AI agents](https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents)
- [Claude Code Best Practices](https://code.claude.com/docs/en/best-practices)
- [How Anthropic teams use Claude Code](https://claude.com/blog/how-anthropic-teams-use-claude-code)
- [Making Claude Code more secure and autonomous with sandboxing](https://www.anthropic.com/engineering/claude-code-sandboxing)
- [System reminder content injection consuming excessive context tokens](https://github.com/anthropics/claude-code/issues/4464)
- [Read tool can inject huge partial file output into context](https://github.com/anthropics/claude-code/issues/68231)
- [File change system-reminders inject full file contents repeatedly](https://github.com/anthropics/claude-code/issues/43410)
- [Compaction fails with context window limit error](https://github.com/anthropics/claude-code/issues/63197)
- [Persistent Memory Across Context Compactions](https://github.com/anthropics/claude-code/issues/34556)
- [Steering Claude Code](https://claude.com/blog/steering-claude-code-skills-hooks-rules-subagents-and-more)
