Observabilité de la chaîne complète : voyez où c'est lent en un coup d'œil
Cette journée a connecté « traces + journaux » en une chaîne complète couvrant le front-end, le backend et les agents : une action envoyée depuis l'interface utilisateur, via le backend, dans l'exécution d'un agent et retour à l'image est traçable de bout en bout, avec un chien de garde de décrochage, de sorte que l'endroit où elle est lente ou bloquée est visible d'un seul coup d'œil. L'outil de débogage de rendu a également appris à enregistrer l'état initial, permettant ainsi aux problèmes les plus désagréables comme « écran noir » de se reproduire de manière stable lors de la relecture.
Un système que vous ne pouvez pas voir, vous ne pouvez pas contrôler
À mesure qu'un système devient de plus en plus complexe et confie de plus en plus d'étapes à l'IA pour qu'elle fonctionne de manière autonome, une question fondamentale se pose : que se passe-t-il réellement à l'intérieur ? Une action a été envoyée, rien ne répond pendant un moment : est-elle bloquée sur le front-end, le backend, ou un agent est-il tête baissée au travail ? À partir des seuls symptômes superficiels, vous ne pouvez que deviner. Cette journée a transformé l'ensemble du système d'une « boîte noire » en une « boîte transparente » : rendre le parcours complet d'une action - depuis votre clic dans l'interface utilisateur, en passant par le traitement backend, en passant par un agent s'exécutant tour à tour, jusqu'au résultat à l'écran - traçable et visible jusqu'au bout. Cela n'ajoute aucun nouveau gameplay, mais c'est la condition préalable pour piloter un système complexe à long terme : seul ce que vous pouvez voir peut être contrôlé, et seul ce que vous pouvez contrôler peut vous permettre de donner plus en toute confiance. L'observabilité est le point de départ de toute optimisation et débogage : vous ne pouvez pas améliorer ce que vous ne pouvez pas voir clairement.
Un front-end, un backend et des agents de trace threading
Le travail principal de la journée consistait à connecter le « traçage » à une chaîne qui enchaîne véritablement la pile complète. Le traçage consiste à attribuer à une action un identifiant unique afin que, quelle que soit la couche du système traversée, elle porte cet identifiant et laisse des horodatages, de sorte que les fragments dispersés partout puissent ensuite être enchaînés dans une chronologie complète par cet identifiant. Ce qui a été réalisé aujourd'hui, c'est de transmettre cet identifiant du front-end jusqu'au backend et dans l'exécution d'un agent - toute action peut être reconstruite dans la trajectoire complète de "combien de temps elle a passé sur le front-end d'abord, puis sur le backend, puis quel agent a pris le relais et combien de temps cela a pris". La clé technique consiste à propager correctement ce contexte de trace à travers chaque limite de couche au lieu de le déposer à la limite (ce qui ne laisserait que des fragments isolés qui ne peuvent pas être assemblés en un tout). Une fois que cette trace de la chaîne complète existe, les plaintes les plus vagues et les plus difficiles à enquêter – « le système est lent » ou « le système est bloqué » – obtiennent une règle qui les identifie avec précision.
Un traceur de navigateur + un chien de garde de décrochage
Au sein de cette trace de chaîne complète, le segment frontal dispose d'un traceur dédié côté navigateur qui suit l'étape « depuis votre action dans l'interface utilisateur jusqu'à son rendu final ». Cela répond à une confusion très concrète : parfois, vous cliquez ou tapez et l'interface met du temps à répondre : la requête n'est-elle pas encore envoyée, est-elle en attente sur le backend, ou le frontend lui-même est-il bloqué dans le rendu quelque part ? Le traceur du navigateur divise cette étape en étapes visibles afin que vous puissiez voir exactement sur quelle étape elle est bloquée. Un "chien de surveillance du décrochage" l'accompagnait : il surveille le rythme des flux clés et, dès qu'une étape s'arrête au-delà de l'heure prévue, signale immédiatement le décrochage, au lieu de vous laisser regarder une interface figée sans savoir si elle est morte ou occupée. Pour un outil centré sur l'interaction avec l'interface, « à quoi sert le front-end, est-il bloqué » est la question la plus directe et la plus fréquente des utilisateurs ; rendre cette jambe observable étend la portée du traçage jusqu'à l'endroit le plus proche de l'utilisateur.
Collecte et reporting backend + chaque agent remet la trace
Les deux autres segments de la chaîne ont été comblés parallèlement. Le backend constitue un puits de télémétrie : les traces et les journaux produits partout sont collectés ici et signalés, et le contexte de trace extrait du front-end est transmis plus loin, garantissant que la partie backend d'une action reste toujours suspendue sur la même ligne de trace sans espace. Le segment d'agent a intégré chaque tour d'exécution dans la même trace : lorsqu'un agent prend une tâche et exécute un tour, la durée de ce tour et ce qu'il a fait est enregistré comme un seul nœud sur cette trace. Ensemble, ces éléments font que la « chaîne complète » porte bien son nom : depuis un clic frontal, en passant par le traitement backend, jusqu'au travail détaillé d'un agent, le tout sur une seule ligne. Pour une plate-forme dont l'expérience principale consiste à « diriger une équipe d'agents IA au travail », « qu'est-ce que chaque agent est occupé à ce tour, où est-il lent » est exactement ce qui devrait être visible ; En intégrant l'exécution des agents dans la trace, le processus de travail de l'IA n'est plus une boîte noire sans égal.
Débogage graphique : enregistrement de l'état initial pour reproduire les bugs d'écran noir
Dans le même esprit que l'observabilité, les outils de débogage de rendu sont devenus plus performants aujourd'hui. Il pouvait déjà « capturer une image et la rejouer pour comparaison », mais il manquait un élément clé : l'état initial. Une image est dessinée étape par étape à partir d'un point de départ, et si la capture n'enregistre que les actions de dessin mais pas le contenu initial des ressources au début, la relecture revient à "rejouer à partir d'un mauvais point de départ", et certains problèmes ne se reproduisent tout simplement pas. Cette journée a complété cela : la capture d'image enregistre désormais également l'état initial des ressources pertinentes, intégré dans la relecture pour reconstruire avec précision l'intégralité de l'image à partir d'un départ identique. C'est particulièrement utile pour les problèmes les plus désagréables comme "l'écran est noir, les objets ont disparu" - souvent causés par un mauvais réglage d'un état initial, auparavant très difficile à localiser car la relecture ne pouvait pas le reproduire ; désormais, l'écran noir se reproduit fidèlement lors de la relecture, transformant un bug fantôme « occasionnel et incapable » en un objet concret qui « se reproduit de manière stable et peut être étudié et corrigé à plusieurs reprises ». Ce sont les deux faces d’une même médaille que le traçage complet de la chaîne du jour : l’une vous permet de voir « où le système est lent », l’autre « où l’image est fausse ».
Ce que signifie cette journée
Ce que cette journée a ajouté est un organe sensoriel indispensable à un système en pleine maturation. Au cours des nombreux jours précédents, la plate-forme n'a cessé de développer de nouvelles fonctionnalités : personnages mobiles, scènes modifiables, ressources générables, open source pour tous ; mais plus il devient capable et autonome, plus il est important de « voir clairement ce qui se passe à l’intérieur ». Un système qui ne peut pas voir son propre intérieur ne peut que deviner quand quelque chose ne va pas, ne sait pas d'où vient la lenteur et finit par perdre le contrôle parce qu'il est impossible à diagnostiquer. Cette journée a connecté le traçage en une seule ligne couvrant le front-end, le backend et les agents, et a laissé le rendu du débogage enregistrer l'état initial pour reproduire les problèmes d'image de manière stable, donnant ainsi à la plate-forme deux paires d'yeux à la fois : une pour les performances et le flux, une pour l'image et le rendu. Rendre visibles à la fois « ce que fait le système » et « pourquoi l'image ressemble à ceci » signifie que tout ce qui vient ensuite – optimiser la vitesse, diagnostiquer les pannes ou accorder en toute confiance plus d'autonomie à l'IA – repose sur des preuves fiables. La capacité décide de « ce qu'une plate-forme peut faire » et l'observabilité décide « dans quelle mesure on peut lui faire confiance » – et cette journée a complété cette dernière.