2026-08-01T15:00:40.745Z

Observabilité de l'agent AI: preuve de l'absence de travail accepté

Une réconciliation de six scénarios détecte des travaux disparus, des états contradictoires, des contrats de location expirés et des résultats fantômes que les compteurs agrégés manquent.

Une file d'attente d'agents peut indiquer la profondeur attendue, les travailleurs peuvent continuer à émettre des spans, et les compteurs de travail terminé peuvent continuer à augmenter pendant qu'un emploi accepté a disparu. La réponse pratique est d'arrêter de comparer les totaux et de concilier les identités. Lors d'une coupure limitée, enregistrez chaque work id accepté et demandez lui d'occuper exactement un seau courant: Le ⊎ est important: il s'agit d'une union disjointe, pas d'une addition ordinaire. Une pièce d'identité trouvée dans deux seins est une contradiction. Une pièce d'identité reçue n'a pas été trouvée. Un terminal ou une ID active qui n'a jamais été acceptée est un fantôme. Cette vérification de la conservation du travail ne promet pas une exécution unique, mais elle peut prouver un fait plus étroit et utile: la preuve du plan de contrôle rend compte de chaque unité de travail acceptée exactement une fois. Les totaux égaux peuvent dissimuler un emploi manquant Supposons que le registre d'acceptation contient 1000 identifiants. La file d'attente, la table de location et le registre des terminaux contiennent également 1000 enregistrements au total. Un tableau de bord basé sur le nombre devient vert. Cette arithmétique permet une mauvaise substitution: le work 417 accepté est absent tandis que l'enregistrement terminal ghost 92 est apparu. Les chiffres sont toujours les mêmes. Les ensembles d'identité ne le sont pas. Définir les éléments de preuve à la limite t0 : A : identifiants reconnus durablement comme acceptés à t0 ou avant; Q : identifiants acceptés visibles dans la file d'attente dans l'instantané de coupure; L : identifiants acceptés avec un bail dont l'expiration est plus tard que t0 ; T : identifiants acceptés avec un enregistrement terminal reconnu. Alors vérifiez les deux directions: Le terminal a besoin d'une politique explicite. completed est terminé. cancelled peut être terminal lorsque l'annulation est autorisée et durable. Le dead lettered peut également être terminal à des fins de conservation, même s'il s'agit d'un résultat raté qui nécessite encore une attention. Une file d'attente avec des lettres mortes est utile précisément parce qu'elle isole les travaux qui n'ont pas été traités avec succès pour le diagnostic et un redressement possible, comme l'explique le La documentation de la file d'attente en lettres mortes d'Amazon SQS. Ne traitez pas leased comme un état intemporel. Dans SQS, la réception d'un message ne le supprime pas; le message devient temporairement invisible et devrait redevenir visible s'il n'est pas supprimé avant l'expiration du délai de visibilité. Les files d'attente standard utilisent également une livraison au moins une fois, donc une fenêtre de visibilité n'est pas une serrure une fois exactement. Les la sémantique de visibilité temps documentés sont la raison pour laquelle l'invariable utilise valid lease , et non toutes les lignes de location jamais écrites. Exécutez la réconciliation de six scénarios Le dispositif d'accompagnement rend la règle de décision inspectable sans avoir besoin d'un courtier. Il contient six instantanés à 2026 07 27T00:00:00Z : Scénario Les preuves Le verdict attendu États de courant mixte une file d'attente, une location inexpirée, une finalisée CONSERVED Disparu après acceptation Identification acceptée en l'absence de bouteille actuelle MISSING En file d'attente et complétée La même pièce d'identité dans deux seins DUPLICATE STATE Le bail a expiré Le bail a pris fin avant la coupe, aucune preuve de retour EXPIRED LEASE Terminal fantôme Identification complète inconnue équilibre le nombre PHANTOM Annulation explicite l'identifiant accepté a un enregistrement annulé durable CONSERVED Téléchargez work conservation fixture.json et audit work conservation.mjs à partir du paquet d'éléments de preuve de l'article, ou reproduisez leurs champs dans un répertoire local, puis exécutez: Les chiffres exacts observés étaient les suivants: PASS signifie que l'auditeur a classé les six appareils comme prévu; cela ne signifie pas que tous les appareils ont été sains. Quatre cas délibérément malsains ont été détectés. L'affaire fantôme est le piège important. Il dispose d'une pièce d'identité acceptée et de deux dossiers observés: l'identité réelle reste en file d'attente tandis qu'une pièce d'identité inconnue revendique l'achèvement. Une vérification naïve de l'égalité peut paraître équilibrée en choisissant un agrégat de chaque sous système. Remplissez les rapports de réconciliation de l'identifiant terminal non accepté à la place. Le cas du double état expose le problème inverse: chaque ID est connu, mais le même travail semble prêt pour une autre tentative et déjà terminé. C'est aussi la raison pour laquelle les traces de messages seules ne suffisent pas. Les Conventions de messagerie OpenTelemetry distinguent la réception, la transformation et le règlement, et décrivent le contexte de création pour corréler les producteurs avec les consommateurs. Ce contexte est une preuve précieuse. Une durée de traitement ne détermine pas par elle même l'état de file d'attente actuel ou un résultat terminal durable. Prenez une coupe cohérente du cycle de vie L'invariable devient trompeur lorsque ses entrées décrivent différents moments. Imaginez lire le registre d'acceptation à 12h00, la file d'attente à 12h03, et les résultats finaux à 12h08. Un emploi peut légitimement se déplacer entre ces lectures et apparaître manquant ou dupliqué. Utilisez le mécanisme de cohérence le plus fort que votre pile supporte: 1. attribuer une work id immuable, qualifiée par espace de nom, avant de reconnaître l'acceptation; 2. écrire durablement le dossier d'acceptation dans la même transaction que l'enquête, ou conserver une relation de boîte de réception récupérable; 3. capture de l'état de file d'attente et de location à un point d'eau nommé, d'une compensation, d'une capture instantanée de base de données ou d'une brève barrière d'observation; 4. inclure lease expires at et non seulement leased=true ; 5. ajouter des résultats terminaux avec le même work id , un type de résultat et un timestamp durable; 6. Concilier uniquement les enregistrements dont les règles de visibilité les placent sur le même côté de t0 . Si les systèmes ne peuvent pas fournir une coupe cohérente, retournez UNVERIFIABLE plutôt que d'inventer un résultat sain. Une courte période de calme peut réduire les chars mais ne remplace pas un contrat de cohérence. Documenter la déformation maximale de l'instantané et retarder une alerte jusqu'à ce qu'un élément de travail reste anormal au delà de cette limite. Les identifiants stables sont tout aussi importants. Une nouvelle tentative devrait normalement conserver le work id logique et recevoir un attempt id séparé. Si chaque tentative obtient une nouvelle identité de travail, l'audit ne peut pas distinguer une nouvelle tentative de travail. Si les identifiants sont réutilisés entre les locataires ou les files d'attente, un enregistrement terminal légitime peut ressembler à un fantôme ou satisfaire faussement un autre emploi. Un bail expiré mérite son propre verdict. Il se peut que ce soit déjà visible dans le courtier, mais une vieille ligne de bail ne peut pas prouver cette transition. Exiger de nouvelles preuves de file d'attente ou une nouvelle génération de bail avant de l'appeler actif. Cela permet de maintenir l'attente séparée de l'arrêt: un bail valable peut représenter le travail; le travail en file d'attente peut représenter une attente légitime; un bail expiré sans retour observé est non résolu. Mettez chaque verdict dans une réponse limitée. L'audit devrait préparer l'enquête, pas lancer une répétition large. Pour MISSING , vérifiez d'abord la déformation des instantanés, puis inspectez la limite d'acceptation et toute boîte de réception transactionnelle. Conservez les preuves avant de recommencer. La recréation d'un travail à partir d'un enregistrement incomplet peut dupliquer un effet externe. Pour le DUPLICATE STATE , arrêtez la prise automatique de cette pièce d'identité si la file d'attente permet une retenue réversible. Comparer les preuves finales avec tout reçu d'effet avant de décider si la copie en file d'attente est périmée. Une seule étiquette de terminal peut être erronée; un élément de file d'attente encore visible peut également être une réplique retardée. Pour EXPIRED LEASE , demandez au courtier une nouvelle visibilité et vérifiez la génération de travailleurs. Une location limitée ne peut être sûre que lorsque le titulaire précédent est clôturé ou prouvé mort. L'audit de conservation détecte l'état non résolu; il n'autorise pas la récupération. Pour PHANTOM , vérifiez l'espace de noms d'ID, les erreurs d'ingestion et la provenance du répertoire terminal. Ne supprimez pas l'enregistrement inconnu simplement pour équilibrer l'équation. Il pourrait s'agir d'un travail valable effectué par un autre locataire, d'une file d'attente ou d'une fenêtre d'observation. Enfin, la conservation n'est pas la qualité du résultat. Un enregistrement completed peut toujours indiquer un produit manquant ou incorrect. Suivez ce test de cycle de vie avec une vérification déterministique des résultats lorsque cela est possible. Les deux vérifications répondent à des questions différentes: Est ce que chaque emploi accepté a été pris en compte? et Est ce que le travail a produit le résultat prévu? Sidewisp est actuellement en préversion privée. La collecte des agents de production et de la santé, les adaptateurs de file d'attente et la récupération en temps d'exécution ne sont généralement pas expédiés. La conservation du travail est un exemple des preuves qu'une future couche de santé pourrait évaluer; ce n'est pas une affirmation selon laquelle Sidewisp recueille actuellement ces dossiers ou agit sur des agents vivants. L'avantage à court terme est d'utiliser des identifiants de travail stables et de tester l'invariable localement avant d'ajouter une réponse automatisée.