# SubAgent: Search

## Назначение

Подагент Search — это лёгкий, только-на-чтение исследовательский агент. Направляйте его, когда нужно понять кодовую базу — найти, где что-то живёт, узнать, как компоненты сочетаются, или ответить на структурные вопросы, — не изменяя файлов. Он оптимизирован для множества маленьких чтений по множеству файлов и возвращает сжатое резюме, а не сырой вывод поиска.

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

## Когда использовать

- Нужно ответить на вопрос, требующий трёх и более различных поисков или чтений. Пример: «Как авторизация проводится от маршрута логина до хранилища сессий?»
- Цель неизвестна — вы ещё не знаете, на какой файл, модуль или символ смотреть.
- Нужен структурный обзор незнакомой области репо перед внесением изменений.
- Нужно перекрёстно сверить нескольких кандидатов (например, какой из нескольких похоже названных хелперов реально вызывается в продакшене).
- Нужно литературное резюме: «перечисли каждое место, где импортируется X, и категоризируй по месту вызова».

Не используйте Search, когда:

- Вы уже знаете точный файл и строку. Вызовите `Read` напрямую.
- Одного `Grep` или `Glob` достаточно. Запускайте напрямую; диспетчеризация подагента добавляет накладные расходы.
- Задача требует правки, запуска команд или любого побочного эффекта. Search по дизайну работает только на чтение.
- Нужен точный дословный вывод вызова инструмента. Подагенты резюмируют; они не проксируют сырые результаты.

## Уровни тщательности

Выберите уровень, соответствующий ставкам вопроса.

- `quick` — несколько прицельных поисков, ответ в меру возможностей. Используйте, когда нужен быстрый указатель (например, «где логика парсинга env-переменных?») и вы готовы итерировать, если ответ неполный.
- `medium` — по умолчанию. Несколько раундов поиска, перекрёстная проверка кандидатов и чтение наиболее релевантных файлов целиком. Используйте для типичных вопросов «помоги мне понять эту область».
- `very thorough` — исчерпывающее исследование. Подагент погонится за каждой правдоподобной зацепкой, прочитает окружающий контекст и дважды проверит находки перед резюмированием. Используйте, когда важна корректность (например, обзор безопасности, планирование миграции) или когда неполный ответ приведёт к переделке.

Более высокая тщательность стоит больше времени и токенов внутри подагента, но эти токены остаются внутри подагента — в основной агент возвращается только финальное резюме.

## Доступные инструменты

Search имеет доступ ко всем инструментам только-на-чтение, которые использует основной агент, и только к ним:

- `Read` — для чтения конкретных файлов, включая частичные диапазоны.
- `Grep` — для поиска по содержимому по дереву.
- `Glob` — для поиска файлов по паттерну имени.
- `Bash` в режиме только-на-чтение — для команд, инспектирующих состояние без мутации (например, `git log`, `git show`, `ls`, `wc`).
- `WebFetch` и `WebSearch` — для чтения внешней документации, когда нужен такой контекст.

Инструменты правки (`Write`, `Edit`, `NotebookEdit`), shell-команды, меняющие состояние, и инструменты графа задач (`TaskCreate`, `TaskUpdate` и т. д.) намеренно недоступны.

## Примечания

- Давайте подагенту Search конкретный вопрос, а не тему. «Перечисли каждого вызывающего `renderMessage` и отметь, кто из них передаёт кастомную тему» возвращает полезный ответ; «расскажи мне о рендеринге» — нет.
- Подагент возвращает резюме. Если нужны точные пути файлов, явно попросите их в промпте.
- Несколько независимых вопросов лучше отправлять как параллельные подагенты Search, а не одним длинным промптом, чтобы каждый мог сфокусироваться.
- Поскольку Search не может править, сочетайте его с последующим шагом правки в основном агенте, когда вы знаете, что менять.
- Относитесь к выводу Search как к свидетельствам, а не абсолютной истине. Для чего-либо несущего нагрузку открывайте цитируемые файлы самостоятельно перед действием.
