Vue d’ensemble
Le contenu du message est un historique linéaire de l’exécution de l’agent. Il est conçu pour être analysé par le client afin d’afficher une interface utilisateur riche avec des étapes, des entrées/sorties d’outils et des interactions utilisateur, tout en restant une chaîne unique stockable.Balises d’Étape (Step Tags)
Les étapes représentent des actions ou des phases de haut niveau dans le plan de l’agent.<<STEP_START>>: Marque le début d’un bloc d’étape.<<STEP_END>>: Marque la fin d’un bloc d’étape.<<SINGLE_STEP_FLAG>>: Un indicateur optionnel à l’intérieur d’un bloc d’étape indiquant qu’il s’agit d’une action d’agent à étape unique.
Balises d’Exécution d’Outil (Tool Execution Tags)
Lorsque l’agent utilise un outil, les détails de l’exécution sont intégrés directement dans le flux de contenu à l’aide d’un ensemble spécifique de balises. Cela permet d’avoir un enregistrement précis de quel outil a été appelé, avec quels arguments, et quel a été le résultat.Structure
- Début :
<<TOOL_STEP_START/nom_outil:id_execution>> - Entrée :
<<TOOL_STEP_INPUT_START>>… entrée JSON …<<TOOL_STEP_INPUT_END>> - Résultat :
<<TOOL_STEP_RESULT_START>>… résultat JSON …<<TOOL_STEP_RESULT_END>> - Fin :
<<TOOL_STEP_END/nom_outil:id_execution>>
Balises de Point de Contrôle (Checkpoint Tags)
Les points de contrôle marquent des points significatifs dans l’historique de la conversation, souvent utilisés pour la navigation ou la restauration de l’état.<<CHECKPOINT_START>>: Commence un bloc de point de contrôle.Checkpoint: nom: Le nom du point de contrôle (à l’intérieur du bloc).<<CHECKPOINT_END>>: Termine le bloc de point de contrôle.
Balises de Demande d’Entrée (Input Request Tags)
Lorsque l’agent a besoin d’informations de la part de l’utilisateur, il s’arrête et attend une entrée. Cette interaction est enregistrée à l’aide de balises spécifiques.<<INPUT_REQUIRED_START>>: Commence le bloc de demande d’entrée.<<INPUT_REQUIRED_END>>: Termine le bloc.<<USER_INPUT_PROVIDED_START>>: (Optionnel) Si l’utilisateur a déjà répondu, son entrée est stockée ici.<<USER_INPUT_PROVIDED_END>>: Termine la section d’entrée utilisateur.
Balises d’Erreur (Error Tags)
Si une erreur survient pendant l’exécution de l’agent, elle est enregistrée dans le contenu du message à l’aide de balises spécifiques.<<ERROR_START>>: Marque le début d’un message d’erreur.<<ERROR_END>>: Marque la fin du message d’erreur.<<ERROR_JSON_START>>: Marque le début d’un objet d’erreur JSON détaillé (traceback, métadonnées).<<ERROR_JSON_END>>: Marque la fin de l’objet d’erreur JSON.
Balises de Pensée (Thinking Tags)
Les modèles qui prennent en charge la “Chaîne de Pensée” (Chain of Thought) ou le raisonnement afficheront leur monologue interne enveloppé dans des balises de pensée.<<thinking>>: Commence le bloc de pensée.<</thinking>>: Termine le bloc de pensée.
Stratégie d’Analyse
Pour afficher ce contenu, vous avez deux options principales :Option 1 : Utiliser le SDK Ubik Agent (Recommandé)
Les SDKubik-agent (JS/TS) et ubik-agent-py (Python) (actuellement en cours de développement) analysent automatiquement ces balises et fournissent un modèle d’objet structuré ou une chaîne Markdown propre prête à être affichée. C’est la méthode préférée pour la plupart des applications.
Option 2 : Analyse Manuelle (Avancé)
Si vous traitez vous-même la chaîne de contenu brute, suivez cette stratégie :- Correspondance Regex : Utilisez des expressions régulières pour trouver ces blocs.
- Machine à États : Itérez à travers la chaîne, en maintenant un état (par exemple,
in_step,in_tool,in_thinking) pour afficher le composant UI approprié pour chaque section. - Analyse JSON : Pour les entrées/sorties d’outils et les entrées utilisateur, extrayez le texte entre les balises et analysez-le en tant que JSON.

