- 1. Charger
Le navigateur télécharge la ressource Parquet, initialise DuckDB-WASM et conserve son schéma en mémoire.
- 2. Planifier
Le modèle interprète la demande, décide s’il faut clarifier et choisit les outils nécessaires.
- 3. Exécuter
Les tools serveur ou navigateur produisent des preuves structurées, puis leurs sorties sont réinjectées dans la conversation.
- 4. Poursuivre
AI SDK relance automatiquement l’agent après un tool local, dans une limite globale de cinq étapes.
- 5. Restituer
Le modèle rédige une réponse concise et peut demander une visualisation ou proposer une vue de l’explorateur.
La page Vue utilise useChat et DefaultChatTransport. La route Nitro appelle streamText. Après chaque tool local, sa sortie est ajoutée au message et AI SDK relance automatiquement l’agent.
Au chargement de la page, une route dédiée lit en parallèle les métadonnées publiques du jeu de données pour construire sa fiche de contexte. Cette présentation reste indépendante du moteur DuckDB, de l’explorateur et du panneau assistant. Les deux recherches de l’explorateur utilisent une primitive visuelle commune afin d’éviter leur divergence.
La boucle est bornée par isStepCount(5). Une réponse complexe doit donc partager ces cinq étapes entre inspections, corrections SQL, visualisation et réponse finale.
L’interface dérive quatre phases observables des messages AI SDK : planification avant le premier tool, utilisation des tools pendant leurs appels, interprétation après leurs sorties et rédaction dès que le texte final commence à arriver. Un identifiant de message assistant actif garantit qu’un seul état de progression est affiché. Une temporisation de 700 ms absorbe les passages transitoires à ready entre une sortie locale et la reprise automatique suivante.
Le raisonnement visible est une synthèse déterministe des actions observables : intention comprise, contexte consulté, nombre de calculs, colonnes du résultat et représentation choisie. Il n’expose pas la chaîne de pensée privée du modèle. Les formulations descriptives des tools sont demandées en français et écartées de cette synthèse lorsqu’elles semblent être en anglais. Les traces techniques restent séparées dans « Outils utilisés ».
Les erreurs de tool restent transitoires tant que le statut global est submitted ou streaming. Une erreur remplacée par une sortie réussie ultérieure du même tool est retirée à la fois des traces et de la zone de visualisation finale.