Aller au contenu

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 :

Fenêtre de terminal
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ètreTypeDescription
tools_enabledstring[]Outils à activer : "web_search" (recherche) et/ou "web_fetch" (lecture de page). Vide ou absent = aucun outil web.
tools_max_stepsnumber(optionnel, défaut 8, max 15) Nombre maximum de tours d’outils autorisés (borne le coût).
  • 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èle renvoie des résultats, site:exemple.com/news seul 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_fetch est plus direct et plus fiable qu’une recherche.

  • web_fetch — lit le contenu texte d’une page (URL http/https) trouvée via web_search. Lecture statique (pas d’exécution JavaScript) ; les pages privées/locales sont bloquées.

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_charsTaille réelle de la page, même si elle n’est pas montrée en entier.
next_offsetPosition de reprise, ou null si la fin est atteinte.
modefull (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 (le next_offset pré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.

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.

Fenêtre de terminal
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"]
}'
  • Non-streaming : comme le mode agentique, la réponse arrive en une fois (stream: true est 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_steps borne 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 dans astrolabe_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.