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.

Hôtes de capacité

Les hôtes de capacité sont des sous-ressources au niveau du compte et du projet qui permettent l’interaction avec le service Agent.

  • Hôte de fonctionnalité de compte : contient un corps de requête qui est vide, sauf pour le paramètre capabilityHostKind="Agents".
  • hôte de capacité Project : spécifie les ressources pour le stockage de l’état de l’agent, soit les ressources multilocataires gérées par Microsoft (configuration de base) ou les ressources monolocataires appartenant au client (configuration standard). L’hôte de capacité du projet fait office de paramètres du projet.

Limites

  • Vous ne pouvez pas mettre à jour l'hôte de capacité après sa définition pour un projet ou un compte.

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 et des connexions de fonderie

  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. Créez un project.
  5. Créez des connexions de projet :
    • [Si fourni] Connexion du projet à la ressource Foundry.
    • Connexion du projet au compte de stockage Azure.
    • Projet de connexion à la ressource Recherche Azure AI.
    • Projet de connexion au compte Cosmos DB.

Phase 3 : Attribuer des rôles à 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).

  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 : Configurer des hôtes de capacité

  1. Définissez l’hôte de capacité du compte avec une section « properties » vide.
  2. Configurez l’hôte de capacité du projet avec des connexions à Cosmos DB, stockage Azure et AI Search.

Phase 5 : 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 (doit être affecté avant ou après la création de l'infrastructure de capacité).
      • 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>-agents-blobstore
      • 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 6 : Accorder aux développeurs access

  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 dans le compte Cosmos DB entraîne des échecs lors du provisionnement de l’hôte de capacité pendant le 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 que l’état de l’hôte de capacité s’affiche comme Réussi pour le compte et le projet.
  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
CapabilityHostProvisioningFailed ou si l’état de l’hôte de capacité est Échec 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>-agents-blobstore.
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.
La requête de mise à jour de l’hôte de capacité renvoie 400 BadRequest Mise à jour non prise en charge Les hôtes de capacité ne peuvent pas être mis à jour après la création. Supprimez et recréez l’project si des modifications de configuration sont nécessaires.