Aller au contenu principal

Replay déterministe — rejouez l'événement d'hier

Avancé ⏱ 15 min replay · trajectoires · debugging

Vous allez construire : rien — vous allez interroger ce que vous avez déjà construit. Chaque événement qui traverse un pipeline laisse une trajectoire enregistrée (chaque hop : nœud, moteur, entrée, sortie, appels LLM/MCP). Vous allez les lister, en rejouer une pour de vrai (chaque hop ré-exécute l'agent déployé via le runtime vivant), la rejouer --mocked (le parcours enregistré — byte-déterministe, zéro appel externe), et differ les runs pour voir exactement où le comportement a changé.

événement (hier) → trajectoire enregistrée → replay (ré-exécution réelle, défaut) · replay --mocked (enregistré, identique) → diff

Prérequis

  • N'importe quelle app déployée ayant traité au moins un événement — le hello du démarrage rapide convient.
  • pulse replay demande un Pulse ≥ le build portant B-198 (vérifiez : pulse replay --help).

1 · Trouvez une trajectoire enregistrée

pulse replay list --pipeline hello
hello — 3 trajectoire(s), plus récentes d'abord :
t-9f2… OK 2 hop(s) 2026-07-14T08:12:03Z

2 · Inspectez le trajet, hop par hop

pulse replay show t-9f2…

Chaque hop montre le nœud, son moteur, la durée, et la sortie produite — la boîte noire d'un événement.

3 · Rejouez — ré-exécution réelle, par défaut

pulse replay run t-9f2…
pulse replay diff t-9f2… r-58…

Le défaut est live : chaque hop ré-exécute réellement l'agent déployé via le runtime — le même moteur de raisonnement que le vrai trafic (les appels LLM, l'évaluation des règles et la résolution d'outils se produisent vraiment). Le diff surligne tout hop où le graphe, une réponse LLM ou une API externe diffère du run enregistré :

hop 1 [judge] DIVERGES
a: {"likelihood":"high",…}
b: {"likelihood":"medium",…}

4 · Le parcours enregistré — le déterminisme, prouvé

pulse replay run t-9f2… --mocked
pulse replay diff t-9f2… r-41…
identical — 2 hop(s), no divergence

--mocked opte pour le mode enregistré : chaque hop renvoie la sortie originale capturée — aucun LLM re-facturé, rien de renvoyé, byte-déterministe à graphe inchangé. Ce diff vide est la preuve de déterminisme.

Ce qui vient de se passer

Vous avez débogué avec des preuves au lieu d'une reproduction : la trajectoire enregistrée est la vérité de ce qui s'est passé ; le replay live + diff isole précisément quel hop se comporte différemment aujourd'hui — parce que chaque hop s'est réellement ré-exécuté via le runtime ; et le parcours mocked relit l'enregistrement gratuitement. Pour les stages LLM, c'est la différence entre « il a répondu autrement une fois » et voir le hop divergent.

Limites honnêtes

Le replay live ré-exécute pour de vrai les nœuds à effets de bord : pointez les sinks vers une destination de staging avant de rejouer en live quoi que ce soit qui agit sur le monde. Le replay mocked est byte-déterministe à graphe inchangé — éditez le pipeline et le replay suit la nouvelle forme.

Ensuite