Anciennement appelé Azure AI Services ou Azure Cognitive Services, il s’agit d’une collection unifiée de fonctionnalités d’IA prédéfinies au sein de la plateforme Microsoft Foundry
Bonjour @frederic lamontagne ,
Merci pour ce rapport détaillé ainsi que pour la reproduction minimale et épurée du problème ; cela nous est d'une grande aide.
D'après le comportement que vous avez décrit, il ne semble pas s'agir d'un problème lié au modèle ou aux quotas. Au contraire, tous les indices convergent vers un blocage survenant en amont de l'inférence, au sein de l'environnement d'exécution (runtime) de l'Agent Azure AI Foundry ; ce blocage est très probablement déclenché par les « Prompt Shields » (détection des risques de jailbreak) inclus dans la configuration par défaut des garde-fous.
Plusieurs indicateurs viennent étayer cette hypothèse :
total_tokens = 0 et reasoning_duration = 0
→ La requête est bloquée avant même d'atteindre le modèle.
Statut du message = incomplete, accompagné d'un refus générique
→ Ce comportement est cohérent avec une interruption précoce déclenchée par un garde-fou.
Comportement différent entre le « Model Playground » et l'« Agent Playground »
→ Les Agents Foundry appliquent des couches de sécurité supplémentaires (Prompt Shields, classification des entrées, politiques d'orchestration) qui ne sont pas mises en œuvre de la même manière dans le Model Playground.
Par défaut, la configuration « Microsoft.Default » intègre un Prompt Shield pour les requêtes utilisateur, chargé de détecter les tentatives de jailbreak ou les attaques par injection de prompt avant l'étape d'inférence. Dans certains cas, ce mécanisme peut générer des faux positifs, notamment pour :
Les prompts courts ou dépourvus de contexte (par ex. : « bonjour »)
Les formulations ambiguës (par ex. : « calcul de contrainte »)
Étapes suivantes recommandées
Pour confirmer la cause du problème et y remédier :
- Basculez le mode des Prompt Shields de « Bloquer » vers « Annoter »
Dans le portail Foundry :
Agent → Garde-fous et contrôles → Prompt Shields
Modifiez l'action du Prompt Shield utilisateur pour la définir sur « Annoter ».
Cette manipulation aura pour effets de :
Permettre à la requête d'atteindre le modèle.
Faire apparaître les résultats du filtrage de prompt (« prompt_filter_results »), incluant des détails tels que le type d'attaque (« attack_subtype »).
C'est le moyen le plus rapide de vérifier si les Prompt Shields sont bien à l'origine du problème.
- Examinez les « prompt_filter_results »
Une fois le mode « Annoter » activé, consultez la trace d'exécution pour y rechercher les éléments suivants :
attack_subtype (type d'attaque)
Détails de la classification des risques
Cela permettra de déterminer avec précision ce que le système signale comme problématique. 3. Créer un profil de garde-fou personnalisé
Si un faux positif est confirmé :
Clonez le profil Microsoft.Default.
Assouplissez ou supprimez le contrôle de détection de « jailbreak » (contournement des instructions) au niveau de l'invite utilisateur.
Assignez ce garde-fou personnalisé à votre agent.
- Réduire l'ambiguïté des invites (à des fins de test)
L'enrichissement léger des invites peut aider à éviter les erreurs de classification heuristique :
Au lieu de :
« Je souhaite effectuer un calcul de contrainte. »
Essayez :
« Je souhaite effectuer un calcul de contrainte mécanique pour une poutre soumise à une charge. »
- Escalade (si nécessaire)
Si le problème persiste ou si vous confirmez un faux positif :
Communiquez l'ID de corrélation / l'ID de trace au support Microsoft.
Soumettez, si vous le souhaitez, un rapport d'ajustement des filtres ou de faux positif.
Compte tenu des éléments de reproduction que vous avez fournis :
Blocage en phase de pré-inférence.
Comportement déterministe.
Disparité entre le Playground et l'agent.
Ces éléments suggèrent fortement un faux positif lié aux « Prompt Shields » (boucliers d'invites) ou une régression au niveau du filtrage d'exécution de l'agent.
Ce comportement est tout à fait cohérent avec un blocage en phase de pré-inférence par les Prompt Shields au sein d'Azure AI Foundry Agents, plutôt qu'avec un problème inhérent au modèle de base. L'ajustement du comportement des boucliers (passage en mode « Annotate » ou utilisation de garde-fous personnalisés) devrait vous permettre à la fois de confirmer le diagnostic et de débloquer le scénario.
Si vous êtes en mesure de partager la charge utile (payload) prompt_filter_results issue d'une exécution bloquée, je serais ravi de vous aider à en approfondir l'analyse.