2026-08-01T12:22:35.890Z

PostHog LLM Observabilité: testez la clé de raccordement

Comparez les sessions de frontend, les sessions AI et les identifiants de travail durables entre les répétitions et les tâches concurrentes, puis exposez les erreurs d'attribution avec HogQL.

L'observabilité PostHog LLM a besoin d'une clé de rejoindre délibérée une fois que le travail de l'agent peut réessayer, quitter une session de navigateur ou partager une session avec une autre tâche. $session id , $ai session id et $ai trace id sont utiles, mais aucun n'est automatiquement l'identité de l'œuvre acceptée. Dans une expérience de 14 événements, le regroupement par la séance front end a créé deux groupes confondus et deux mauvaises combinaisons génération à résultat. Le regroupement par la session AI a divisé une tâche réessayée en deux sessions et a néanmoins produit un mauvais couplage. Un work id durable a lié les trois résultats vérifiés attendus, a préservé la réessaye comme une seule tâche et a isolé un reçu de travail erroné comme orphelin au lieu de le relier à une trace saine. La règle d'exploitation est spécifique: utilisez les sessions PostHog pour la navigation et l'agrégation, les traces pour l'activité du modèle de causalité et un work id sécurisé pour la vie privée pour l'unité qui doit éventuellement produire un résultat. Alors, consultez ces champs ensemble. C'est ainsi que les traces, les coûts et l'analyse des produits deviennent un contrat de preuve plutôt qu'une collection lourde de tableaux de bord. Quatre identifiants répondent à quatre questions différentes Le Modèle de trace AI de PostHog nécessite un $ai trace id pour les événements d'observabilité AI. Un groupe de traces lié à des générations et des étendues. Il répond: quel modèle et quel outil ont été utilisés pour cette interaction? Le Guide de séance AI définit le $ai session id comme un regroupement optionnel choisi selon l'application à travers les traces. Il peut représenter un flux de travail, un fil, une conversation ou une autre limite logique. Le même guide le distingue du frontend standard $session id , qui est généralement capturé dans le navigateur. PostHog utilise également distinct id pour associer des événements à une personne ou à une identité de service. Cela répond à qui ou quoi a émis l'événement; il ne doit pas être surchargé d'un identifiant de tâche. Une unité acceptée de travail d'agent a besoin d'une quatrième identité: Identifiant Une bonne frontière Échec lorsqu'il est utilisé comme clé de travail distinct id Personne, compte ou service Un acteur peut avoir de nombreuses tâches en même temps. $session id Visite à l'avant garde Le travail de fond peut le survivre; une visite peut commencer plusieurs tâches. $ai session id Séance AI définie par l'application Une nouvelle tentative ou redémarrage peut créer une autre session $ai trace id Une trace causale Des fragments d'ouvrages à plusieurs traces sur des tentatives de retrait et des remises work id Une tâche acceptée et son résultat Il doit être créé et propagé par l'application Créez work id lorsque le système accepte la tâche, avant le premier appel de modèle. Faites le opaque et stable. Il devrait survivre à une nouvelle tentative, redémarrer le travail, attendre l'approbation, fermer le navigateur et changer le modèle. Ne le tirez pas d'une adresse e mail, d'un prompt, d'un chemin ou d'un nom de destination. Le documentation de génération de PostHog définit le modèle d'événements de génération. Son documentation des propriétés douanières montre des exemples d'emballage JavaScript utilisant posthogProperties et posthogDistinctId , tandis que le guide de session documente $ai session id comme un regroupement choisi par l'application. La version du paquet observée via la balise npm latest était @posthog/ai 8.4.0 le 27 juillet 2026; considérez cela comme un instantané daté et vérifiez la documentation actuelle pour votre fournisseur et la version installée. Reproduisez l'expérience de 14 événements L'appareil contient cinq identifiants de travail acceptés et un identifiant de résultat délibérément erroné. Il modélise trois formes d'échec que les tableaux de bord uniquement en session cachent souvent: 1. work 102 démarre dans la session du navigateur browser b , réessaye après que le contexte de frontend a disparu, et se poursuit sous une nouvelle session AI. Son résultat vérifié arrive avec work id mais pas d'identifiants de session. 2. work 103 et work 104 démarrent à l'intérieur de la même session de navigateur. Seul work 103 a un résultat vérifié, tandis que work 104 a un événement produit mais aucun résultat. 3. work 105 complète sous la session AI ai run d , mais un événement de résultat ultérieur porte work 999 tout en conservant les mêmes valeurs de session frontend et AI. Ce ne sont pas des trucs de nommage synthétique. Ils représentent des changements de topologie courants: une nouvelle tentative de fond, des tâches concurrentes d'une visite et un événement dont les métadonnées de corrélation ne sont pas d'accord. J'ai chargé les événements en forme de PostHog dans une table SQL en mémoire et évalué trois stratégies. Une stratégie ne reçoit du crédit que lorsqu'un groupe contient à la fois une génération et le résultat attendu pour le même travail. Il enregistre une mauvaise paire lorsqu'une génération partage une identité de travail avec un groupe et un résultat pour un autre. Le résultat mesuré a été: Stratégie de corrélation Travail vérifié correct Manque de travail attendu Groups confondus Les mauvaises paires Les tentatives de réapprovisionnement en fragments : : : : : L'arrière plan $session id 2 sur 3 1 2 2 0 $ai session id 2 sur 3 1 1 1 1 work id durable 3 sur 3 0 0 0 0 La session de front end a fusionné work 103 avec work 104 et fusionné work 105 avec le mauvais résultat work 999 . La réunion de session AI a évité la collision concomitante du navigateur, mais a divisé work 102 en ai run b1 et ai run b2 ; son résultat n'avait aucune session AI à joindre. Il a également rejoint work 105 à work 999 parce que les deux portaient ai run d . La requête work id a produit six lignes: cinq unités de travail acceptées plus work 999 . Cette sixième rangée a eu un résultat et zéro génération. Au lieu de rendre work 105 vert, la requête a révélé un événement de résultat orphelin. Construire la matrice de travail dans HogQL PostHog documente l'accès à SQL sous le nom de HogQL, une enveloppe autour de ClickHouse SQL avec un accès simplifié aux propriétés d'événements. Les propriétés d'événement utilisent la notation de point, y compris les propriétés PostHog préfixes en dollars. Les agrégations prises en charge comprennent countIf , uniqExactIf et groupUniqArray . Cette requête crée une ligne par clé de travail durable: Le Guide SQL PostHog montre la table events , l'accès aux propriétés, les informations SQL et la forme de l'API HogQLQuery . Le référence d'agrégation énumère les fonctions conditionnelles et d'uniformité exacte utilisées ici. Interpréter la forme de la rangée avant de calculer un score: generation count = 0 et outcome count 0 est un résultat orphelin et non un travail vérifié. Le ai session count 1 peut être une reprise ou un transfert légitime; inspectez le retry count avant de l'appeler un double. frontend session count = 0 est normal pour les travaux de fond. Le product event count 0 montre le comportement du produit et non la vérification de la destination. trace count 1 peut être attendu lorsqu'une tâche acceptée s'étend à nouveau. Pour work 102 , la matrice rapporte deux traces, deux sessions AI, une nouvelle tentative et un résultat. La rangée reste intacte parce que la clé de travail a survécu aux deux modifications de session. C'est le résultat central de l'expérience. Vérifiez les collisions avant de faire confiance à un tableau de bord Une matrice de travail montre ce qui a été regroupé avec succès. Un audit de collision demande si les clés alternatives auraient regroupé des travaux non liés. Remplissez ceci contre les sessions de front end: Répétez avec $ai session id . Dans le fichier, l'audit de frontend renvoie browser c avec work 103 et work 104 , ainsi que browser d avec work 105 et work 999 . L'audit de la session AI renvoie ai run d avec work 105 et work 999 . Cela ne prouve pas quel événement est mauvais. Il identifie une limite où l'attribution basée sur la session est dangereuse et donne à l'exploitant un petit ensemble d'enquête. Ajouter une deuxième vérification dans l'autre sens: compter le nombre de valeurs de session distinctes par work id . Une clé de travail avec deux sessions AI et un événement de réessay est probablement la continuité des tentatives. Une clé de travail qui apparaît dans de nombreuses séances sans réessayer, remettre ou enregistrer un CV peut indiquer la réutilisation de la clé. L'appareil et le coureur sont délibérément inspectibles. Le coureur local exécute une matrice de travail SQL sur les 14 événements, puis évalue les trois stratégies de rejoindre et affirme cinq conclusions: Ce n'est pas une référence PostHog en direct. Il ne mesure pas la latence d'ingestion, les autorisations API de requête, la rétention ou les types de propriétés spécifiques au locataire. Il teste l'affirmation relationnelle derrière le tableau de bord. Avant d'utiliser la requête en production, exécutez la comme un aperçu SQL sur un ensemble canarien inoffensif et comparez les colonnes retournées avec votre appareil. L'instrument de la clé sans fuite de contenu de la tâche Appliquer la même clé de travail opaque à chaque événement pertinent. Dans les exemples d'emballage JavaScript pris en charge, la page des propriétés personnalisées documente posthogProperties et posthogDistinctId , la page des sessions place $ai session id à l'intérieur de posthogProperties et la page de confidentialité documente posthogPrivacyMode . En combinant ces options documentées, la forme de la demande ressemble à: Utilisez les options exactes prises en charge par l'intégration de votre fournisseur et la version installée. Le mode de confidentialité de PostHog exclut le $ai input et le $ai output choices ; il ne désinfecte pas les propriétés douanières arbitraires. Gardez une liste d'accès. Les bons champs sont les identifiants opaques, les numéros d'essai, les versions du flux de travail, les états de faible cardinalité, les timestamps et les hashes. Les mauvais champs sont les invites, les compléments, les secrets, les courriels, les chemins de fichiers bruts et les charges utiles du fournisseur. Émettre des événements de demande avec le même work id seulement après l'existence de leur fait sous jacent. Un événement report view opened appartient à l'analyse des produits. Un événement agent outcome verified doit suivre une lecture de retour authentique et inclure une référence hashée de destination plus le contenu vérifié ou le hash de version. Les deux événements peuvent partager une requête sans prétendre qu'ils signifient la même chose. Gardez distinct id stable pour l'acteur que vous voulez analyser. Gardez $session id et $ai session id pour leurs limites de navigation documentées. Le modèle devient plus facile à déboguer parce qu'aucun champ ne fait trois tâches. Utilisez l'expérience comme test de fonctionnement Commencez par trois canaries au lieu d' un grand tableau de bord: une tâche qui commence et se termine dans un navigateur et une session AI; une tâche qui est réessayée lors d'une nouvelle session AI après la fin de la session du navigateur; Deux tâches ont commencé à partir de la même session de navigateur, avec un seul résultat. Ajouter un événement de résultat délibérément incohérent dans un environnement d'essai. Votre matrice de travail devrait le faire apparaître comme orphelin. Les requêtes de collision de session doivent indiquer les groupes partagés. Si un tableau de bord donne l'impression que la tâche inégalée est vérifiée, la clé de joint est toujours erronée. Surveiller le contrat lui même: compte des événements AI manquants work id ; comptez les événements résultants sans ligne de génération; compter les identifiants de travail acceptés répartis entre les séances sans preuve de reprise ou de remise; mesurer le retard d'ingestion de l'événement avant de considérer une absence récente comme une défaillance; l'alerte d'une augmentation soudaine des collisions de session ou des clés de travail réutilisées. Les coûts deviennent alors plus sûrs à interpréter. Le coût de génération de somme par work id , pas seulement par session, et diviser uniquement par travail avec l'état de résultat que votre entreprise accepte. Le résultat est le coût par unité de travail vérifiée sur les essais répétés, et non le coût par trace ou visite de navigateur. où correspond Sidewisp PostHog est bien adapté à la capture d'événements, à l'analyse de produits, aux informations SQL et à l'enquête. L'expérience ici maintient ces forces tout en rendant explicite l'unité de jugement opérationnel. Le Sidewisp est destiné à devenir une couche de santé autour des temps d'exécution des agents existants, en utilisant des preuves, de la fraîcheur, de l'incertitude, des limites d'approbation et de la vérification. Il ne s'agit pas d'un temps de fonctionnement de remplacement, d'une passerelle de modèle obligatoire ou d'un substitut PostHog. Les adaptateurs de surveillance de la production et de récupération ne sont pas expédiés aujourd'hui. Sidewisp est actuellement en préversion privée. Si ce problème de joint key correspond à votre environnement, rejoignez la liste d'attente d'aperçu privé et décrivez les délais d'exécution, les limites des sessions et les résultats de votre travail. En attendant, gardez les identifiants de PostHog honnêtes: les sessions naviguent, les traces expliquent l'activité, et la clé de travail durable porte le résultat opérationnel.