Agent avec recherche web
Mis à jour le 28 juillet 2026
Donner accès au web à votre agent
Un LLM sans accès à Internet est limité à ses données d’entraînement. Posez-lui une question sur un texte réglementaire voté le mois dernier et il répondra soit qu’il l’ignore, soit — plus embêtant — avec l’état du monde tel qu’il l’a mémorisé, sans signaler que cet état est périmé. En activant l’outil web_search sur votre agent, vous lui permettez de chercher des informations en temps réel et de citer ses sources, ce qui change à la fois la fraîcheur et la vérifiabilité de ses réponses.
Créer un agent avec web search
L’activation tient en une ligne de configuration, mais ce sont les instructions qui déterminent la qualité de l’usage. Celles de l’exemple imposent une discipline stricte : chercher systématiquement, citer les URL, dater les informations trouvées et signaler les contradictions entre sources.
from mistralai import Mistral
import os
client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])
agent = client.beta.agents.create(
model="mistral-medium-latest",
name="Agent Actualités",
instructions="""Vous êtes un analyste d'actualités.
- Utilisez la recherche web pour chaque question
- Citez toujours vos sources avec les URLs
- Précisez la date des informations trouvées
- Si les résultats sont contradictoires, mentionnez-le""",
tools=[{"type": "web_search"}],
completion_args={"temperature": 0.3, "top_p": 0.95}
)
La dernière consigne est la plus précieuse en pratique : sans elle, un modèle confronté à deux chiffres divergents en choisit un et présente sa synthèse comme un fait établi. La température basse complète le dispositif en réduisant la part d’invention dans la reformulation des résultats.
L’outil web_search donne accès à un moteur de recherche. Pour des sources de news vérifiées, utilisez web_search_premium :
tools=[{"type": "web_search_premium"}]
Utiliser l’agent
L’appel ne diffère en rien de celui d’un agent sans outil : vous ne déclenchez pas la recherche, c’est l’agent qui décide qu’elle est nécessaire.
response = client.beta.conversations.start(
agent_id=agent.id,
inputs="Quels sont les derniers développements en matière de régulation de l'IA en Europe ?"
)
Comprendre la structure de réponse
C’est côté lecture que le changement se fait sentir. La réponse d’un agent avec web search contient plusieurs types d’entries, et un code qui se contenterait de lire la première d’entre elles afficherait des métadonnées de recherche à la place du texte attendu.
for entry in response.outputs:
if entry.type == "tool.execution":
# Métadonnées de la recherche web
print(f"Outil utilisé : {entry.tool_name}")
print(f"Requête de recherche : {entry.info}")
elif entry.type == "message.output":
# Réponse de l'agent avec citations
for chunk in entry.content:
if chunk.type == "text":
print(chunk.text)
elif chunk.type == "tool_reference":
print(f" Source : {chunk.title} — {chunk.url}")
Notez la double boucle : le contenu d’un message.output n’est pas une chaîne mais une suite de chunks, alternant fragments de texte et références. Chaque section de la réponse peut ainsi inclure des tool_reference qui portent trois champs.
tool— Nom de l’outil source (web_search)title— Titre de la page web citéeurl— URL de référence
C’est un avantage majeur : votre agent ne se contente pas de répondre, il prouve ses affirmations avec des sources vérifiables. Dans une interface, ces champs deviennent des liens cliquables placés au bon endroit du texte, et votre utilisateur peut remonter à l’origine de chaque affirmation.
Ce que la recherche rend possible
Commençons par la veille. Un agent dont les instructions cadrent le format de restitution transforme une question ouverte en synthèse régulière et comparable d’une semaine à l’autre.
agent = client.beta.agents.create(
model="mistral-large-latest",
name="Veille Tech",
instructions="Effectuez une veille technologique. Résumez les 5 actualités les plus importantes du sujet demandé.",
tools=[{"type": "web_search"}]
)
response = client.beta.conversations.start(
agent_id=agent.id,
inputs="Veille sur les agents IA — dernières 2 semaines"
)
La vérification de faits suit, avec des instructions qui prennent cette fois la forme d’une procédure explicite. L’agent n’a pas à décider de sa méthode : elle lui est dictée, et sa sortie devient prévisible.
agent = client.beta.agents.create(
model="mistral-large-latest",
name="Fact Checker",
instructions="""Vérifiez les affirmations suivantes.
Pour chaque affirmation :
1. Recherchez des sources fiables
2. Indiquez si c'est vrai, faux ou partiellement vrai
3. Citez vos sources""",
tools=[{"type": "web_search"}]
)
Le comparatif ferme la série : ici, c’est la question elle-même qui porte les critères de décision. Plus vous précisez la contrainte réelle — la technologie, la volumétrie —, plus les recherches déclenchées seront ciblées.
response = client.beta.conversations.start(
agent_id=agent.id,
inputs="Comparez les offres cloud d'OVH, Scaleway et AWS pour héberger une application Python avec 10K utilisateurs/jour."
)
web_search ou web_search_premium ?
| Aspect | web_search | web_search_premium |
|---|---|---|
| Moteur | Recherche standard | Recherche avancée |
| Sources | Web général | Fournisseurs de news vérifiés |
| Coût | Inclus | Surcoût |
| Usage | Informations générales | Actualités fiables |
Pour la plupart des cas d’usage, web_search est suffisant. Réservez web_search_premium aux applications où la fiabilité des sources est critique (journalisme, compliance, veille réglementaire). Le raisonnement à tenir n’est pas « quelle est la meilleure option » mais « quel est le coût d’une source douteuse dans mon contexte » : sur un résumé d’actualité interne, il est nul ; sur une note transmise à un régulateur, il ne l’est pas.
Points clés à retenir
- L’outil
web_searchpermet à l’agent de chercher sur Internet en temps réel - Les réponses incluent des citations avec titre et URL de la source
web_search_premiumoffre des sources de news vérifiées pour un coût supplémentaire- La température basse (0.3) est recommandée pour les tâches factuelles avec recherche
- L’agent décide automatiquement quand et comment utiliser la recherche web