Skill Microsoft Foundry
Ce skill aide les développeurs à travailler avec les ressources Microsoft Foundry, couvrant la découverte et le déploiement de modèles, le cycle de vie complet des agents IA, les workflows d'évaluation et le dépannage.
Conditions préalables à l'exécution
OBLIGATOIRE : Avant d'exécuter UN QUELCONQUE workflow, vous DEVEZ d'abord appeler l'outil Azure MCP
foundryet inspecter les outils Foundry MCP disponibles et les paramètres associés. Traitez cet appel initialfoundrycomme une étape de découverte/aide. Pour ce skill, Azure MCPfoundryest le point d'entrée obligatoire pour les opérations MCP liées à Foundry.
Sub-Skills
OBLIGATOIRE : Avant d'exécuter UN QUELCONQUE workflow spécifique, vous DEVEZ lire le document sub-skill correspondant. N'appelez pas les outils MCP spécifiques au workflow pour un workflow sans lire son document skill. Cela s'applique même si vous connaissez déjà les paramètres de l'outil MCP — le document skill contient les étapes de workflow requises, les pré-vérifications et la logique de validation qui doivent être suivies. Cette règle s'applique à chaque nouveau message utilisateur qui déclenche un workflow différent, même si le skill est déjà chargé.
Ce skill inclut des sub-skills spécialisés pour des workflows spécifiques. Utilisez-les plutôt que le skill principal quand ils correspondent à votre tâche :
| Sub-Skill | Quand l'utiliser | Référence |
|---|---|---|
| deploy | Conteneuriser, générer, pousser vers ACR, créer/mettre à jour/cloner des déploiements d'agents | deploy |
| invoke | Envoyer des messages à un agent, conversations simple ou multi-tour | invoke |
| observe | Évaluer la qualité de l'agent, exécuter des evals batch, analyser les défaillances, optimiser les prompts, améliorer les instructions de l'agent, comparer les versions, configurer la supervision CI/CD et activer l'évaluation continue en production | observe |
| trace | Interroger les traces, analyser la latence/défaillances, corréler les résultats eval à des réponses spécifiques via App Insights customEvents |
trace |
| troubleshoot | Afficher les logs des agents hébergés, interroger la télémétrie, diagnostiquer les défaillances | troubleshoot |
| create | Créer de nouvelles applications d'agents hébergés. Supporte Microsoft Agent Framework, LangGraph ou les frameworks personnalisés en Python ou C#, sur les protocoles responses ou invocations. |
create |
| eval-datasets | Récolter les traces de production dans les datasets d'évaluation, gérer les versions et les divisions de datasets, suivre les métriques d'évaluation au fil du temps, détecter les régressions et maintenir la traçabilité complète de la trace au déploiement. Utiliser pour : créer dataset à partir de traces, versioning de dataset, tendances d'évaluation, détection de régressions, comparaison de datasets, traçabilité eval. | eval-datasets |
| project/create | Créer un nouveau projet Azure AI Foundry pour héberger des agents et des modèles. À utiliser lors de l'onboarding à Foundry ou de la configuration d'une nouvelle infrastructure. | project/create/create-foundry-project.md |
| resource/create | Créer une ressource multi-service Azure AI Services (ressource Foundry) en utilisant Azure CLI. À utiliser lors du provisionnement manuel des ressources AI Services avec un contrôle granulaire. | resource/create/create-foundry-resource.md |
| private-network | Répondre aux questions sur l'isolation réseau Foundry et déployer Foundry avec isolation VNet (BYO VNet, VNet géré, hybride). Couvre les concepts d'architecture, la sélection de template, le déploiement et la validation post-déploiement. | resource/private-network/private-network.md |
| models/deploy-model | Déploiement de modèle unifié avec routage intelligent. Gère les déploiements preset rapides, les déploiements entièrement personnalisés (version/SKU/capacité/RAI) et la découverte de capacité entre régions. Achemine vers les sub-skills : preset (déploiement rapide), customize (contrôle total), capacity (trouver la disponibilité). |
models/deploy-model/SKILL.md |
| quota | Gérer les quotas et la capacité des ressources Microsoft Foundry. À utiliser lors de la vérification de l'utilisation des quotas, du dépannage des défaillances de déploiement dues à un quota insuffisant, de la demande d'augmentation de quota ou de la planification de capacité. | quota/quota.md |
| rbac | Gérer les permissions RBAC, les attributions de rôles, les identités gérées et les principaux de service pour les ressources Microsoft Foundry. À utiliser pour le contrôle d'accès, l'audit des permissions et la configuration CI/CD. | rbac/rbac.md |
💡 Conseil : Pour un flux d'onboarding complet :
project/create(public) ouprivate-network(isolation VNet) →models/deploy-model→ workflows d'agents (create→deploy→invoke).
💡 Déploiement de modèle : Utilisez
models/deploy-modelpour tous les scénarios de déploiement — il achemine intelligemment entre le déploiement preset rapide, le déploiement personnalisé avec contrôle total et la découverte de capacité entre régions.
💡 Optimisation de prompt : Pour les demandes comme « optimise mon prompt » ou « améliore mes instructions d'agent », chargez observe et utilisez l'outil MCP
prompt_optimizevia ce workflow piloté par eval.
Cycle de vie de l'infrastructure
Appariez l'intention de l'utilisateur au workflow d'infrastructure correct.
| Intention utilisateur | Workflow |
|---|---|
| « Créer Foundry » / « Configurer Foundry » (ambigu) | Utilisez AskUserQuestion : (a) juste une ressource AI Services, (b) un projet avec accès public, ou (c) un projet avec isolation réseau ? Achemine : (a) → resource/create, (b) → project/create, (c) → private-network |
| Configurer Foundry avec isolation VNet | private-network |
| Créer un projet Foundry (public) | project/create |
| Créer une ressource Foundry brute | resource/create |
Cycle de vie du développement d'agent
Appariez l'intention de l'utilisateur au workflow d'agent correct. Lisez chaque sub-skill dans l'ordre avant d'exécuter.
| Intention utilisateur | Workflow (lire dans l'ordre) |
|---|---|
| Créer un nouvel agent à partir de zéro | create → deploy → invoke |
| Déployer un agent (le code existe déjà) | deploy → invoke |
| Mettre à jour/redéployer un agent après des changements de code | deploy → invoke |
| Appeler/tester/discuter avec un agent | invoke |
| Optimiser / améliorer le prompt ou les instructions de l'agent | observe (Step 4: Optimize) |
| Évaluer et optimiser l'agent (boucle complète) | observe |
| Activer la surveillance d'évaluation continue | observe (Step 6: CI/CD & Monitoring) |
| Dépanner un problème d'agent | invoke → troubleshoot |
| Corriger un agent cassé (dépannage + redéploiement) | invoke → troubleshoot → appliquer les correctifs → deploy → invoke |
Agent : Standard de workspace .foundry
Chaque dossier source d'agent doit conserver l'état spécifique à Foundry sous .foundry/ :
<agent-root>/
.foundry/
agent-metadata.yaml
agent-metadata.prod.yaml
datasets/
evaluators/
results/
agent-metadata.yamlest le fichier de métadonnées local/dev préféré. Les fichiers sidecars optionnels commeagent-metadata.prod.yamlpeuvent contenir un seul environnement de prod ou ciblant CI sans mélanger plusieurs environnements dans un seul fichier.datasets/etevaluators/sont des dossiers de cache local. Réutilisez-les quand ils sont à jour, et demandez avant de les rafraîchir ou de les remplacer.- Voir Agent Metadata Contract pour le schéma canonique et les règles de workflow.
Agent : Références de configuration
- Standard Agent Setup - Configuration standard d'hôte de capacités avec données gérées par le client, recherche et ressources AI Services.
Agent : Résolution du contexte de projet
Les skills d'agent doivent exécuter cette étape uniquement quand ils ont besoin de valeurs de configuration qu'ils n'ont pas déjà. Si une valeur (par exemple, racine d'agent, environnement, endpoint de projet ou nom d'agent) est déjà connue du message de l'utilisateur ou d'un skill précédent dans la même session, ignorez la résolution pour cette valeur.
Étape 1 : Découvrir les racines d'agent
Recherchez dans le workspace les dossiers .foundry/ qui contiennent agent-metadata.yaml ou agent-metadata.<env>.yaml.
- Une correspondance → utilisez cette racine d'agent.
- Plusieurs correspondances → demandez à l'utilisateur de choisir le dossier d'agent cible.
- Pas de correspondance → pour les workflows create/deploy, seedez un nouveau dossier
.foundry/lors de la configuration ; pour tous les autres workflows, arrêtez et demandez à l'utilisateur quel dossier source d'agent initialiser.
Après avoir sélectionné une racine d'agent, gardez toute inspection du cache local .foundry, inspection source, suggestions d'évaluateurs, suggestions de datasets et contexte d'optimisation de prompt à l'intérieur de ce dossier seulement. Ne scannez pas les dossiers d'agents voisins sauf si l'utilisateur change explicitement de racine.
Étape 2 : Sélectionner le fichier de métadonnées et résoudre l'environnement
À l'intérieur de la racine d'agent sélectionnée, choisissez le fichier de métadonnées dans cet ordre :
- Nom ou chemin du fichier de métadonnées explicitement fourni par l'utilisateur ou le workflow
- Si un environnement explicite est déjà connu et
.foundry/agent-metadata.<env>.yamlexiste, utilisez ce fichier .foundry/agent-metadata.yaml- Si plusieurs fichiers de métadonnées demeurent et aucune règle précédente n'en sélectionne un, demandez à l'utilisateur de choisir
Lisez le fichier de métadonnées sélectionné et résolvez l'environnement dans cet ordre :
- Environnement explicitement nommé par l'utilisateur
- Si le fichier de métadonnées sélectionné définit exactement un environnement, utilisez-le
- Environnement déjà sélectionné plus tôt dans la session
defaultEnvironmentdu fichier de métadonnées
Si le fichier de métadonnées sélectionné contient toujours plusieurs environnements et aucune des règles précédentes n'en sélectionne un, demandez à l'utilisateur de choisir. Maintenez visible la racine d'agent sélectionnée, le fichier de métadonnées et l'environnement dans chaque résumé de workflow.
Si l'environnement sélectionné expose des métadonnées testSuites[] plus anciennes mais pas evaluationSuites[], traitez testSuites[] comme source pour cette session et normalisez chaque entrée en mémoire à la forme evaluationSuites[] avant de continuer. Si les métadonnées sont encore plus anciennes et n'exposent que le legacy testCases[], normalisez cette liste de la même façon. Préservez les champs dataset et evaluator, gardez tout tags existant et mappez le legacy priority à tags.tier uniquement quand tags.tier est manquant : P0 -> smoke, P1 -> regression, P2 -> coverage.
Étape 3 : Résoudre la configuration commune
Utilisez l'environnement sélectionné du fichier de métadonnées sélectionné comme source primaire :
| Champ de métadonnées | Résout en | Utilisé par |
|---|---|---|
environments.<env>.projectEndpoint |
Endpoint de projet | deploy, invoke, observe, trace, troubleshoot |
environments.<env>.agentName |
Nom de l'agent | invoke, observe, trace, troubleshoot |
environments.<env>.azureContainerRegistry |
Nom du registre ACR / préfixe URL d'image | deploy |
environments.<env>.evaluationSuites[] |
Bundles dataset + evaluator + tag | observe, eval-datasets |
Étape 4 : Bootstrap des métadonnées manquantes (Create/Deploy uniquement)
Si create/deploy initialise un nouveau workspace .foundry et des champs de métadonnées sont toujours manquants, vérifiez si azure.yaml existe dans la racine du projet. Si trouvé, exécutez azd env get-values et utilisez-le pour seedez agent-metadata.yaml par défaut, ou agent-metadata.<env>.yaml quand le workflow cible explicitement un fichier spécifique à l'environnement.
À chaque écriture de métadonnées (deploy, auto-setup, rafraîchissement de dataset ou mise à jour trace-to-dataset), persistez uniquement evaluationSuites[] dans le fichier de métadonnées sélectionné. Si le fichier sélectionné est un fichier préféré simple environnement, réécrivez uniquement ce bloc d'environnement. Si le fichier sélectionné est un fichier multi-environnement legacy, réécrivez uniquement le bloc d'environnement sélectionné. Ne copiez jamais ou ne fusionnez automatiquement les environnements entre les fichiers de métadonnées voisins. Si l'environnement sélectionné utilise toujours le legacy testSuites[] ou le legacy testCases[], réécrivez-le en evaluationSuites[] et supprimez les champs priority migrés des entrées réécrites.
| Variable azd | Seedez |
|---|---|
AZURE_AI_PROJECT_ENDPOINT ou AZURE_AIPROJECT_ENDPOINT |
environments.<env>.projectEndpoint |
AZURE_CONTAINER_REGISTRY_NAME ou AZURE_CONTAINER_REGISTRY_ENDPOINT |
environments.<env>.azureContainerRegistry |
AZURE_SUBSCRIPTION_ID |
Abonnement Azure pour les recherches trace/troubleshoot |
Étape 5 : Collecter les valeurs manquantes
Utilisez l'outil ask_user ou askQuestions uniquement pour les valeurs non résolues à partir du message de l'utilisateur, du contexte de session, du fichier de métadonnées ou du bootstrap azd. Valeurs communes que les skills peuvent avoir besoin :
- Racine d'agent — Dossier cible contenant
.foundry/agent-metadata*.yaml - Fichier de métadonnées —
agent-metadata.yamlpour local/dev, ou un sidecar explicite commeagent-metadata.prod.yaml - Environnement —
dev,prodou une autre clé d'environnement du fichier de métadonnées - Endpoint de projet — URL d'endpoint du projet AI Foundry
- Nom d'agent — Nom de l'agent cible
💡 Conseil : Si l'utilisateur fournit déjà le chemin d'agent, l'environnement, l'endpoint de projet ou le nom d'agent, extrayez-le directement — ne demandez pas à nouveau.
Agent : Types d'agent
Tous les skills d'agent supportent deux types d'agent :
| Type | Kind | Description |
|---|---|---|
| Prompt | "prompt" |
Agents basés sur LLM soutenus par un déploiement de modèle |
| Hosted | "hosted" |
Agents basés sur conteneur exécutant du code personnalisé |
Utilisez l'outil MCP agent_get pour déterminer le type d'un agent quand c'est nécessaire.
Conventions d'utilisation des outils
- Utilisez l'outil
ask_userouaskQuestionsquand vous collectez des informations de l'utilisateur - Utilisez l'outil
taskourunSubagentpour déléguer les sous-tâches longues ou indépendantes (par ex., scanning de vars d'env, polling de statut, génération de Dockerfile) - Préférez les outils Azure MCP aux commandes CLI directes quand disponibles
- Référencez les URLs de documentation officielle Microsoft plutôt que d'intégrer la syntaxe de commandes CLI