# WebSearch

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

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

- Ответы на вопросы о текущих событиях, недавних релизах или срочных новостях.
- Поиск последней версии библиотеки, фреймворка или CLI-инструмента.
- Нахождение документации или записей в блоге, когда точный URL неизвестен.
- Проверка факта, который мог измениться с момента обучения модели.
- Изучение разных точек зрения по теме перед получением конкретной страницы через `WebFetch`.

## Параметры

- `query` (string, обязательный): поисковый запрос. Минимальная длина 2 символа. Включайте текущий год при запросе «последней» или «недавней» информации, чтобы результаты были свежими.
- `allowed_domains` (array of strings, необязательный): ограничивает результаты только этими доменами, например `["nodejs.org", "developer.mozilla.org"]`. Полезно, когда вы доверяете конкретному источнику.
- `blocked_domains` (array of strings, необязательный): исключает результаты с этих доменов. Не передавайте один и тот же домен одновременно в `allowed_domains` и `blocked_domains`.

## Примеры

### Пример 1: поиск версии с текущим годом

```
WebSearch(
  query="React 19 stable release date 2026",
  allowed_domains=["react.dev", "github.com"]
)
```

Возвращает официальные анонсы и избегает низкокачественных сайтов-агрегаторов.

### Пример 2: исключение шумных источников

```
WebSearch(
  query="kubernetes ingress-nginx CVE April 2026",
  blocked_domains=["pinterest.com", "medium.com"]
)
```

Держит результаты сфокусированными на вендорских объявлениях и отслеживателях безопасности.

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

- При использовании `WebSearch` в ответе вы обязаны добавить раздел `Sources:` в конце ответа, перечисляя каждый цитируемый результат как Markdown-гиперссылку вида `[Title](URL)`. Это жёсткое требование, а не опция.
- `WebSearch` доступен только пользователям в Соединённых Штатах. Если инструмент недоступен в вашем регионе, откатывайтесь на `WebFetch` против известного URL или попросите пользователя вставить релевантное содержимое.
- Каждый вызов выполняет поиск за один round-trip — вы не можете стримить или пагинировать. Уточняйте запрос, если первый набор результатов не попал в цель.
- Инструмент возвращает сниппеты и метаданные, а не полное содержимое страниц. Чтобы прочитать конкретное попадание в глубину, сделайте follow-up через `WebFetch` с возвращённым URL.
- Используйте `allowed_domains`, чтобы обеспечить авторитетное сорсинг для вопросов, чувствительных к безопасности, таких как CVE или комплаенс, и `blocked_domains`, чтобы обрезать SEO-фермы, зеркалящие документацию.
- Держите запросы короткими и ключево-ориентированными. Запросы на естественном языке работают, но склонны возвращать разговорные ответы, а не первичные источники.
- Не изобретайте URL по поисковой интуиции — всегда запускайте поиск и цитируйте то, что инструмент действительно вернул.
