← Zakaria Khchiche · Tous les articles

5 bugs silencieux dans Microsoft Agent Framework, et comment savoir si vos agents sont touchés

Lien de consentement perdu, citations disparues, appels d’outils en parallèle, filtres Qdrant faux, proxy ignoré : ce que j’ai trouvé en auditant le framework d’agents de Microsoft.

Zakaria Khchiche · · également publié sur Medium

Microsoft Agent Framework est le framework open source de Microsoft pour construire des agents IA en Python et en .NET. En octobre 2026, j’ai audité plusieurs de ses connecteurs Python. J’y ai trouvé cinq bugs du même type : aucun ne lève d’erreur. L’agent répond, les tests passent, mais une information est perdue ou une option est ignorée.

Pour chacun, j’ai ouvert une issue avec une reproduction autonome, puis une pull request avec le correctif et des tests qui échouent sans lui. Quatre des cinq bugs ont été reproduits par le système de tri automatique de Microsoft.

En résumé

1. Foundry : le lien de consentement OAuth disparaît

Quand un outil Foundry (boîte à outils, connexion MCP) a besoin que l’utilisateur se connecte, le service renvoie un élément oauth_consent_request avec un lien. En streaming, le framework le transmet. Sans streaming, qui est le mode par défaut d’agent.run(), cet élément tombait dans une branche « non géré », simplement journalisée en debug. Résultat : un message vide, pas d’exception, et l’utilisateur ne sait pas qu’il doit se connecter.

À vérifier chez vous : si vos agents Foundry utilisent des outils qui demandent un consentement, testez le premier appel d’un nouvel utilisateur sans streaming. Une réponse vide est le symptôme.

2. Anthropic : les citations sont perdues en streaming

Avec les citations activées (recherche web, documents), Claude envoie en streaming les sources sous forme d’événements citations_delta. Le connecteur n’avait pas de cas pour ce type d’événement. Le texte arrivait entier, mais la liste des sources était vide. Pour un agent qui doit justifier ses réponses, c’est la partie la plus importante qui manque.

À vérifier : comparez les annotations d’une même question avec et sans stream=True.

3. Anthropic : l’interdiction des appels en parallèle est ignorée

Chez Anthropic, on désactive les appels d’outils en parallèle via tool_choice. Le connecteur ne transmettait l’option allow_multiple_tool_calls=False que si tool_choice était fixé. Or la boucle d’appel d’outils remet tool_choice à vide après le premier tour quand il vaut « required ». Le premier appel respecte la consigne, les suivants non. Si vos outils ne supportent pas d’être appelés en même temps (écritures en base, actions métier), c’est un vrai risque.

À vérifier : inspectez les requêtes envoyées après le premier tour de la boucle : disable_parallel_tool_use doit y figurer.

4. Qdrant 1.19 : des filtres qui renvoient de mauvais résultats

Qdrant 1.19 a changé deux comportements : un champ absent compte désormais comme « 0 valeur », et le test « est null » correspond aussi aux listes qui contiennent null. Le connecteur s’appuyait sur l’ancien comportement. Sur un serveur 1.19.1, 10 des 39 cas de la suite de tests de filtres échouent, et certains filtrages lèvent une erreur de désérialisation. La CI du projet tournant sur Qdrant 1.16, rien ne le signalait. Le tri automatique de Microsoft a obtenu exactement les mêmes chiffres.

À vérifier : si vous avez mis à jour votre serveur Qdrant, rejouez vos requêtes filtrées sur des données qui contiennent des champs absents ou des listes avec null.

5. TypeSafe : le proxy de l’entreprise est ignoré

Le connecteur du modèle Jev remplaçait le transport HTTP de la bibliothèque TypeSafe pour rajouter un en-tête d’authentification que la bibliothèque envoyait déjà. Effet de bord : la bibliothèque HTTP n’applique les variables HTTPS_PROXY et NO_PROXY que si on ne lui impose pas de transport. Derrière un proxy d’entreprise, le connecteur tentait une connexion directe et échouait, alors que la bibliothèque seule fonctionnait.

Ce que ces bugs ont en commun

Les liens

Toutes sur github.com/microsoft/agent-framework.

À propos

Zakaria Khchiche est Tech Lead Data & IA freelance à Paris : plus de 200 agents IA en production chez de grands comptes. LinkedIn : https://www.linkedin.com/in/zakariakhchiche/ · Site : https://zakariakhchiche.github.io/

Vous voulez que vos équipes construisent des agents fiables ? J’anime avec Spar-x, organisme certifié Qualiopi, des formations finançables par les OPCO : https://zakariakhchiche.github.io/agents-ia-production/