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.
Référence↗
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.
Référence↗
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.
Référence↗
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.
Référence↗
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.
Référence↗
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.
Référence↗
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.
Référence↗
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.