Guide - AI-103 Microsoft Azure AI Apps and Agents Developer Associate
Dernière révision : juin 2026
Une référence concise des modèles d'architecture évalués par l'examen AI-103. Lisez de haut en bas ou sautez à une section.
Planifier et gérer une solution Azure AI
Une fonctionnalité de chat fonctionne à grand volume avec des échanges courts et simples et un budget serré en termes de latence et de coût.
Déployez un small language model (SLM) tel que Phi du catalogue de modèles Foundry au lieu d'un LLM de pointe.
Pourquoi: Les SLM réduisent les coûts et la latence pour les tâches ciblées ; réservez les grands LLM pour le raisonnement complexe. Adaptez la taille du modèle à la tâche, pas à la marque.
Un seul agent doit raisonner sur des images et du texte téléchargés par l'utilisateur en une seule requête.
Choisissez un modèle multimodal (par exemple, la famille GPT-4o) dans le catalogue Foundry plutôt que d'enchaîner un modèle de vision à un LLM textuel uniquement.
Pourquoi: Les modèles multimodaux natifs acceptent les images et le texte dans une seule invite ; un modèle textuel uniquement impose un transfert de légende avec perte qui ignore les détails visuels.
Les réponses doivent être basées sur une base de connaissances d'entreprise privée, et non sur le pré-entraînement du modèle.
Construisez une couche de récupération : indexez le corpus dans Azure AI Search avec des vector embeddings et basez le modèle via RAG sur cet index.
Pourquoi: Le grounding injecte un contexte récupéré et citable lors de l'inférence ; le fine-tuning intègre les connaissances de manière statique et ne peut pas les citer ou les mettre à jour à faible coût.
Un agent doit appeler des API REST internes et également récupérer des informations à partir d'un magasin de documents indexé.
Enregistrez les API comme agent tools (fonction/OpenAPI) et attachez l'index AI Search comme source de connaissances à l'agent Foundry.
Pourquoi: Les tools donnent à l'agent la capacité d'agir ; les sources de connaissances permettent une récupération ancrée. Ce sont des surfaces d'intégration distinctes, pas le même connecteur.
Plusieurs équipes ont besoin de configurations d'agents, de connexions et de déploiements isolés sous une gouvernance partagée.
Utilisez un Foundry hub avec des projets Foundry par équipe ; chaque projet définit ses propres connexions, déploiements et accès.
Pourquoi: Le hub centralise la mise en réseau, la politique et les ressources partagées ; le projet est l'unité d'espace de travail pour une application ou une équipe. Ne partagez pas un projet entre les équipes.
Une application de production nécessite une résidence des données prévisible et un débit réservé pour un déploiement de modèle.
Utilisez un déploiement Standard (régional) ou à débit provisionné (PTU) plutôt qu'un déploiement Global pour les charges de travail sensibles à la résidence et à haut débit.
Pourquoi: Les déploiements globaux acheminent vers n'importe quelle région pour la capacité ; Standard fixe la région, et PTU réserve la capacité pour une latence stable. Choisissez en fonction des besoins de résidence et de SLA.
Les définitions d'invites et d'agents doivent passer de la phase de développement à la phase de production avec examen et restauration.
Stockez les définitions de flux d'invites / d'agents en tant que code dans un référentiel et promouvez-les à travers les environnements avec des pipelines Azure DevOps ou GitHub Actions.
Pourquoi: Traitez les invites et la configuration des agents comme des artefacts versionnés ; les modifications manuelles du portail en production n'ont pas de piste d'audit ou de chemin de restauration.
Un pic de trafic déclenche des erreurs 429 contre un déploiement de modèle.
Augmentez le quota TPM/RPM du déploiement là où c'est disponible, ajoutez une nouvelle tentative côté client avec un backoff exponentiel et envisagez un déploiement PTU pour une capacité garantie.
Pourquoi: Le quota est le plafond de tokens par minute ; le backoff atténue les étranglements transitoires. La création de ressources dupliquées sans planification de quota ne fait que déplacer le goulot d'étranglement.
Les dépenses sont imprévisibles et dominées par de longues invites RAG.
Limitez le nombre maximal de tokens de sortie, réduisez le contexte récupéré au top-k, mettez en cache le contexte système réutilisable et suivez l'utilisation des tokens par déploiement dans Azure Monitor.
Pourquoi: Le coût est proportionnel aux tokens d'entrée plus les tokens de sortie ; la réduction du contexte et des sorties est le levier direct. Changer de région ou de SKU modifie rarement de manière significative le prix par token.
Au fil des semaines, la qualité des réponses et la fidélité du grounding semblent se dégrader en production.
Exécutez des évaluations en ligne continues dans Foundry pour la groundedness, la pertinence et la cohérence sur le trafic en direct échantillonné et alertez en cas de baisse des scores.
Pourquoi: Les évaluateurs planifiés détectent les dérives que vous ne pouvez pas voir dans les métriques de latence brutes ; les tableaux de bord CPU/latence seuls ne révèlent jamais une régression de groundedness.
Les réponses RAG deviennent obsolètes car de nouveaux documents ne sont pas récupérés.
Surveillez l'historique d'exécution de l'indexeur AI Search et le nombre de documents ; planifiez l'indexation incrémentielle et alertez en cas d'échec des exécutions de l'indexeur.
Pourquoi: La qualité de la récupération se dégrade silencieusement lorsque l'indexeur échoue ou prend du retard ; les métriques côté modèle semblent correctes car la lacune se situe dans le pipeline de données.
Une application doit appeler un déploiement de modèle Foundry sans secrets dans la configuration.
Activez une managed identity sur l'application et accordez-lui le rôle "Cognitive Services OpenAI User" ; authentifiez-vous avec les tokens Entra ID, et non avec les clés API.
Pourquoi: L'authentification Entra sans clé élimine les secrets susceptibles de fuir et centralise le RBAC ; stocker des clés API, même dans Key Vault, laisse toujours une clé à faire pivoter et à protéger.
Le trafic Foundry ne doit jamais transiter par l'internet public.
Placez la ressource Foundry et ses dépendances derrière des private endpoints, désactivez l'accès au réseau public et résolvez via des zones DNS privées.
Pourquoi: Les private endpoints acheminent le trafic vers le VNet ; les listes d'autorisation IP du pare-feu routent toujours via des public endpoints et offrent une isolation plus faible.
Les réponses générées incluent occasionnellement du contenu haineux ou violent.
Appliquez un filtre Azure AI Content Safety au déploiement avec des seuils de gravité appropriés pour les catégories haine, sexe, violence et auto-mutilation.
Pourquoi: Les filtres de contenu examinent les invites et les complétions côté serveur ; se fier uniquement à une instruction d'invite système est facilement contournable par des jailbreaks.
Un agent autonome peut exécuter des actions irréversibles telles que l'émission de remboursements.
Configurez une porte d'approbation humaine pour les outils à fort impact et limitez l'agent à un ensemble d'actions autorisées.
Pourquoi: Les modes d'approbation et les contraintes d'accès aux outils limitent l'autonomie ; un agent autonome non contraint n'a pas de frein sur un appel d'outil destructeur.
Les auditeurs doivent voir quelles sources et quels appels d'outils ont produit une réponse donnée.
Activez le traçage dans Foundry (OpenTelemetry) pour capturer les invites, les citations récupérées, les invocations d'outils et les sorties par requête.
Pourquoi: Les traces de bout en bout donnent la provenance et la reproductibilité ; les métriques agrégées de tokens seules ne peuvent pas reconstruire la chaîne de raisonnement d'une seule réponse.
Implémenter des solutions d'IA générative et d'agents
Un service backend doit appeler des modèles et des agents définis dans un projet Foundry.
Utilisez le Foundry SDK (AIProjectClient) avec la chaîne de connexion du projet et un DefaultAzureCredential pour obtenir des clients de modèle et d'agent.
Pourquoi: Le client de projet résout les connexions et les déploiements de manière centralisée ; coder en dur les endpoints et les clés par modèle contourne la gouvernance du projet.
Créez une application de questions-réponses basée sur des documents de politique.
Intégrez et indexez les documents, récupérez les top-k chunks par requête, et passez-les comme contexte dans la complétion de chat avec une instruction de citation de sources.
Pourquoi: RAG maintient les connaissances à jour et citables sans réentraînement ; passer le corpus complet dans l'invite sature la fenêtre de contexte et augmente les coûts.
Le modèle doit consulter le statut des commandes en direct pendant une conversation.
Définissez un tool avec un JSON schema, laissez le modèle émettre un appel de tool, exécutez-le côté serveur et renvoyez le résultat pour que le modèle le résume.
Pourquoi: L'appel de fonction/tool permet au modèle d'invoquer des systèmes réels de manière déterministe ; lui demander de "deviner" le statut produit des fabrications.
Une tâche nécessite plusieurs appels d'outils dépendants avant une réponse finale.
Exécutez une boucle d'utilisation d'outil : renvoyez chaque résultat d'outil au modèle et itérez jusqu'à ce qu'il renvoie un message final, avec une limite d'itération maximale.
Pourquoi: Les boucles d'outils itératives prennent en charge le raisonnement en plusieurs étapes ; un seul aller-retour ne peut pas enchaîner les recherches dépendantes, et une boucle sans limite peut s'emballer.
Avant le déploiement, quantifiez la fréquence à laquelle une application RAG hallucine ou s'éloigne du sujet.
Exécutez les évaluateurs Foundry pour la groundedness, la pertinence et la cohérence sur un ensemble de test étiqueté et bloquez le déploiement en fonction des scores seuils.
Pourquoi: Les évaluateurs intégrés fournissent des signaux mesurables de qualité et de sécurité ; examiner quelques échantillons ne permet pas de détecter les fabrications systématiques.
Définissez un agent de support avec une persona, des objectifs et des limites clairs.
Définissez les instructions système de l'agent (rôle, objectifs, règles de refus) et n'attachez que les outils dont il a besoin pour son champ d'action.
Pourquoi: Des instructions précises et un accès limité aux outils maintiennent l'agent sur sa tâche ; des instructions larges et tous les outils invitent à l'extension du périmètre et à des actions dangereuses.
Un agent doit se souvenir du contexte à travers les échanges au sein d'une session.
Utilisez les threads du Foundry Agent Service, qui persistent l'historique des messages par conversation afin que chaque exécution voie les échanges précédents.
Pourquoi: Les threads fournissent une mémoire de conversation gérée ; renvoyer manuellement l'intégralité de la transcription à chaque appel est fragile et facile à tronquer incorrectement.
Un agent a besoin de web grounding et d'exécution de code sans personnalisation complexe.
Attachez les outils d'agent Foundry intégrés tels que Grounding avec Bing Search et le Code Interpreter plutôt que d'implémenter des intégrations personnalisées.
Pourquoi: Les outils gérés sont gouvernés et supportés prêts à l'emploi ; les réimplémentations personnalisées ajoutent de la maintenance et ignorent les contrôles de sécurité de la plateforme.
Un agent principal doit déléguer les questions de facturation à un agent de facturation spécialisé.
Utilisez des agents connectés : exposez l'agent de facturation comme un outil que l'agent principal peut appeler, afin qu'il achemine les sous-tâches vers des spécialistes.
Pourquoi: Les agents connectés permettent la délégation hiérarchique ; entasser tous les domaines dans un seul méga-agent surcharge les instructions et dégrade la précision.
Un flux de travail nécessite un planificateur, un chercheur et un rédacteur collaborant avec un état partagé.
Orchestrez-les avec un framework multi-agent (Semantic Kernel / AutoGen sur Foundry) en utilisant un modèle d'orchestration défini et un contexte partagé.
Pourquoi: Les frameworks gèrent le tour par tour, l'état et la terminaison ; le passage de chaînes ad hoc entre les agents n'a pas de coordination ou de condition d'arrêt.
Un agent fonctionne sans surveillance pendant la nuit et ne doit pas prendre de mesures risquées seul.
Limitez-le avec des outils autorisés, des budgets par action, des filtres de contenu et un point de contrôle qui escalade les étapes à fort impact pour approbation.
Pourquoi: Des mesures de sécurité superposées assurent la sécurité de l'autonomie ; une boucle autonome avec un accès complet aux outils et sans porte d'approbation peut causer des dommages irréversibles.
Un agent échoue par intermittence au milieu d'une tâche et vous devez trouver l'étape défaillante.
Inspectez les étapes tracées de l'exécution et les entrées/sorties des appels d'outils dans Foundry pour localiser l'outil défaillant ou l'argument mal formé.
Pourquoi: Les traces au niveau des étapes identifient précisément où une exécution a échoué ; un seul message d'erreur final masque l'appel d'outil ou l'étape de raisonnement qui a réellement échoué.
Les sorties sont incohérentes et ignorent les instructions de formatage.
Utilisez un message système clair, des exemples few-shot et des contraintes de sortie explicites ; pour une forme stricte, activez les structured outputs / JSON schema.
Pourquoi: Les invites structurées et les sorties imposées par schéma rendent les résultats fiables ; augmenter la température ou réessayer aveuglément ne résout pas le respect des instructions.
Une tâche de rédaction créative semble trop répétitive ; une tâche d'extraction de données est trop aléatoire.
Augmentez la température/top-p pour la tâche créative et diminuez-les vers 0 pour l'extraction afin de la rendre déterministe.
Pourquoi: Les paramètres d'échantillonnage échangent la diversité contre le déterminisme ; changer de modèle est excessif lorsque le réglage des paramètres est la véritable cause.
Un agent de raisonnement commet des erreurs logiques évitables sur des tâches difficiles.
Ajoutez une étape de réflexion / auto-critique où l'agent examine et révise son brouillon, ou utilisez un modèle de raisonnement pour cette étape.
Pourquoi: Le chain-of-thought et l'auto-critique améliorent la précision des tâches difficiles ; un seul passage en avant n'a aucune chance de corriger sa propre erreur.
Les opérations ont besoin des dépenses en tokens, de la latence et des signaux de sécurité par requête en production.
Émettez des traces et des métriques OpenTelemetry depuis l'application vers Azure Monitor / Application Insights, en capturant les tokens, la latence et les drapeaux de sécurité du contenu.
Pourquoi: L'observabilité unifiée lie le coût, les performances et la sécurité ; le scraping manuel des journaux ne peut pas corréler un tour lent avec son utilisation de tokens.
Une application mélange une classification bon marché avec un raisonnement complexe occasionnel.
Orchestrez plusieurs déploiements : acheminez les tours simples vers un SLM et les tours difficiles vers un LLM de pointe derrière une couche d'application.
Pourquoi: Le routage de modèle optimise le coût et la qualité par tour ; utiliser un modèle premium pour tout surpaye la majorité facile.
Implémenter des solutions de vision par ordinateur
Une application marketing doit générer des images originales à partir d'invites textuelles.
Déployez un modèle de génération d'images (par exemple DALL-E / GPT-image dans le catalogue Foundry) et appelez-le avec l'invite textuelle et les paramètres de taille.
Pourquoi: Les modèles d'images génératifs synthétisent de nouveaux visuels ; l'API Image Analysis (vision) ne décrit que les images existantes, elle ne peut pas les créer.
Remplacez uniquement l'arrière-plan d'une photo de produit existante, en conservant le produit intact.
Utilisez le point de terminaison d'édition d'image (inpainting) avec l'image source plus un masque qui ne marque que la région éditable.
Pourquoi: Un masque restreint les modifications à la zone peinte ; un simple appel text-to-image régénère l'ensemble du cadre et perd le produit original.
Produisez de courts clips vidéo générés à partir d'une description textuelle.
Utilisez un modèle text-to-video tel que Sora dans le catalogue Foundry avec des paramètres d'invite, de durée et de résolution.
Pourquoi: La génération de vidéo est une famille de modèles distincte ; les modèles d'image produisent des images uniques et ne peuvent pas produire de mouvement temporel.
Les utilisateurs posent des questions de forme libre sur une image de graphique téléchargée.
Envoyez l'image plus la question à un LLM multimodal (GPT-4o) pour une réponse visuelle aux questions et une réponse en langage naturel.
Pourquoi: Le chat multimodal gère les QA visuelles ouvertes ; le balisage d'images à taxonomie fixe renvoie des étiquettes, pas des réponses à des questions arbitraires.
Générez automatiquement un texte alternatif descriptif pour des milliers d'images afin d'améliorer l'accessibilité.
Utilisez la capacité de légendage / dense-captions d'Image Analysis pour produire des descriptions lisibles par l'homme à grande échelle.
Pourquoi: Le légendage produit directement un texte alternatif concis ; la détection d'objets renvoie des cadres de délimitation qui doivent encore être transformés en prose.
Extrayez des champs structurés et des informations au niveau du segment à partir de longues vidéos enregistrées.
Utilisez Azure AI Content Understanding avec un analyseur vidéo pour obtenir une sortie structurée et définie par schéma sur l'ensemble de la chronologie.
Pourquoi: Content Understanding produit une sortie structurée et fondée à travers les modalités ; les appels d'image image par image ne donnent pas de structure sensible à la chronologie.
Un agent multimodal lit des images utilisateur qui peuvent contenir du texte d'instruction masqué.
Activez les prompt shields / la détection d'injection indirecte et traitez le texte à l'intérieur des images comme des données non fiables, et non comme des instructions.
Pourquoi: Le texte d'image intégré est un vecteur d'injection d'invite indirecte classique ; passer directement le texte OCR'd dans l'invite système permet aux attaquants de détourner l'agent.
Extrayez les noms, les dates et les montants des e-mails dans un enregistrement JSON typé.
Invitez un LLM avec un JSON schema cible et activez les structured outputs pour que chaque champ soit renvoyé dans une forme fixe.
Pourquoi: L'extraction LLM contrainte par schéma gère les formats ouverts et garantit un JSON analysable ; les regex fragiles échouent face à la variété du langage naturel.
Produisez un résumé concis et réécrit de longues transcriptions de support.
Utilisez un LLM pour la summarization abstractive avec une instruction de longueur et de focus, ou la capacité de summarization du service Language.
Pourquoi: Les résumés abstractifs paraphrasent l'essentiel ; la sélection extractive de phrases ne fait que copier des phrases et peut manquer le point général.
Classez les messages clients par sentiment et signalez le ton agressif.
Utilisez un LLM (ou l'API Language sentiment) pour étiqueter la polarité et détecter le ton, renvoyant une catégorie et une confiance.
Pourquoi: L'analyse de sentiment/ton est une tâche de classification avec des étiquettes définies ; la génération de texte libre sans schéma d'étiquettes est difficile à router en aval.
Traduisez de grands volumes de chaînes d'interface utilisateur avec précision et à faible coût dans 30 langues.
Utilisez Azure AI Translator pour la traduction en masse et déterministe ; réservez un LLM pour les passages nuancés et riches en contexte.
Pourquoi: Translator est conçu à cet effet, moins cher et cohérent à grande échelle ; un LLM par chaîne coûte plus cher et peut varier en ton au fil des exécutions.
Un agent vocal doit transcrire l'audio de l'appelant en temps réel.
Utilisez le service Speech speech-to-text en temps réel (ou transcription rapide) pour alimenter le texte dans le pipeline de l'agent.
Pourquoi: Le STT en streaming fournit des transcriptions partielles à faible latence pour les conversations en direct ; la transcription par lots est destinée aux fichiers hors ligne, pas aux échanges en direct.
L'agent doit répondre avec un audio parlé au son naturel.
Utilisez la synthèse vocale neuronale (Neural Text to Speech) avec une voix appropriée et le SSML pour contrôler la prosodie, les pauses et la prononciation.
Pourquoi: La TTS neuronale plus le SSML produit une parole réaliste et contrôlable ; le texte brut sans SSML donne une phraséologie plate sur les nombres et les noms.
Implémenter des solutions d'extraction d'informations
La récupération uniquement vectorielle manque les correspondances exactes de mots-clés et d'identifiants de code.
Utilisez la hybrid search dans Azure AI Search (vecteur plus mot-clé) avec le semantic ranking pour réorganiser les résultats fusionnés.
Pourquoi: La recherche hybride plus le reranking sémantique surpasse l'un ou l'autre signal seul ; la recherche purement vectorielle peut manquer des termes littéraux, la recherche purement par mot-clé manque la paraphrase.
Le corpus inclut des PDF numérisés dont le texte n'est pas sélectionnable.
Ajoutez une capacité cognitive OCR (Document Intelligence / Vision) au skillset d'indexation afin que le texte numérisé soit extrait avant le chunking et l'embedding.
Pourquoi: L'enrichissement OCR fait apparaître le texte des images pour la récupération ; l'indexation du PDF numérisé brut ne produit rien de recherchable.
Pendant l'ingestion, vous avez besoin de l'OCR, de l'extraction de phrases clés et de la traduction appliquées par document.
Définissez un skillset AI Search enchaînant les capacités cognitives nécessaires, projetant les sorties dans les champs d'index que l'indexeur remplit.
Pourquoi: Un skillset orchestre l'enrichissement de manière déclarative au moment de l'indexation ; le faire dans le code de l'application par requête répète le travail et brise la réutilisation.
Vous voulez que le chunking et l'embedding soient gérés à l'intérieur du pipeline d'index, et non dans le code de l'application.
Utilisez la vectorization intégrée d'AI Search pour diviser les documents et appeler un modèle d'embedding pendant l'indexation et au moment de la requête.
Pourquoi: La vectorization intégrée maintient la cohérence du chunking/embedding entre l'ingestion et la requête ; l'embedding côté client personnalisé risque une non-concordance de modèle.
Extrayez des champs structurés à partir de factures avec des mises en page variées.
Utilisez un modèle de facture prédéfini Document Intelligence, ou entraînez un modèle personnalisé, pour renvoyer des champs typés avec confiance et des régions de délimitation.
Pourquoi: Document Intelligence comprend la mise en page et renvoie des champs typés ; un simple vidage OCR ne donne que du texte brut sans sémantique de champ.
Vous avez besoin d'une représentation Markdown propre et ancrée de documents mixtes pour RAG.
Utilisez les analyseurs Content Understanding pour produire une sortie structurée / Markdown qui préserve les en-têtes, les tableaux et le grounding des champs.
Pourquoi: Le Markdown ancré conserve la structure et les citations pour la récupération ; le texte brut aplati perd les tableaux et le contexte de section dont le modèle a besoin.
Un agent Foundry doit récupérer des informations de votre index de recherche enrichi au moment de l'exécution.
Ajoutez l'index AI Search comme source de connaissances / tool sur l'agent afin que chaque exécution ancre les réponses dans les résultats récupérés et cités.
Pourquoi: Connecter l'index comme un tool d'agent permet une récupération ancrée en direct ; coller des extraits statiques dans les instructions ne peut pas rester à jour avec le corpus.