Le streaming réduit le temps perçu avant la première réponse et rend visibles les étapes d’un agent. Il ne réduit pas nécessairement le temps total. Une interface doit distinguer les tokens destinés à l’utilisateur des événements techniques, outils et changements d’état.
Choisir ce qui doit être diffusé
Les modes de streaming peuvent exposer les messages du modèle, les mises à jour d’état, les événements personnalisés ou les sous-graphes. N’envoyez au navigateur que les données nécessaires et filtrez les arguments d’outils contenant des informations sensibles.
Synchrone ou asynchrone
Utilisez stream pour un consommateur synchrone et astream dans une application asynchrone. Propagez l’annulation lorsque le client se déconnecte et imposez des délais d’attente. Une file bornée évite qu’un consommateur lent ne fasse croître la mémoire sans limite.
Callbacks et observabilité
Les callbacks sont utiles pour la journalisation, les métriques et certaines intégrations. Gardez-les rapides, tolérants aux erreurs et sans logique métier critique. Une panne du système de télémétrie ne devrait pas bloquer la réponse utilisateur.
Concevoir le protocole client
Émettez des événements typés comme token, tool_start, tool_end, error et done. Ajoutez un identifiant de trace, conservez l’ordre et prévoyez la reconnexion. N’interprétez pas chaque fragment comme une réponse finale validée.
Checklist avant mise en production
- Valider les entrées, les sorties et les permissions des outils.
- Tester les erreurs du fournisseur, les délais d’attente et les limites de coût.
- Ajouter des traces sans enregistrer de secrets ni de données personnelles inutiles.
- Mesurer la qualité sur un jeu de cas représentatifs avant chaque évolution.
Questions fréquentes
Le streaming diminue-t-il le coût ?
Non. Il change surtout la manière dont le résultat arrive; les tokens générés restent facturés selon le fournisseur.
Peut-on streamer les appels d’outils ?
Oui, selon le mode choisi. Il faut toutefois masquer les secrets et ne pas présenter un résultat partiel comme définitif.