Recherche web
En plus des bases de connaissance, le modèle peut disposer d’outils web : il décide lui-même de chercher sur le web et de lire des pages, enchaîne plusieurs appels si besoin, puis répond — exactement comme le mode agentique du RAG.
Activez-les avec le paramètre tools_enabled :
curl https://api.astrolabe.chat/v1/chat/completions \ -H "Authorization: Bearer $ASTROLABE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "mistral-large", "messages": [{ "role": "user", "content": "Quelle est la dernière version stable de Next.js ? Cite une source." }], "tools_enabled": ["web_search", "web_fetch"], "tools_max_steps": 4 }'Paramètres
Section intitulée « Paramètres »| Paramètre | Type | Description |
|---|---|---|
tools_enabled | string[] | Outils à activer : "web_search" (recherche) et/ou "web_fetch" (lecture de page). Vide ou absent = aucun outil web. |
tools_max_steps | number | (optionnel, défaut 8, max 15) Nombre maximum de tours d’outils autorisés (borne le coût). |
Les deux outils
Section intitulée « Les deux outils »-
web_search— recherche web (type moteur de recherche). Le modèle fournit une requête (query) et reçoit une liste de résultats (titre,url,extrait). Option :top_k(1–10).Pas de filtre de fraîcheur : l’index européen n’en propose pas, et nous préférons ne pas exposer un paramètre qui serait ignoré. Pour restreindre à une période, écrivez-la dans la requête (« … juillet 2026 »), ou lisez directement la page d’actualité de la source avec
web_fetch.Opérateur
site:— il fonctionne, mais accompagné de mots-clés :site:exemple.com annonce modèlerenvoie des résultats,site:exemple.com/newsseul n’en renvoie aucun (l’opérateur retiré, il ne reste plus de requête). Quand vous connaissez déjà l’URL d’une page,web_fetchest plus direct et plus fiable qu’une recherche. -
web_fetch— lit le contenu texte d’une page (URL http/https) trouvée viaweb_search. Lecture statique (pas d’exécution JavaScript) ; les pages privées/locales sont bloquées.
Lecture partielle des pages longues
Section intitulée « Lecture partielle des pages longues »Une page web peut peser des dizaines de milliers de caractères. Tout ce que l’agent charge reste dans son contexte jusqu’à la fin de sa réflexion : une page entière chargée au deuxième tour est relue à chaque tour suivant, ce qui ralentit la réponse et dilue la question.
web_fetch renvoie donc, par défaut, une portion d’une page longue (environ 10 000
caractères), accompagnée de ce qu’il faut pour aller plus loin :
| Champ renvoyé | Sens |
|---|---|
total_chars | Taille réelle de la page, même si elle n’est pas montrée en entier. |
next_offset | Position de reprise, ou null si la fin est atteinte. |
mode | full (page entière), excerpts (passages ciblés) ou window (lecture séquentielle). |
L’agent pilote lui-même sa lecture avec trois paramètres :
query— ce qu’il cherche dans la page. Il reçoit alors les passages pertinents plutôt que le début, même si l’information se trouve en bas de page. C’est le mode à privilégier.offset— reprend la lecture où elle s’est arrêtée (lenext_offsetprécédent).full: true— force la page entière, dans la limite de 50 000 caractères.
Aucun réglage n’est nécessaire de votre côté : le comportement est automatique, et les
consignes données au modèle l’orientent vers query. Une page courte est toujours renvoyée
en entier, sans découpage.
Combiner avec les bases de connaissance
Section intitulée « Combiner avec les bases de connaissance »tools_enabled et knowledge_base_mode: "agentic" coexistent : dans la même réflexion, l’agent
peut interroger vos bases et le web, et choisir lui-même quel outil utiliser pour quelle
sous-question.
curl https://api.astrolabe.chat/v1/chat/completions \ -H "Authorization: Bearer $ASTROLABE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "mistral-large", "messages": [{ "role": "user", "content": "Combien de dossiers en alerte dans notre base, et une actu récente sur notre secteur ?" }], "knowledge_base": "suivi-clients", "knowledge_base_mode": "agentic", "tools_enabled": ["web_search", "web_fetch"] }'À savoir
Section intitulée « À savoir »-
Non-streaming : comme le mode agentique, la réponse arrive en une fois (
stream: trueest ignoré). Idéal pour les automatisations (Make/n8n). -
Coût : deux composantes. (1) Les tokens des appels modèle (un par tour + la réponse) →
tools_max_stepsborne le nombre de tours. (2) Un forfait de 1,25 € pour 1 000 recherches (web_search) exécutées, soit 0,00125 € l’unité ;web_fetch(lecture de page) est inclus, sans supplément. Le forfait apparaît dans le coût de la requête au playground et est décompté de vos crédits comme le reste. Une recherche qui échoue n’est pas facturée. -
Réflexion : les appels d’outils de l’agent sont renvoyés dans
astrolabe_steps(outil, requête, et le tour qui les a demandés) et les tours de modèle dansastrolabe_rounds(contexte, cache, durée, coût, empreinte carbone). Le portail les affiche ensemble, dans l’ordre réel. Les URL sources sont citées directement dans la réponse. -
Souveraineté : la recherche est servie par Staan, l’API de recherche de European Search Perspective (coentreprise Qwant et Ecosia). L’index est européen, les données restent sous juridiction UE, dans des centres de données UE, hors portée du CLOUD Act américain. Le badge cloud du modèle s’applique comme d’habitude si vous routez vers un modèle cloud.
Une recherche web sort nécessairement de notre infrastructure : la requête est transmise au moteur qui détient l’index. Ce qui change avec Staan, c’est chez qui elle va — un acteur européen sous contrat, nommable dans votre registre de sous-traitants.
-
Sécurité : le contenu web est traité comme une donnée, jamais comme une instruction — les éventuelles consignes cachées dans une page ne sont pas exécutées.