# Recherche web

Permettez à l'agent d'interroger le web en direct via l'outil hébergé OpenAI.

## Vue d'ensemble

`web_search` est un **outil hébergé** : la recherche s'exécute dans l'API Responses d'OpenAI, pas sur notre backend. À chaque tour, le LLM décide d'émettre ou non une requête, lit les extraits retournés et les intègre à sa réponse (généralement avec des citations en ligne).

À utiliser quand l'agent a besoin d'informations récentes, publiques et absentes de ses données d'entraînement — tarifs, actualités, documentation, réglementation, scores sportifs. À éviter pour le privé (utilisez `file_search`) ou le transactionnel (utilisez `function`).

**Nécessite un modèle OpenAI.** L'outil n'est disponible que lorsque le modèle de l'agent est un modèle OpenAI (ex. `gpt-4.1`, `gpt-4o`, `o4-mini`). Quand Web Search est attaché, les modèles DeepSeek (`deepseek-v4-flash`, `deepseek-v4-pro`) sont grisés dans le menu des modèles — et une sélection DeepSeek rebascule automatiquement sur un modèle OpenAI.

## Configuration

| Champ | Valeurs | Notes |
| --- | --- | --- |
| Taille du contexte de recherche | `low`, `medium`, `high` | Quantité de contenu web autorisée. Plus c'est élevé, meilleure est la réponse, plus de tokens, plus lent. Défaut : `medium`. |
| Domaines autorisés | Liste de domaines | Restreint la recherche à ces domaines. Vide = tout le web. |
| Localisation utilisateur | pays, région, ville, fuseau | Indice de localisation pour les requêtes locales. Envoyé comme *approximation*, jamais comme coordonnée précise. |

Un seul `web_search` peut être attaché à un agent — un second est ignoré.

## Exemple

Prompt système :

```
Tu es un assistant de recherche. Quand l'utilisateur demande
une actualité, recherche sur le web et cite tes sources.
```

Tour utilisateur : *« Qu'a décidé la BCE lors de sa dernière réunion ? »*

Le modèle appelle web_search :

```json
{ "query": "BCE dernière réunion politique monétaire décision" }
```

L'outil retourne des extraits classés et leurs URL. Le modèle répond avec un paragraphe citant `ecb.europa.eu` et `reuters.com` en ligne.

## Bonnes pratiques

- **Dites à l'agent quand chercher.** Sans indication, le modèle peut répondre depuis sa mémoire et sauter l'outil. Une phrase comme *« Pour toute date, commence par chercher sur le web »* corrige cela.
- **Choisissez `searchContextSize` consciemment.** `high` peut multiplier le coût par 5 à 10 ; gardez-le pour la recherche. `low` suffit pour une vérification de fait.
- **Limitez aux domaines de confiance.** Un agent support qui ne doit citer que vos docs devient bien plus sûr avec `allowedDomains: ["docs.acme.com"]`.
- **Surveillez la facture.** Les réponses web_search comptent dans les tokens d'entrée. Une boucle bavarde en `high` est la première cause de factures OpenAI surprises.

## Pièges

- L'éditeur bloque la combinaison DeepSeek + Web Search (options grisées, bascule automatique sur un modèle OpenAI). Les configurations créées hors éditeur échouent à l'exécution avec une erreur explicite.
- L'outil retourne parfois zéro résultat pour des événements très récents (délai d'indexation). Reformulez plus précisément.
- Les citations viennent du moteur d'OpenAI ; nous les affichons telles quelles dans le journal d'exécution.

---

*Source: https://agentbuilder.systalink.sn/docs/tool-web-search — human documentation.*
*Other language: [/docs-md/en/tool-web-search.md](/docs-md/en/tool-web-search.md).*
*Machine-readable index: [/llms.txt](/llms.txt).*
