L'Agent n'Arrêtait Pas de Me Mentir. Jusqu'à ce que J'utilise le Débogueur d'Agent IA d'Apidog.

Ashley Innocent

Ashley Innocent

20 May 2026

L'Agent n'Arrêtait Pas de Me Mentir. Jusqu'à ce que J'utilise le Débogueur d'Agent IA d'Apidog.

enterprise.banner.title

enterprise.banner.feature1

enterprise.banner.feature2

enterprise.banner.feature3

enterprise.banner.ctaB

Un mardi après-midi. Douze tours plus tard dans une session de débogage, et l'agent me disait avec assurance que notre endpoint /users répondait en quarante-sept secondes. Le vrai chiffre était quarante-sept millisecondes.

Je traquais ce bug depuis deux jours. Chaque fois que j'ajoutais une instruction print au serveur MCP, la réponse de l'agent se décalait juste assez pour me faire croire que j'avançais. Chaque fois que je réécrivais l'invite système, la réponse semblait plus plausible. Rien de tout cela n'était juste.

Ce que je n'avais pas fait, jusqu'à cet après-midi, c'était d'ouvrir la trace d'exécution réelle et de regarder ce qui était passé entre le modèle et l'outil. C'est à cela que sert l'Apidog AI Agent Debugger. Je l'avais installé trois semaines plus tôt et je l'avais oublié. Il m'a fallu douze minutes pour trouver le bug.

C'est ce qui m'a surpris.

Le bug que je traquais

La configuration était simple. Un agent basé sur GPT-5.5. Un serveur MCP que j'avais écrit en un week-end, exposant un outil get_response_time(endpoint) qui interrogeait notre pipeline de métriques. Une invite système d'environ quarante mots. L'invite utilisateur : « Quelle est la vitesse du endpoint /users ? »

L'agent a répondu rapidement. Il a répondu avec assurance. Il a répondu faux, à chaque fois, de différentes manières. Parfois « le endpoint répond en 47 secondes. » Parfois « environ 0,05 seconde. » Une fois, de manière mémorable, « la performance est acceptable. »

J'avais fait ce que l'on fait habituellement. Ajouté des logs au serveur MCP. Lu la réponse du modèle token par token. Comparé les invites système. Juré. J'avais trois fenêtres de terminal ouvertes et une page Notion d'hypothèses échouées le mardi matin.

Le problème avec le débogage des agents est que le bug se trouve rarement là où vous regardez en premier. Il peut se trouver dans l'invite système, dans le choix du modèle, dans la définition de l'outil, dans les paramètres que le modèle a transmis à l'outil, dans les données que l'outil a renvoyées, ou dans la façon dont le modèle a interprété ces données. Six endroits. Un log de console ne vous en montre qu'un.

Ce que le panneau Traces montre réellement

Le débogueur Apidog s'ouvre en trois colonnes. Les sessions à gauche. Les tours au milieu. Les traces à droite. Cliquez sur n'importe quelle session et la colonne du milieu vous montrera le dialogue : message utilisateur, réponse du modèle, appel d'outil, retour d'outil, prochaine réponse du modèle. Cliquez sur n'importe quel tour et la colonne de droite se développera pour afficher l'arbre d'exécution complet en dessous.

L'arbre d'exécution est la partie qui me manquait. Chaque étape, dans l'ordre :

J'ai ouvert la session défaillante. L'appel d'outil semblait correct : get_response_time(endpoint="/users"). Le modèle avait choisi le bon outil avec le bon argument.

Ensuite, j'ai développé le résultat de l'outil.

{"value": 47, "p95": 89, "samples": 1240}

C'était ça. Le pipeline de métriques renvoyait la valeur en millisecondes. Le modèle a supposé des secondes. 47 est devenu « 47 secondes » via une hallucination confiante qui n'a pas pris la peine de remettre en question l'unité. L'outil était correct. Le modèle était faux. Mon invite système n'avait aucune instruction sur les unités, et la réponse de l'outil n'avait aucune annotation d'unité.

Douze minutes après l'ouverture du débogueur. Deux jours que j'incriminais l'invite système.

La correction a pris six lignes

J'ai changé deux choses. Dans le serveur MCP, j'ai mis à jour la forme de la réponse :

{
  "value": { "amount": 47, "unit": "ms" },
  "p95": { "amount": 89, "unit": "ms" },
  "samples": 1240
}

Puis j'ai ajouté une phrase à l'invite système : « Les résultats des outils renvoient les unités explicitement. Lisez-les attentivement. »

J'ai exécuté la même invite /users trois fois de plus. Trois sessions différentes sur le panneau de gauche. Toutes les trois ont correctement renvoyé « le endpoint répond à environ 47 ms » avec une ventilation milliseconde-à-percentile dans le raisonnement du modèle. Le coût en tokens était dix-huit pour cent inférieur à mes exécutions défaillantes, probablement parce que le modèle ne générait pas de prose de récupération autour de ses propres mauvaises hypothèses.

J'ai exécuté la même invite sur Claude Opus 4.7 dans une deuxième session, côte à côte. Même résultat, deux fois le coût, légèrement plus verbeux. Je savais quel modèle allait partir en production.

C'est la partie de l'outil qui m'a valu mon respect. Pas la découverte de bugs, ce que tout bon débogueur devrait faire. Mais la comparaison de modèles, exécutée sur des configurations identiques avec des métriques récapitulatives dans le panneau de gauche : nombre de tours, nombre d'étapes, temps, tokens, dollars. J'avais fait cette comparaison dans une feuille Google pendant six mois. Maintenant, c'était trois clics.

Ce que je faisais mal

L'idée simpliste est que l'AI Agent Debugger est un outil de logging. Ce n'est pas le cas. Les outils de logging vous montrent ce qui s'est passé. Le débogueur vous montre ce que le modèle et l'outil ont réellement échangé, ce qui est une couche différente.

Si vous écrivez des agents et que vous faites ce que je faisais, c'est-à-dire lire la sortie du modèle et deviner la cause des échecs, voici ce que je voudrais contester. Vous ne déboguez pas l'agent. Vous déboguez votre hypothèse sur l'agent. Ce sont des choses différentes, et seule l'une d'elles vous mène à une solution.

Ce que j'avais refusé d'intégrer pendant six mois, c'est que l'agent est un système fermé entre le modèle, l'invite, les outils et les réponses des outils. Le bug réside toujours dans l'un de ces quatre éléments. Si vous pouvez voir les quatre en même temps, vous pouvez trouver le bug en douze minutes. Sinon, vous pouvez le traquer pendant une semaine.

L'autre chose que le débogueur a révélée, à laquelle je ne m'attendais pas, était le non-déterminisme de mon propre agent. J'ai exécuté la même invite cinq fois après la correction, juste pour confirmer. Trois exécutions ont appelé get_response_time une fois. Deux exécutions l'ont appelé deux fois, la deuxième fois avec le chemin du endpoint dans une casse différente. Mon schéma d'outil était sensible à la casse. Je ne l'avais pas remarqué car tous mes cas de test défaillants utilisaient la minuscule. C'était un deuxième bug que j'aurais livré sans le voir.

L'analyse multi-exécutions est la fonctionnalité que j'utiliserai le plus à l'avenir. Cliquez sur Exécuter cinq fois. Regardez le panneau des sessions. Tout ce qui varie d'une exécution à l'autre est un endroit où votre agent est fragile.

Essayez par vous-même : un guide complet d'installation

Si vous souhaitez la même configuration que celle que j'utilisais pendant la chasse aux bugs, voici le chemin depuis une installation fraîche jusqu'à une session de débogage en cours. Cinq écrans, dans l'ordre.

Étape 1 : Créer une nouvelle session de débogage d'agent

Ouvrez Apidog et cliquez sur AI Agent Debugger dans la barre d'onglets supérieure. La section supérieure de la page configure le modèle et l'état d'exécution.

L'onglet AI Agent Debugger avec les sélecteurs de fournisseur et de modèle en haut, l'URL de base remplie automatiquement, et le bouton Exécuter en haut à droite.

Étape 2 : Configurer les invites

L'onglet Invites comporte deux zones de saisie.

Cliquez sur Exécuter en haut à droite lorsque les deux sont définis. Si vous souhaitez que le champ de saisie soit effacé automatiquement après chaque exécution, cochez Effacer après envoi.

Étape 3 : Configurer les outils

L'onglet Outils répertorie tout ce que l'agent peut appeler au moment de l'exécution. Le nombre sur l'onglet est le décompte actuel des outils disponibles ou configurés.

Les outils intégrés sont livrés avec le débogueur. Activez-les ou désactivez-les selon les besoins.

Outil Ce qu'il fait
bash Exécute des commandes dans une session shell persistante
web_fetch Récupère du contenu web et le convertit en Markdown, texte ou HTML
read Lit des fichiers texte, image ou PDF
edit Applique des remplacements de chaînes précis aux fichiers
write Crée ou écrase des fichiers
grep Recherche du contenu de fichier avec des expressions régulières
glob Trouve des fichiers en utilisant des motifs glob
kill_shell Réinitialise la session shell actuelle

Les outils MCP ajoutent des systèmes externes ou des capacités personnalisées via des serveurs MCP. Trois méthodes de connexion :

Les serveurs MCP qui nécessitent une authentification acceptent les en-têtes de requête ou les flux OAuth 2.0. Une fois la connexion établie, choisissez les outils que le serveur expose à l'agent.

Étape 4 : Configurer les compétences, l'authentification et les paramètres du modèle

Trois onglets plus petits complètent la configuration.

Étape 5 : Lire les trois panneaux

Après avoir cliqué sur Exécuter, la session que vous venez de créer apparaît dans le panneau de gauche. Chaque session affiche un résumé sur une ligne :

Session 3
1 tour · 1 étape · 10s · 3.1k tokens · $0.02
gpt-5.5

Lorsqu'un appel d'outil échoue ou que le modèle renvoie une exception, l'étape défaillante est juste là dans le panneau Traces, avec ses entrées et sorties visibles. Pas besoin de fouiller les logs.

Étape 6 : Comparer les performances du modèle

Même invite, même configuration d'outil, modèle différent. Chaque exécution crée une nouvelle session, et le panneau de gauche vous permet de les comparer côte à côte.

Métriques utiles à comparer :

Le point à retenir

Deux jours de débogage se sont transformés en un après-midi, et je n'ai pas appris la leçon sur le bug. Je l'ai apprise sur l'outillage. La raison pour laquelle je cherchais la mauvaise solution était que les outils que j'utilisais ne me montraient pas ce que j'avais besoin de voir. J'avais une sortie de modèle et une sortie d'outil, et aucun cadre partagé pour les examiner ensemble. Le cadre partagé est tout l'intérêt.

Si vous avez écrit plus d'un agent et que vous n'avez pas encore ouvert l'AI Agent Debugger d'Apidog, le prochain agent que vous livrerez aura un bug qui se trouve entre le modèle et l'outil. Vous y passerez une semaine. Vous rédigerez une page Notion d'hypothèses échouées. Le bug sera exactement là où le débogueur vous l'aurait montré dès le premier jour.

Téléchargez Apidog et ouvrez-le sur le prochain agent qui vous donne une mauvaise réponse avec une voix confiante. Douze minutes. Quarante-sept millisecondes, pas quarante-sept secondes.

La référence complète des fonctionnalités, y compris la configuration du transport MCP et la disponibilité des plans, se trouve dans Apidog AI Agent Debugger : disponibilité, couverture et configuration.

bouton

Pratiquez le Design-first d'API dans Apidog

Découvrez une manière plus simple de créer et utiliser des API

L'Agent n'Arrêtait Pas de Me Mentir. Jusqu'à ce que J'utilise le Débogueur d'Agent IA d'Apidog.