2026-08-01T05:02:17.238Z

Un propriétaire, des preuves récentes, un travail vérifié

Construisez un chien de surveillance à propriétaire unique qui préserve l'attente et l'incertitude, bloque le contrôle dupliqué et vérifie le résultat demandé avant l'achèvement.

Un chien de surveillance agent est un observateur séparé qui suit la course d'un autre agent, décide s'il fonctionne, attend légitimement, est coincé, est incertain, a échoué ou terminé, et vérifie le résultat revendiqué. Le défaut utile est un chien de garde à lire principalement avec un bail, une cadence lente basée sur des preuves, et aucune autorité de mutation automatique. Le processus est vivant et le travail demandé est correct sont des verdicts distincts. Cette définition résout également une ambiguïté dans les résultats de recherche actuels. Watchdog peut signifier un vieux daemon de redémarrage d'infrastructure, un produit de sécurité AI ou un agent qui supervise un autre agent. Ce guide aborde la troisième signification. La compétence agent watchdog actuelle de Builder.io décrit la même délivrance concrète: attendre un autre agent, reconstruire la demande, puis vérifier les réclamations contre les différences, les fichiers, les tests, les données d'identification, les captures d'écran et l'état d'examen. Son mode de réparation est séparé et nécessite une autorisation. Cette séparation est le bon point de départ. Donnez exactement un chien de garde la propriété Un chien de garde a besoin d'une identité et d'un bail. Sans eux, deux contrôles réguliers peuvent tous deux conclure qu'ils possèdent la même course. Même si les deux diagnostics sont corrects, deux poussées, deux tentatives de redémarrage ou deux répétitions peuvent produire des effets répétés. Utilisez un disque comme celui ci: Le runId lie l'observateur à une œuvre. watchdogId identifie le propriétaire. L'expiration force la réélection après un observateur accidenté au lieu de laisser la propriété permanente derrière. observedAt dit à quel point le verdict est frais; il n'est pas interchangeable avec lastProgressAt . Un observateur peut tenir un bilan des progrès récents alors que sa propre connexion est devenue obsolète. Avant chaque verdict, appliquez trois règles de propriété: 1. Il doit y avoir exactement un contrat de location non expiré pour la course. 2. L'observateur doit mettre à jour les preuves avant de classer ou de recommander une intervention. 3. Un chien de garde remplaçant ne peut prendre le relais qu'après l'expiration du bail précédent ou après sa libération explicite. Si deux identifiants existent, retournez conflict . Ne laissez pas les deux contribuer à devenir une politique implicite de concurrence. Portes séparées d'observation, d'intervention et de résultat Kubernetes documente les sondages de démarrage, de préparation et de vitalité séparément parce qu'ils répondent à des questions différentes et déclenchent des actions différentes. Sa documentation met également en garde contre le fait qu'une mauvaise règle de vitesse peut transformer les redémarrages sous charge en échec en cascade. Un chien de surveillance AI agent a besoin d'une séparation équivalente, avec une passerelle de sortie supplémentaire. V Porte d'observation: Est ce que les preuves sont suffisamment récentes pour classer la course ? Vérifiez l'horodatage de l'observateur, la disponibilité de l'agent, la réception des progrès, les métadonnées d'attente et l'état terminal actuel. Un délai ou un échantillon manquant donne uncertain ; il ne prouve pas stuck . Porte d'intervention: Est ce que l'action est justifiée et autorisée? Un chien de garde qui ne lit que peut signaler une carte d'identité obsolète, une attente non appartenant à un propriétaire ou dix minutes sans progrès utiles. Il peut ne pas déduire la permission de redémarrer, annuler, modifier les fichiers, envoyer des messages ou dépenser plus de budget. Donnez à chaque action autorisée sa propre réessayer, son propre temps et sa propre limite de coût. O porte de sortie: Le travail demandé a t il passé son vérificateur? Un état de processus terminal n'est que la preuve de l'activité. Pour une tâche de code, le reçu peut combiner un engagement attendu, un test ciblé propre et une capture d'écran requise. Pour une tâche de publication, elle peut nécessiter une parité API, une page HTTP 200, une inclusion de sitemap et des actifs rendus. Pour un effet secondaire externe, il peut être nécessaire d'avoir un enregistrement de lecture de destination ou d'idempotence. Les directives SRE de Google font la même distinction pratique d'une autre direction: les signaux de boîte blanche expliquent les internes, tandis que les contrôles de boîte noire exposent le mauvais contenu qu'un statut de protocole réussi ne peut pas détecter. Le chien de garde devrait préserver les deux. Les journaux peuvent expliquer pourquoi la course s'est arrêtée; la réception du résultat détermine si la demande de l'utilisateur a été satisfaite. Utiliser une règle d'État qui préserve l'incertitude L'ordre suivant est important. La propriété et la fraîcheur précèdent le progrès. Un auto report terminal arrive avant un temporiseur générique, mais il ne contourne toujours pas la vérification. La fraîcheur de l'observation de deux minutes et la fenêtre de progression de dix minutes sont des valeurs fixes, et non des défauts universels. Dérivez les du flux de travail. Un déploiement qui produit normalement un jalon toutes les quarante minutes a besoin d'une fenêtre de progression différente d'une exécution de codage interactive qui change les fichiers toutes les minutes. Exécutez la règle contre les cas qui varient d'une condition à l'autre: Le cas de l'accusé Les preuves modifiées Le verdict L'action suivante est limitée Des progrès récents Une nouvelle étape de l'essai working Observez plus tard. Attendant propriétaire Propriétaire et date limite future waiting Notification à une date limite proche Attendre sans propriété Aucun propriétaire ou date limite needs human Assignez les deux Retour en retard Aucun progrès depuis 18 minutes. stuck Préparez un diagnostic Observateur fixe La dernière observation est de quatre minutes. uncertain Les preuves actualisées Des chiens de garde dupliqués Deux identifiants de chien de garde en direct conflict Choisir un propriétaire Rapporté réalisé Aucun reçu de résultat audit required Vérifiez l' artefact Réalisé vérifié Passes de réception complete Le bail de délivrance Dans l'appareil exécutable utilisé pour cet article, les huit classifications attendues ont été adoptées. Deux comparaisons sont particulièrement utiles. Les progrès récents avec un observateur vivant sont working ; la même preuve avec deux identifiants d'observateur vivant est conflict . Un auto rapport complété avec un reçu manquant est audit required ; l'ajout d'un reçu vérifié est le seul changement nécessaire pour atteindre complete . Choisissez la cadence des changements attendus de la preuve Les sondages plus rapides ne détectent pas nécessairement les échecs plus tôt. Il peut créer des coûts, du bruit, des pressions de limite de taux et des jugements répétés sur des données inchangées. Définir la cadence à partir des données probantes du taux de changement attendu et de la conséquence du retard. Pour une longue recherche, une observation de cinq minutes peut être raisonnable si les étapes arrivent normalement toutes les quinze minutes. Les besoins de livraison planifiés sont vérifiés autour du début et de la date limite prévues, et non des sondages constants tout au long de la journée. Une attente d'approbation humaine a besoin d'un propriétaire nommé et d'une date limite d'escalade; les appels répétés ne fournissent aucune information. Un calendrier utile a quatre chiffres: intervalle d'observation lorsque la disponibilité et l'état sont renouvelés; limite de fraîcheur lorsque les preuves du propre observateur deviennent inutilisables; fenêtre de progression l'écart normal le plus long entre des étapes significatives; Action refroidissement le délai minimum avant une autre intervention autorisée. Enregistrez la dernière preuve hash ainsi que le timestamp. Les nouvelles lignes de journaux ne sont pas nécessairement de nouveaux progrès. Un appel à l'outil répété, une défaillance de test inchangée ou un projet identique régénéré ne devraient pas réinitialiser l'horloge de progression simplement parce que le processus est actif. Le défaut de récupération raisonnable est toujours report first. Si la course est stuck , préparez un diagnostic limité ou un poussé. S'il s'agit de waiting , envoyez la décision au propriétaire désigné. Si c'est uncertain , recueillez de meilleures preuves. Si c'est conflict , retirez les superviseurs supplémentaires. Seule une politique approuvée séparément devrait permettre un redémarrage réversible, et l'organisme de surveillance doit vérifier les progrès utiles par la suite. Gardez le chien de garde plus petit que le travail Un agent de surveillance ne devrait pas devenir un second runtime, un réviseur illimité, et un fixateur autonome à la fois. Ses entrées utiles minimales sont la demande initiale, les modifications ultérieures de portée, une identité de fonctionnement stable, des preuves de progrès fraîches, la propriété en attente, l'état du terminal et un vérificateur de résultats spécifique à la tâche. Tout le reste devrait gagner son coût de collecte. Cette conception a une limite: la télémétrie générique ne peut s'avérer un délivrable arbitraire. Quelqu'un doit définir ce que signifie "faire" pour la tâche. Lorsqu'aucun contrôle déterministe n'existe, le chien de surveillance peut rediriger le résultat vers un humain ou un juge à portée restreinte, préserver les preuves et étiqueter la confiance. Il ne devrait pas produire un état vert. Le territoire prévu du produit Sidewisp est la couche de santé entourant les agents existants: accessibilité, progrès utiles, attente, outils, résultats et limites de récupération sûres. Sidewisp est actuellement en préversion privée. Son moteur de surveillance de la production et ses adaptateurs d'exécution ne sont généralement pas expédiés, le contrat dans cet article est donc un modèle d'exploitation que vous pouvez mettre en œuvre dans votre exécution actuellepas une affirmation selon laquelle Sidewisp surveille ou répare déjà des agents en direct. Commencez par une course et un observateur. Requérir un bail, garder l'observation lue principalement, préserver uncertain , et définir le reçu du résultat avant le début des travaux. C'est suffisant pour rendre un agent de surveillance utile sans laisser la surveillance devenir une autre source d'échec. Les sources Builder.io agent observateur README à l'exécution 51bb048 Les Kubernètes: vitalité, préparation et démarrage des sondes Google SRE Book: Surveillance des systèmes distribués