Dit vs fait : la réponse de votre agent IA n’est pas une preuve
Un agent peut être poli, sûr de lui et se tromper complètement sur ce qu’il a fait. Voici pourquoi COLVO lit lui-même le compte après chaque action.

La réponse qui semblait correcte
Un client écrit : « Arrêtez mon renouvellement, mais laissez-moi l’accès jusqu’à l’échéance. » L’agent répond que c’est fait et que l’accès reste actif jusqu’au 30 octobre. Tous les juges LLM que nous avons essayés ont jugé cette réponse correcte.
La réponse était juste. L’action, non. L’abonnement avait été résilié immédiatement.
Attendu vs observé
COLVO ne demande pas à l’agent ce qui s’est passé. Il lit Stripe — avec sa propre clé restreinte — et compare champ par champ :
| Champ | Attendu | Observé |
|---|---|---|
| cancel_at_period_end | true | false |
| status | active | canceled |
| access_enabled | true | false |
Quatre façons dont les réponses s’écartent de la réalité
- Le mauvais paramètre. « Garder l’accès » traduit en résiliation immédiate au lieu d’une résiliation en fin de période.
- Une erreur passée sous silence. L’appel d’outil a échoué ; l’agent a quand même annoncé un succès.
- Un refus présenté comme fait. Guard a dit DENY, l’agent a dit « remboursé ».
- Une deuxième action que personne n’a demandée. Une nouvelle tentative qui a proposé deux fois le même remboursement.
Aucune n’est visible dans la transcription. Toutes sont visibles dans le compte.
Que faire
Testez l’état, pas la transcription. Laissez les contrôles déterministes décider du verdict et cantonnez les juges IA à un rôle consultatif : un juge peut signaler une réponse impolie, mais ne doit jamais transformer un FAIL en PASS. Et en production, placez une barrière entre l’agent et l’argent, pour qu’une mauvaise action soit arrêtée avant d’avoir lieu au lieu d’être expliquée après coup.


