Configurare le risorse dell'agente standard

La configurazione dell'agente standard usa risorse di Azure a tenant singolo gestite dal cliente per archiviare lo stato dell'agente e mantenere tutti i dati dell'agente sotto il controllo. Usare la configurazione standard quando è necessaria la sovranità dei dati completa, la conformità ai criteri di sicurezza aziendali o l'isolamento a livello di progetto.

In questa configurazione:

  • Gli stati dell'agente (conversazioni, risposte) vengono archiviati nelle proprie risorse Azure.
  • Si mantiene il controllo completo sulla residenza e l'accesso dei dati.

Suggerimento

Per una configurazione più semplice che usa risorse gestite da Microsoft, vedere Setup e scegliere l'opzione di configurazione dell'agente di base.

Prerequisiti

Panoramica delle risorse

Importante

le configurazioni Standard richiedono l'uso delle risorse BYO (Bring Your Own) in modo che tutti i dati dell'agente rimangano nel tenant Azure:

Risorsa Cosa archivia
Archiviazione di Azure (archiviazione file BYO) File caricati dagli sviluppatori e dagli utenti finali
Azure AI Search (ricerca BYO) Archivi vettoriali creati dall'agente
Azure Cosmos DB (archiviazione thread BYO) Messaggi, cronologia conversazioni e metadati dell'agente

Tutti i dati elaborati dal servizio Foundry Agent vengono archiviati automaticamente inattivi in queste risorse, consentendo di soddisfare i requisiti di conformità e gli standard di sicurezza aziendali.

Requisiti di velocità effettiva di Cosmos DB

Il Azure Cosmos DB per NoSQL account deve avere un limite di velocità effettiva totale di almeno 3000 UR/s. Sono supportate sia la velocità effettiva con provisioning che le modalità serverless.

La configurazione Standard effettua il provisioning di cinque contenitori, ognuno dei quali richiede 1000 UR/sec:

Contenitore Scopo
thread-message-store Conversazioni dell'utente finale
system-thread-message-store Messaggi di sistema interni
agent-entity-store Metadati dell'agente (istruzioni, strumenti, nome)
agent-definitions-v1 Metadati dell'agente (istruzioni, strumenti, nome, versioni)
run-state-v1 Messaggi interni e conversazioni dell'utente finale

thread-message-store, system-thread-message-storee agent-entity-store fanno parte dell'installazione standard del servizio Foundry Agent (versione classica).

Il servizio agente Foundry (Nuovo) usa agent-definitions-v1 e run-state-v1.

I contenitori meno recenti appartengono all'esperienza classica e non vengono usati dal nuovo runtime.

Avviso

Gli ambienti di runtime del servizio Foundry Agent Classic e New usano contenitori Cosmos DB diversi.

isolamento dei dati a livello progetto

L'installazione standard applica l'isolamento dei dati a livello di progetto per impostazione predefinita. Vengono forniti automaticamente due contenitori di archiviazione blob nel tuo account di archiviazione: uno per i file e uno per i dati di sistema temporanei (blocchi, incorporamenti). Viene effettuato il provisioning di tre contenitori nell'account Cosmos DB: uno per i thread utente, uno per i messaggi di sistema e uno per i dati di configurazione dell'agente, ad esempio istruzioni, strumenti e nomi. Questo comportamento predefinito riduce la complessità della configurazione, applicando comunque limiti di dati rigorosi tra i progetti.

Host di funzionalità

Gli host di funzionalità sono sotto-risorse sia nell'account che nel progetto che consentono l'interazione con il servizio Agent.

  • Host di funzionalità dell'account: ha un corpo della richiesta vuoto, ad eccezione del parametro capabilityHostKind="Agents".
  • Project capability host: specifica le risorse per l'archiviazione dello stato dell'agente, ovvero risorse multi-tenant gestite da Microsoft (configurazione di base) o risorse a tenant singolo di proprietà del cliente (configurazione standard). L'host di funzionalità del progetto funziona come impostazioni del progetto.

Limitazioni

  • Non è possibile aggiornare l'host di funzionalità dopo che è impostato per un progetto o un account.

Eseguire l'approvvigionamento delle risorse passo dopo passo

Provisioning manuale

Seguire questa procedura per effettuare manualmente il provisioning di tutte le risorse necessarie per la configurazione dell'agente standard. Attendere circa 30-45 minuti per il processo di provisioning completo.

Fase 1: Creare risorse dipendenti

  1. Creare o riutilizzare le risorse seguenti. È possibile creare nuove risorse o passare l'ID risorsa di quelli esistenti:
    • Account Azure Cosmos DB for NoSQL
    • Account di archiviazione di Azure
    • Azure AI Search risorsa
    • risorsa di Azure Key Vault (usata per la gestione di segreti e stringhe di connessione per l'infrastruttura dell'agente)
    • [Facoltativa] Risorsa di applicazione Azure Insights
    • [Facoltativo] Risorsa Fonderia esistente

Fase 2: Creare le risorse e le connessioni per Foundry

  1. Creare una risorsa Microsoft Foundry.
  2. Creare connessioni a livello di account:
    • Creare una connessione account alla risorsa di Application Insights.
  3. Implementare gpt-4o o un altro modello compatibile con agenti.
  4. Creare un progetto.
  5. Creare connessioni di progetto:
    • [Se specificato] Collegare la connessione alla risorsa Fonderia.
    • Connessione del progetto all'account di Archiviazione di Azure.
    • Connessione del progetto alla risorsa Azure AI Search
    • La connessione del progetto all'account Cosmos DB.

Fase 3: Assegnare ruoli all'identità gestita del progetto

L'identità gestita del progetto include sia l'identità gestita assegnata dal sistema (SMI) che l'identità gestita assegnata dall'utente (UMI).

  1. Assegnare l'identità gestita del progetto (per SMI) ai ruoli seguenti:
    • Operatore Cosmos DB a livello di account per la risorsa Cosmos DB.
    • Collaboratore account di archiviazione a livello di account per la risorsa account di archiviazione.

Fase 4: Configurare gli host di funzionalità

  1. Impostare l'host di funzionalità dell'account con una sezione delle proprietà vuota.
  2. Impostare l'host di funzionalità del progetto con le connessioni Cosmos DB, Archiviazione di Azure e AI Search.

Fase 5: Assegnare autorizzazioni granulari per le risorse

  1. Assegnare l'identità gestita del progetto (sia SMI che UMI) ai ruoli seguenti negli ambiti delle risorse specificati:
    • Azure AI Search (assegnare prima o dopo la creazione dell'host di funzionalità):
      • Collaboratore ai dati dell'indice di ricerca
      • Collaboratore servizio di ricerca
    • Container di Archiviazione BLOB di Azure: <workspaceId>-azureml-blobstore
      • Collaboratore dei dati di Storage Blob
    • Contenitore di Archiviazione BLOB di Azure: <workspaceId>-agents-blobstore
      • Proprietario dei dati dei BLOB di archiviazione
    • Cosmos DB per database NoSQL: enterprise_memory
      • Contributore dati integrato di Cosmos DB
      • Ambito: livello di database per coprire tutti i contenitori (non è necessaria alcuna assegnazione di ruolo specifica del contenitore).

Fase 6: Concedere l'accesso per sviluppatori

  1. Assegnare a tutti gli sviluppatori che devono creare o modificare agenti nel progetto il ruolo Foundry User a livello di progetto.

Importante

I ruoli di Controllo degli accessi in base al ruolo di Foundry sono stati recentemente rinominati. Foundry User, Foundry Owner, Foundry Account Owner e Foundry Project Manager erano precedentemente denominati Azure AI User, Azure AI Owner, Azure AI Account Owner e Azure AI Project Manager. È possibile che i nomi precedenti vengano visualizzati in alcune posizioni durante l'esecuzione della ridenominazione. Gli ID ruolo e le autorizzazioni di base sono invariati dalla ridenominazione.

Usare un modello di Bicep

Usare un account Azure OpenAI, un account Archiviazione di Azure esistente, un account Azure Cosmos DB per NoSQL o una risorsa Azure AI Search specificando l'ID completo della risorsa Azure Resource Manager (ARM) nel file del modello standard dell'agente.

Usare una risorsa OpenAI Azure esistente

  1. Seguire la procedura descritta in Configurazione dell'ambiente per ottenere l'ID risorsa dell'account Foundry Tools.

  2. Nel file modello di agente standard sostituire il segnaposto seguente:

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

Usare un account di Archiviazione di Azure esistente per l'archiviazione file

  1. Accedere al interfaccia della riga di comando di Azure e selezionare la sottoscrizione con l'account di archiviazione:

    az login
    
  2. Eseguire il comando seguente per ottenere l'ID risorsa dell'account di archiviazione:

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

    L'output si trova nel valore aiStorageAccountResourceID necessario nel modello.

  3. Nel file modello di agente standard sostituire il segnaposto seguente:

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

Usare un account esistente di Azure Cosmos DB per NoSQL per l'archiviazione dei thread

Viene creato un Azure Cosmos DB per NoSQL account per ogni account Foundry. Per i requisiti di velocità effettiva e il ridimensionamento multiprogetto, vedere Requisiti di velocità effettiva di Cosmos DB.

Nota

Una capacità di UR/s insufficiente nell'account Cosmos DB causa errori di provisioning degli host di capacità durante la distribuzione.

  1. Accedere al interfaccia della riga di comando di Azure e selezionare la sottoscrizione con l'account Cosmos DB:

    az login
    
  2. Eseguire il comando seguente per ottenere l'ID risorsa dell'account Azure Cosmos DB:

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

    L'output si trova nel valore cosmosDBResourceId necessario nel modello.

  3. Nel file modello di agente standard sostituire il segnaposto seguente:

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

Usare una risorsa di Azure AI Search esistente

  1. Accedere al interfaccia della riga di comando di Azure e selezionare la sottoscrizione con la risorsa di ricerca:

    az login
    
  2. Eseguire il comando seguente per ottenere l'ID risorsa Azure AI Search:

    az search service show --resource-group <your-resource-group> --name <your-search-service> --query "id" --output tsv
    
  3. Nel file modello di agente standard sostituire il segnaposto seguente:

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

Verificare la configurazione

Dopo aver completato il provisioning, verificare che la configurazione funzioni correttamente:

  1. Nel portale di Azure passare al progetto Foundry e verificare che tutte le connessioni (Archiviazione, Cosmos DB, Ricerca di intelligenza artificiale) siano visualizzate nelle impostazioni del progetto.
  2. Verificare che lo stato dell'host di funzionalità sia Riuscito sia per l'account che per il progetto.
  3. Verificare le assegnazioni di ruolo passando alla pagina Controllo di accesso (IAM) di ogni risorsa e confermando che l'identità gestita del progetto ha i ruoli previsti.
  4. Creare un agente di test per confermare la funzionalità end-to-end.

Risolvere i problemi comuni

Sintomo Causa Risoluzione
CapabilityHostProvisioningFailed o lo stato dell'host di funzionalità mostra Non riuscito Velocità effettiva di Cosmos DB insufficiente Verificare che l'account Cosmos DB abbia almeno 3000 UR/sec (1000 UR/sec per contenitore × 3 contenitori). Per più progetti, moltiplicare per il numero di progetti.
403 Forbidden quando l'agente legge o scrive file Assegnazioni di ruolo di archiviazione mancanti Verificare che l'identità gestita del progetto abbia il ruolo Collaboratore ai dati del BLOB di archiviazione nel contenitore <workspaceId>-azureml-blobstore e del ruolo Proprietario dei dati del BLOB di archiviazione nel contenitore <workspaceId>-agents-blobstore.
SearchIndexNotFound o 403 nelle operazioni di ricerca Ruoli di ricerca mancanti Verificare che l'identità gestita del progetto abbia sia il ruolo di Collaboratore ai dati dell'indice di ricerca sia quello di Collaboratore servizio di ricerca nella risorsa di Azure AI Search.
AuthorizationFailed durante la creazione o la modifica di agenti Ruolo utente mancante Assegna il ruolo Foundry User allo sviluppatore a livello di progetto.
La richiesta di aggiornamento all'host di funzionalità restituisce 400 BadRequest Aggiornamento non supportato Gli host di funzionalità non possono essere aggiornati dopo la creazione. Eliminare e ricreare il progetto se sono necessarie modifiche alla configurazione.