Aller au contenu principal

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é.

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 :

  1. Analyser la question
  2. Formuler une requête de recherche optimisée
  3. Exécuter la recherche
  4. 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

  1. tool.execution — Métadonnées : requête envoyée au moteur de recherche
  2. message.output — Réponse synthétisée avec des chunks text et tool_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_search donne à l’agent un accès en temps réel à Internet
  • Les réponses incluent des citations automatiques (titre + URL)
  • web_search_premium ajoute 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