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