- Streaming d’Exécution d’Outil : Pour surveiller les tâches d’outils de longue durée.
- Streaming de Session d’Agent : Pour recevoir des réponses de chat en temps réel des agents.
Streaming d’Exécution d’Outil
Ce guide montre comment se connecter au flux d’événements d’un outil en utilisant les Server-Sent Events (SSE). Il suppose que vous avez déjà lancé une exécution d’outil comme indiqué dans le guide Exécuter Votre Premier Outil.Exécuter un Outil et Obtenir l'URL de Streaming
Tout d’abord, exécutez un outil comme vous le feriez normalement. La réponse initiale Copiez la
202 Accepted contiendra une stream_url. C’est l’endpoint que nous utiliserons pour recevoir les événements en direct.Réponse
stream_url pour l’étape suivante.Se Connecter au Flux d'Événements
Maintenant, vous pouvez vous connecter à la
stream_url en utilisant n’importe quel client compatible SSE. La connexion restera ouverte, et le serveur enverra les événements au fur et à mesure qu’ils se produisent.Dans l’exemple JavaScript
EventSource, nous passons la clé API comme paramètre de requête. Notre serveur est configuré pour accepter la clé API soit via l’en-tête X-API-KEY, soit via un paramètre de requête nommé api_key pour les connexions SSE, car EventSource ne prend pas en charge les en-têtes personnalisés.Comprendre les Événements
Au fur et à mesure que l’outil s’exécute, vous recevrez une série d’objets JSON. Chaque objet contient un
Utilisé pour les mises à jour générales de progression ou les changements de données structurées.
Utilisé pour le contenu en streaming (par exemple, génération de texte, téléchargements partiels d’images).
Envoyé lorsqu’un outil interactif met en pause l’exécution pour attendre une entrée de l’utilisateur.
L’événement final d’une exécution réussie.
Indique qu’une erreur est survenue pendant l’exécution.
event_type et une charge utile data. Voici les types d’événements détaillés et leurs structures :tool_update
Utilisé pour les mises à jour générales de progression ou les changements de données structurées.tool_partial_update
Utilisé pour le contenu en streaming (par exemple, génération de texte, téléchargements partiels d’images).tool_input_required
Envoyé lorsqu’un outil interactif met en pause l’exécution pour attendre une entrée de l’utilisateur.final_result
L’événement final d’une exécution réussie.error
Indique qu’une erreur est survenue pendant l’exécution.Exemple de Flux d’Événements
Streaming de Session d’Agent
Les Sessions d’Agent fournissent un ensemble différent d’événements adaptés aux interfaces conversationnelles. Lorsque vous envoyez un message avec"stream": true, le serveur diffuse le processus de réflexion de l’agent et les morceaux de réponse.
Événements de Session d’Agent
Contrairement aux exécutions d’outils, les événements de session d’agent sont souvent utilisés pour afficher une interface de chat en temps réel. Pour une liste complète des types d’événements et leur structure, veuillez consulter le Guide des Événements de Session d’Agent.Endpoint de Stream Dédié
Bien quePOST /agent-sessions/{id}/messages prenne en charge le streaming direct, UBIK fournit également un endpoint dédié pour s’abonner aux événements de session. Ceci est utile pour :
- Reconnexion : Reprendre un flux si la connexion est interrompue (les événements passés sont rejoués).
- Compatibilité Navigateur : Utiliser
EventSourcequi nécessite une requête GET et une authentification basée sur l’URL.
GET /agent-sessions/{session_id}/stream
Authentification avec JWT
Comme l’APIEventSource standard des navigateurs ne peut pas envoyer d’en-têtes personnalisés (comme X-API-KEY), cet endpoint accepte un paramètre de requête token. Vous devez générer un JWT à courte durée de vie en utilisant /auth/token et le passer ici.
Pour plus de détails sur la génération de jetons, voir le Guide Authentification & Sécurité.

