Aller au contenu principal

Agent avec recherche web

Donner accès au web à votre agent

Un LLM sans accès à Internet est limité à ses données d’entraînement. 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.

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}
)

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

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

La réponse d’un agent avec web search contient plusieurs types d’entries :

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}")

Les citations

Chaque section de la réponse peut inclure des tool_reference qui citent la source :

  • tool — Nom de l’outil source (web_search)
  • title — Titre de la page web citée
  • url — 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.

Cas d’usage typiques

Veille technologique

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"
)

Vérification de faits

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"}]
)

Comparatif de produits

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 vs web_search_premium

Aspectweb_searchweb_search_premium
MoteurRecherche standardRecherche avancée
SourcesWeb généralFournisseurs de news vérifiés
CoûtInclusSurcoût
UsageInformations généralesActualité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).

Points clés à retenir

  • L’outil web_search permet à 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_premium offre 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