Outil web_search : recherche internet en temps réel
Les quatre outils intégrés de Mistral
Avant de plonger dans le détail du premier outil, voici une vue d’ensemble des quatre outils built-in disponibles dans l’API Agents.
| Outil | Type | Description | Cas d'usage |
|---|---|---|---|
| Web Search | web_search | Recherche internet en temps réel | Actualités, veille, fact-checking |
| Code Interpreter | code_interpreter | Exécution de code Python sandboxé | Calculs, data analysis, graphiques |
| Image Generation | image_generation | Création d'images à partir de texte | Illustrations, maquettes, créatif |
| Document Library | document_library | RAG sur documents uploadés | QnA sur fichiers, extraction, résumé |
Ces outils s’exécutent dans l’environnement cloud de Mistral — aucune infrastructure à gérer de votre côté.
Web Search en détail
L’outil web_search permet à votre agent de chercher des informations sur Internet en temps réel. C’est l’outil le plus utilisé car il résout le problème fondamental des LLM : le décalage temporel avec la réalité.
Créer un agent avec web search
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 Web Search",
instructions="Vous effectuez des recherches web pour répondre aux questions. Citez toujours vos sources.",
tools=[{"type": "web_search"}],
completion_args={"temperature": 0.3, "top_p": 0.95}
)
Lancer une recherche
response = client.beta.conversations.start(
agent_id=agent.id,
inputs="Qui a remporté la dernière Coupe d'Europe de football ?"
)
L’agent va automatiquement :
- Analyser la question
- Formuler une requête de recherche optimisée
- Exécuter la recherche
- Synthétiser les résultats avec des citations
Anatomie de la réponse
La réponse contient plusieurs entries séquentielles :
for entry in response.outputs:
print(f"--- {entry.type} ---")
if entry.type == "tool.execution":
# Détails de la recherche effectuée
print(f"Outil : {entry.tool_name}")
elif entry.type == "message.output":
# Réponse 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}")
Structure type
tool.execution— Métadonnées : requête envoyée au moteur de recherchemessage.output— Réponse synthétisée avec des chunkstextettool_reference
Utiliser en mode direct (sans agent)
response = client.beta.conversations.start(
model="mistral-large-latest",
inputs=[{"role": "user", "content": "Dernières actualités sur Mistral AI"}],
tools=[{"type": "web_search"}]
)
Bonnes pratiques
Formulez des questions précises
L’agent transforme votre question en requête de recherche. Plus votre question est spécifique, meilleurs seront les résultats :
- Vague : “Parle-moi de l’IA” → résultats génériques
- Précis : “Quelles sont les régulations européennes sur l’IA adoptées en 2026 ?” → résultats ciblés
Contrôlez la température
Pour les tâches factuelles, gardez une température basse (0.2-0.4). Cela réduit les hallucinations dans la synthèse des résultats.
Vérifiez les sources
Les citations sont automatiques mais la pertinence varie. Dans un contexte critique, vérifiez les URLs retournées.
Points clés à retenir
web_searchdonne à l’agent un accès en temps réel à Internet- Les réponses incluent des citations automatiques (titre + URL)
web_search_premiumajoute des sources de news vérifiées- L’outil fonctionne avec ou sans agent (mode direct possible)
- Température basse recommandée pour les tâches factuelles