# SubAgent: Search

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

Підагент Search — це легкий дослідницький агент лише для читання. Диспетчеризуйте його, коли вам потрібно зрозуміти кодову базу — знайти, де щось знаходиться, зрозуміти, як компоненти поєднуються, чи відповісти на структурні запитання — без зміни жодних файлів. Він оптимізований для багатьох невеликих читань по багатьох файлах, повертаючи лаконічний підсумок, а не сирий вивід пошуку.

Search не є універсальним асистентом. Він не може редагувати код, запускати збірки, комітити зміни чи відкривати мережеві зʼєднання поза межами читань. Його цінність у тому, що він може спалити великий бюджет дослідження паралельно, не споживаючи контекст основного агента, а потім повернути компактну відповідь.

## Коли використовувати

- Вам потрібно відповісти на запитання, що вимагає трьох чи більше окремих пошуків чи читань. Приклад: "How is authentication wired from the login route down to the session store?"
- Ціль невідома — ви ще не знаєте, на який файл, модуль чи символ дивитися.
- Вам потрібен структурний огляд незнайомої ділянки репозиторію перед внесенням змін.
- Ви хочете перехресно посилатися на кілька кандидатів (наприклад, який із кількох схоже іменованих помічників насправді викликається в проді).
- Вам потрібен підсумок у стилі літературного огляду: "перелічити кожне місце, що імпортує X, і категоризувати за місцем виклику."

Не використовуйте Search, коли:

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

## Рівні ретельності

Вибирайте рівень, що відповідає ставкам питання.

- `quick` — кілька цілеспрямованих пошуків, відповідь за найкращими зусиллями. Використовуйте, коли вам потрібен швидкий вказівник (наприклад, "where is the env-var parsing logic?") і ви готові ітерувати, якщо відповідь неповна.
- `medium` — за замовчуванням. Кілька раундів пошуку, перехресна перевірка кандидатів і повне читання найрелевантніших файлів. Використовуйте для типових запитань "допоможи мені зрозуміти цю ділянку".
- `very thorough` — вичерпне дослідження. Підагент прослідує за кожним правдоподібним слідом, прочитає навколишній контекст і двічі перевірить висновки перед підсумовуванням. Використовуйте, коли коректність має значення (наприклад, огляд безпеки, планування міграції) або коли неповна відповідь спричинить переробку.

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

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

Search має доступ до всіх інструментів лише для читання, що використовує основний агент, і нічого більше:

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

Інструменти редагування (`Write`, `Edit`, `NotebookEdit`), команди оболонки, що змінюють стан, та інструменти графу завдань (`TaskCreate`, `TaskUpdate` тощо) навмисно недоступні.

## Примітки

- Дайте підагенту Search конкретне запитання, а не тему. "List every caller of `renderMessage` and note which ones pass a custom theme" повертає корисну відповідь; "tell me about rendering" — ні.
- Підагент повертає підсумок. Якщо вам потрібні точні шляхи файлів, попросіть їх явно у своєму промпті.
- Кілька незалежних запитань найкраще диспетчеризуються як паралельні підагенти Search, а не один довгий промпт, щоб кожен міг сфокусуватися.
- Оскільки Search не може редагувати, спарюйте його з наступним кроком редагування в основному агенті, коли ви знаєте, що змінити.
- Ставтеся до виводу Search як до свідчень, а не істини в останній інстанції. Для чогось навантажувального відкрийте цитовані файли самі перед діями.
