2026-08-01T15:00:34.733Z
Test de l'agent AI: construire une porte de libération d'injection de défaillance
Une passerelle de sortie de huit cas injecte des défaillances d'outil, de réessayer, de mémoire, d'attente, de délai et de résultatet note l'environnement au lieu de faire confiance à la réponse finale.
Le test de l'agent AI devrait répondre à une question de libération: lorsqu'un outil, une autorisation, une limite de mémoire, une approbation ou une date limite se comportent mal, l'agent préserve t il la sécurité et produit il toujours des travaux vérifiables? Le défaut raisonnable est une petite suite d'injection de défaillance. Donnez à chaque essai un défaut contrôlé, enregistrez la transcription de l'agent, puis classez l'environnement séparément: accès à l'outil, effets externes, continuité, propriété d'attente, état de délai et livrable promis. Un message final fluide est une preuve de diagnostic utile, mais ce n'est pas un oracle de libération. Cet article construit cette passerelle comme un fichier Node.js à huit cas. Une affaire est terminée en toute sécurité. On entre dans une attente d'approbation légitime. Six devrait bloquer la libération. La suite est délibérément suffisamment petite pour exécuter une demande de tirage et suffisamment explicite pour montrer quel contrat a échoué. Une réponse peut passer pendant que l'agent échoue Les tests d'application traditionnels appellent souvent une fonction et affirment sa valeur de retour. Un agent utilisant des outils modifie la forme du test. Il peut prendre plusieurs tours, choisir des outils, modifier un système externe, faire une pause pour une personne, réessayer après des pannes de transport ambiguës et signaler l'achèvement sans laisser le résultat attendu derrière lui. Le guide d'ingénierie d'Anthropic à évaluations des agents sépare une tâche, chaque essai, ses notes, la transcription et le résultat final. Sa distinction est pratique: la transcription peut indiquer qu'un vol a été réservé alors que la base de données de réservation de l'environnement indique le contraire. Pour un test opérationnel, l'environnement gagne. Cela nous donne trois objets différents à inspecter: Evidence de transcription: Ce que l'agent a dit, quels outils il a demandé et ce que chaque appel a répondu. EEffect evidence: ce qui a réellement changé dans le système en aval, y compris le nombre d'effets et l'identité de l'idempotence. O preuve de résultat: si le livrable visible à l'utilisateur existe et satisfait à un contrat déterministe. Ne les réduisez pas en un seul score. Un appel à l'outil peut renvoyer une pause après l'effet. Une transcription peut contenir un résumé poli alors que le fichier est absent. Un artefact final peut exister deux fois parce qu'une nouvelle tentative a utilisé une nouvelle clé d'idempotence. Chaque cas a besoin d'une réparation différente. L'environnement de test sûr est également important. OWASPs Orientation excessive de l'Agence recommande une fonctionnalité minimale de l'outil, des autorisations minimales en aval, une autorisation en aval et une approbation humaine pour des actions à impact élevé. Votre harnais d'essai doit suivre la même limite. Utilisez des appareils, des espaces de noms jetables, des faux adaptateurs de paiement ou de messagerie, et des comptes qui ne peuvent pas atteindre de vrais clients. Un test d'échec ne devrait jamais devenir l'incident qu'il devait prévenir. Injecter une défaillance opérationnelle par essai Commencez par un chemin heureux, puis ajoutez des échecs qui franchissent les limites opérationnelles de l'agent. La matrice utile minimale n'est pas 10 indications difficiles. Il s'agit d'un ensemble de conditions modifiées avec des conséquences vérifiables. Le procès Condition d'injection Oracle déterministe État attendu Un accouchement sain pas de faute un effet et une livrabilité vérifiée PASS L'approbation légitime l'outil nécessite l'autorité humaine propriétaire, date limite, et le jeton de reprise existent EXPECTED WAIT Les livraisons manquantes réponse à l'achèvement, résultat absent défaillance du contrat de résultat FAIL OUTCOME Effect dupliqué réessayer crée l'action deux fois le nombre d'effets dépasse un FAIL DUPLICATE EFFECT Perte d'autorisation les certificats d'outil manquent de portée requise le résultat d'accès est refusé FAIL TOOL ACCESS Perte de contexte le redémarrage laisse tomber une décision requise réception de continuité ne correspond pas FAIL MEMORY Attendre sans propriétaire l'approbation demandée, mais non mise en route Wait manque de propriétaire, de date limite ou de jeton de relance FAIL UNROUTED WAIT Expiration du délai les délais de fin du budget avant la vérification dépassé la date limite absolue FAIL DEADLINE L'attente légitime est un contrôle positif, pas une concession. Un agent qui s'arrête avant une action à fort impact peut être en meilleure santé que celui qui improvise autour d'une autorité manquante. L'attente ne passe que lorsqu'elle est acheminée: un propriétaire nommé peut décider, une date limite empêche l'abandon silencieux, et un jeton de CV relie la décision au travail suspendu. Injecter une seule erreur primaire à chaque essai. Si vous annulez une carte d'identité, une mémoire corrompue, et expire la date limite immédiatement, la suite peut bloquer correctement la libération mais vous enseigne très peu. Les essais de faute unique préservent l'attribution. Ajoutez les défaillances complémentaires plus tard, après chaque contrat individuel fonctionne. Utilisez des adaptateurs au lieu d'instructions rapides pour injecter des défauts. Une requête qui dit prétendre que la base de données a refusé l'accès teste le jeu de rôle. Un adaptateur de base de données qui renvoie la même forme de déni que la production teste le chemin de contrôle. De même, injectez un délai de transport après l'enregistrement d'un faux effet externe pour reproduire la dangereuse ambiguïté: la demande a peut être réussi même si l'appelant n'a pas vu de réponse. L'oracle doit être spécifique à la tâche. Pour un agent de codage, effectuez des tests et inspectez la différence de référentiel. Pour un agent de rapport, demandez le fichier, le schéma, les sources citées et la parité de destination. Pour un agent de soutien, consultez le dossier de cas plutôt que de rechercher sa réponse finale pour resolved. Préférer les contrôles basés sur le code où l'état est directement observable. Ajoutez une évaluation du modèle calibrée ou une évaluation humaine de la qualité subjective après avoir passé les contrôles déterministes de sécurité et d'achèvement. Exécutez la porte de sortie à huit cas L'artefact accompagnant contient failure injection fixture.json , audit failure injection.mjs et un rapport attendu. Le classifiant est intentionnellement clair: L' exécuter avec Node.js: Le résumé exact observé était: responseOnlyFalsePassCount est le numéro révélateur. L'essai de livrabilité manquante dit qu'il est terminé, et l'essai d'effet duplicat dit aussi qu'il est terminé. Un élève qui acceptait la présence d'un message d'achèvement passerait les deux. La porte de l'environnement les bloque pour différentes raisons. L'ordre des chèques fait partie du contrat. Le déni de l'outil est la première limite échouée dans un essai, tandis que les effets dupliqués ont la priorité sur un produit final vérifié: produire l'objet correct deux fois n'est pas une finition saine. Un temps d'attente est évalué avant le résultat car le travail n'est pas encore censé être terminé. Votre demande peut avoir besoin d'un autre ordre de priorité, mais écrivez le et testez explicitement les cas ambiguës. L'appareil fait également une distinction utile entre les tentatives et les effets. effectAttempts: 2 peut être bien quand une clé d'idempotence stable quitte effectCount: 1 . La reprise dangereuse fournie a effectCount: 2 . Sans un faux registre en aval, le harnais pouvait compter les appels mais ne pouvait pas prouver combien de changements externes ont eu lieu. Pour les agents stochastiques, une simple exécution n'est pas suffisante. Gardez l'oracle d'état déterministe, puis exécutez plusieurs essais par tâche et rapportez la distribution. Une suite de régression devrait avoir un taux de réussite attendu élevé; une suite de capacités difficiles peut commencer plus bas. Ne cachez jamais de variance dans une moyenne unique qui permet d'annuler un effet sévère ou un échec de permission par de fortes notes en prose ailleurs. Transformer les classifications en décision de libération Une règle de libération compacte est plus facile à défendre qu'un score de préparation pondéré: Tout résultat de FAIL doit être traité comme une demande de réparation et non comme une autorisation de récupération automatique du harnais. FAIL TOOL ACCESS : fixer la pièce d'identité de l'essai ou le chemin de refus d'accès de l'agent; ne pas élargir les autorisations de production juste pour rendre l'essai vert. FAIL DUPLICATE EFFECT : préserver une identité logique de l'opération au cours des essais répétés et vérifier l'effet avant une autre tentative. FAIL MEMORY : définir le reçu de décision minimum qui doit survivre au redémarrage, puis tester la limite de persistance réelle. FAIL UNROUTED WAIT : ajouter un propriétaire, une date limite, un reçu de décision et l'identité du travail réalisable. FAIL DEADLINE : propager un délai absolu et un temps de réserve pour l'annulation, le nettoyage et la vérification des résultats. FAIL OUTCOME : réparer le chemin de livraison ou son oracle; modifier le libellé d'achèvement ne résout pas l'échec. Gardez les limites claires. Cette suite de huit cas ne prouve pas la fiabilité générale. Il ne couvre que les erreurs que vous avez injectées et les affirmations que vous avez codées. Il ne découvrira pas un comportement inconnu des fournisseurs, ne jugera pas si un rapport de recherche est perspicace, ni ne prouvera que les horaires de production et les informations de crédibilité restent sains la semaine prochaine. Les tâches subjectives nécessitent toujours un examen calibré et les systèmes de production doivent toujours surveiller la disponibilité réelle, les progrès, l'attente, l'accès aux outils, les résultats et les coûts. L'habitude utile est de transformer chaque incident de production en un essai de régression désinfecté. Préserver la forme de l'entrée, injecter la plus petite condition causale, supprimer les secrets et les données des clients, et ajouter le plus fort oracle de résultat disponible. Avec le temps, la suite de libération devient un enregistrement des échecs que l'agent n'est plus autorisé à répéter. Sidewisp est actuellement en préversion privée. L'expérience en direct est un site d'accès précoce et une démonstration interactive; la collecte des agents de production et de la santé, les adaptateurs de temps d'exécution et la récupération automatisée ne sont généralement pas expédiées. Le modèle de test ci dessus est quelque chose que les équipes peuvent mettre en œuvre dans leur propre harnais aujourd'hui. Il montre également le type de limite explicite de preuve qu'une future couche de santé devrait respecter: une activité n'est pas un progrès, un message n'est pas un résultat et une commande n'est pas une récupération tant que le résultat prévu n'est pas vérifié.