Configurer des ressources d’agent standard

La configuration de l’agent standard utilise des ressources Azure client gérées par le client pour stocker l’état de l’agent et conserver toutes les données de l’agent sous votre contrôle. Utilisez la configuration standard lorsque vous avez besoin d’une souveraineté complète des données, de la conformité avec les stratégies de sécurité d’entreprise ou de l’isolation au niveau project.

Dans cette configuration :

  • Les états de l’agent (conversations, réponses) sont stockés dans vos propres ressources Azure.
  • Vous conservez un contrôle total sur l'emplacement des données et l'accès.

Conseil / Astuce

Pour une configuration plus simple qui utilise des ressources gérées par Microsoft, consultez Configuration de l’environnement et choisissez l’option de configuration de l’agent de base.

Prerequisites

Vue d’ensemble des ressources

Important

Les configurations standard nécessitent que vous apportiez vos propres ressources BYO afin que toutes les données de l’agent restent dans votre locataire Azure :

Resource Qu’est-ce qu’il stocke ?
stockage Azure (stockage de fichiers BYO) Fichiers chargés par les développeurs et les utilisateurs finaux
Recherche Azure AI (recherche BYO) Magasins vectoriels créés par l’agent
Azure Cosmos DB (BYO Thread Storage) Messages, historique des conversations et métadonnées de l’agent

Toutes les données traitées par le service Foundry Agent sont automatiquement stockées au repos dans ces ressources, ce qui vous aide à répondre aux exigences de conformité et aux normes de sécurité d’entreprise.

Exigences en matière de débit Cosmos DB

Votre Azure Cosmos DB pour NoSQL compte doit avoir une limite de débit totale d’au moins 3000 RU/s. Le débit approvisionné et le mode sans serveur sont pris en charge.

La configuration standard provisionne cinq conteneurs, chacun nécessitant 1 000 RU/s :

Conteneur Objectif
thread-message-store Conversations des utilisateurs finaux
system-thread-message-store Messages système internes
agent-entity-store Métadonnées de l’agent (instructions, outils, nom)
agent-definitions-v1 Métadonnées de l’agent (instructions, outils, nom, versions)
run-state-v1 Messages internes et conversations utilisateur final

thread-message-store, system-thread-message-storeet agent-entity-store font partie du programme d’installation standard du service Foundry Agent (classique).

Service d’agent Foundry (nouveau) utilise agent-definitions-v1 et run-state-v1.

Les anciens conteneurs appartiennent à l’expérience Classique et ne sont pas utilisés par le nouveau runtime.

Avertissement

Les runtimes de service Classic et New Foundry Agent utilisent différents conteneurs Cosmos DB.

Isolation des données au niveau du projet

Le programme d’installation standard applique l’isolation des données de niveau project par défaut. Deux conteneurs de stockage Blob sont automatiquement provisionnés dans votre compte de stockage : l’un pour les fichiers et l’autre pour les données système intermédiaires (segments, embeddings). Trois conteneurs sont provisionnés dans votre compte Cosmos DB : un pour les threads utilisateur, un pour les messages système et un pour les données de configuration de l’agent, comme les instructions, les outils et les noms. Ce comportement par défaut réduit la complexité de la configuration tout en appliquant des limites de données strictes entre les projets.

Paramètres de fonctionnalité

Les paramètres de capacité sont des propriétés du compte Foundry et du projet qui indiquent quelles ressources Azure contiennent l’état de l’agent, les données vectorielles et les fichiers. Définissez-les au niveau du compte afin de définir les valeurs par défaut pour ses projets, et redéfinissez un magasin spécifique dans un projet lorsque celui-ci nécessite une ressource différente.

Agent Service met en place l’infrastructure sous-jacente requise ainsi que les connexions à vos ressources lors du provisionnement. Ces connexions gérées par les paramètres de fonctionnalité sont immuables pendant leur utilisation. Vous ne pouvez donc pas les modifier ou les supprimer directement. Vous ne pouvez pas également mettre à jour les paramètres de fonctionnalité sur un projet existant. Pour modifier les ressources qu’un projet utilise, supprimez et recréez le projet avec les paramètres souhaités.

Pour obtenir la liste complète des paramètres, les autorisations et les exemples Bicep, consultez Configurer les paramètres de fonctionnalité de l’agent.

Provisionner des ressources étape par étape

Provisionnement manuel

Suivez ces étapes pour provisionner manuellement toutes les ressources nécessaires à la configuration de l’agent standard. Laissez environ 30 à 45 minutes pour le processus d’approvisionnement complet.

Phase 1 : Créer des ressources dépendantes

  1. Créez ou réutilisez les ressources suivantes. Vous pouvez créer de nouvelles ressources ou transmettre l’ID de ressource des ressources existantes :
    • Azure Cosmos DB pour compte NoSQL
    • compte stockage Azure
    • Ressource Recherche Azure AI
    • Azure Key Vault ressource (utilisée pour la gestion des secrets et des chaînes de connexion pour l’infrastructure de l’agent)
    • [Facultatif] ressource Azure Application Insights
    • [Facultatif] Ressource Foundry existante

Phase 2: Créer des ressources Foundry et des paramètres de capacité

  1. Créez une ressource Microsoft Foundry.
  2. Créer des connexions au niveau du compte :
    • Créez une connexion de compte à la ressource Application Insights.
  3. Déployez gpt-4o ou un autre modèle compatible agent.
  4. Définissez les paramètres de fonctionnalité sur le compte, en référençant les ID de ressource de votre compte Cosmos DB, Recherche Azure AI service et compte de stockage.
  5. Créez un project. Le projet hérite des paramètres de fonctionnalité du compte, sauf si vous redéfinissez un magasin spécifique. Agent Service met en place l’infrastructure sous-jacente requise et les connexions vers vos ressources dans le cadre de cette étape.

Phase 3 : Attribuer des rôles d’exécution à l’identité managée du projet

L'identité managée du projet inclut l'identité managée attribuée par le système (SMI) et l'identité managée attribuée par l'utilisateur (UMI). Ces rôles régissent l’accès au runtime pour les agents en cours d’exécution. Ils sont distincts des autorisations dont a besoin l’identité de déploiement, et l’un ne remplace pas l’autre.

  1. Affectez l'identité managée du projet (pour SMI) aux rôles suivants :
    • Opérateur Cosmos DB au niveau du compte pour la ressource Cosmos DB.
    • Contributeur du compte de stockage au niveau du compte pour la ressource Compte de stockage.

Phase 4 : Attribuer des autorisations de ressources granulaires

  1. Attribuez à l’identité managée du projet (SMI et UMI) les rôles suivants sur les étendues des ressources spécifiées :
    • Recherche Azure AI :
      • Contributeur de données d'index de recherche
      • Contributeur du service de recherche
    • Conteneur de Stockage Blob Azure : <workspaceId>-azureml-blobstore
      • Contributeur aux données Blob du stockage
    • Conteneur de Stockage Blob Azure : <workspaceId>-azureml-agent
      • Propriétaire des données de blob de stockage
    • Cosmos DB pour NoSQL base de données : enterprise_memory
      • Contributeur de données intégré Cosmos DB
      • Étendue : Niveau de la base de données pour couvrir tous les conteneurs (aucune attribution de rôle spécifique à un conteneur n’est nécessaire).

Phase 5 : Accorder l’accès aux développeurs

  1. Attribuez à tous les développeurs qui doivent créer ou modifier des agents dans le projet le rôle Utilisateur Foundry dans l’étendue du projet.

    Important

    Les rôles Foundry RBAC ont été récemment renommés. Foundry User, Foundry Owner, Propriétaire du compteFoundry et Foundry Project Manager ont été précédemment nommés Azure utilisateur IA, Azure propriétaire d’IA, propriétaire Azure compte IA et Azure gestionnaire Project IA. Il se peut que vous voyiez encore les anciens noms à certains endroits pendant le déploiement de ce changement de nom. Les ID de rôle et les autorisations de base ne sont pas modifiés par ce changement de nom.

Utiliser un modèle Bicep

Utilisez un compte Azure OpenAI, stockage Azure, un compte Azure Cosmos DB pour NoSQL, ou une ressource Recherche Azure AI en fournissant l’ID de ressource entier d'Azure Resource Manager (ARM) dans le fichier de modèle de l’agent standard.

Utiliser une ressource OpenAI Azure existante

  1. Suivez les étapes de configuration de l’environnement pour obtenir l’ID de ressource du compte Foundry Tools.

  2. Dans le fichier de modèle d’agent standard, remplacez l’espace réservé suivant :

    existingAoaiResourceId:/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{serviceName}
    

Utiliser un compte stockage Azure existant pour le stockage de fichiers

  1. Connectez-vous au Azure CLI et sélectionnez l’abonnement avec votre compte de stockage :

    az login
    
  2. Exécutez la commande suivante pour obtenir votre ID de ressource de compte storage :

    az storage account show --resource-group <your-resource-group> --name <your-storage-account> --query "id" --output tsv
    

    La sortie est la aiStorageAccountResourceID valeur dont vous avez besoin dans le modèle.

  3. Dans le fichier de modèle d’agent standard, remplacez l’espace réservé suivant :

    aiStorageAccountResourceId:/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}
    

Utiliser un compte Azure Cosmos DB existant pour le stockage de threads avec NoSQL

Un Azure Cosmos DB pour NoSQL compte est créé pour chaque compte Foundry. Pour les exigences de débit et la mise à l'échelle multi-projets, consultez les exigences de débit de Cosmos DB.

Note

Une capacité RU/s insuffisante sur le compte Cosmos DB entraîne des échecs de provisionnement lors du déploiement.

  1. Connectez-vous au Azure CLI et sélectionnez l’abonnement avec votre compte Cosmos DB :

    az login
    
  2. Exécutez la commande suivante pour obtenir votre ID de ressource de compte Azure Cosmos DB :

    az cosmosdb show --resource-group <your-resource-group> --name <your-cosmosdb-account> --query "id" --output tsv
    

    La sortie est la cosmosDBResourceId valeur dont vous avez besoin dans le modèle.

  3. Dans le fichier de modèle d’agent standard, remplacez l’espace réservé suivant :

    cosmosDBResourceId:/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{cosmosDbAccountName}
    

Utiliser une ressource Recherche Azure AI existante

  1. Connectez-vous au Azure CLI et sélectionnez l’abonnement avec votre ressource de recherche :

    az login
    
  2. Exécutez la commande suivante pour obtenir votre ID de ressource Recherche Azure AI :

    az search service show --resource-group <your-resource-group> --name <your-search-service> --query "id" --output tsv
    
  3. Dans le fichier de modèle d’agent standard, remplacez l’espace réservé suivant :

    aiSearchServiceResourceId:/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Search/searchServices/{searchServiceName}
    

Vérifier votre configuration

Une fois l’approvisionnement terminé, vérifiez que l’installation fonctionne correctement :

  1. Dans le portail Azure, accédez à votre projet Foundry et vérifiez que toutes les connexions (Stockage, Cosmos DB, Recherche IA) apparaissent sous les paramètres du projet.
  2. Vérifiez qu’un GET sur le projet retourne les paramètres de capacité attendus, y compris les valeurs héritées du compte.
  3. Vérifiez les attributions de rôles en accédant à la page Access control (IAM) de chaque ressource et en confirmant que l'identité managée du projet dispose des rôles attendus.
  4. Créez un agent de test pour confirmer la fonctionnalité de bout en bout.

Résoudre des problèmes courants

Symptôme La cause Résolution
L’approvisionnement échoue avec une erreur de débit Cosmos DB Débit Cosmos DB insuffisant Vérifiez que votre compte Cosmos DB a au moins 3000 RU/s (1 000 RU/s par conteneur × 3 conteneurs). Pour plusieurs projets, multipliez par le nombre de projets.
403 Forbidden lorsque l’agent lit ou écrit des fichiers Attributions de rôles de stockage manquantes Vérifiez que l'identité managée du projet a le rôle Storage Blob Data Contributor sur le conteneur <workspaceId>-azureml-blobstore et le rôle Storage Blob Data Owner sur le conteneur <workspaceId>-azureml-agent.
SearchIndexNotFound ou 403 sur les opérations de recherche Rôles de recherche manquants Vérifiez que l’identité gérée par le projet dispose à la fois de Search Index Data Contributor et de Search Service Contributor sur votre ressource Recherche Azure AI.
AuthorizationFailed lors de la création ou de la modification d’agents Rôle d’utilisateur manquant Attribuez le rôle Utilisateur Foundry au développeur à l’échelle du projet.
Le déploiement échoue avant l’approvisionnement d’une ressource L’identité de déploiement ne dispose pas d’un rôle de provisionnement Vérifiez que l’appelant dispose des rôles Storage Blob Data Contributor et Cosmos DB Operator. Consultez Configurer les paramètres de fonctionnalité de l’agent.