Configurar recursos padrão de agentes

A configuração padrão de agentes utiliza recursos Azure de inquilino único geridos pelo cliente para armazenar o estado do agente e manter todos os dados do agente sob o seu controlo. Use a configuração padrão quando precisar de soberania total dos dados, conformidade com políticas de segurança empresariais ou isolamento ao nível do projeto.

Neste contexto:

  • Os estados do agente (conversas, respostas) são armazenados nos seus próprios recursos do Azure.
  • Mantém o controlo total sobre a residência e o acesso aos dados.

Dica

Para uma configuração mais simples que utilize recursos geridos por Microsoft, veja Configuração do Ambiente e escolha a opção básica de configuração do agente.

Pré-requisitos

Visão geral do recurso

Importante

As configurações Standard exigem que traga os seus próprios recursos (BYO) para que todos os dados do agente fiquem no seu tenant Azure:

Recurso O que armazena
Armazenamento do Azure (Armazenamento de ficheiros BYO) Ficheiros carregados por programadores e utilizadores finais
Pesquisa de IA do Azure (Pesquisa BYO) Armazenamentos vetoriais criados pelo agente
Azure Cosmos DB (Armazenamento de Threads BYO) Mensagens, histórico de conversas e metadados do agente

Todos os dados processados pelo Foundry Agent Service são automaticamente armazenados em repouso nestes recursos, ajudando-o a cumprir os requisitos de conformidade e os padrões de segurança empresarial.

Requisitos de rendimento do Cosmos DB

A sua conta do Azure Cosmos DB para NoSQL deve ter um limite total de throughput de pelo menos 3000 RU/s. Os modos Provisionado com Débito e Serverless são suportados.

A configuração padrão prevê três contentores na sua conta Cosmos DB, cada um exigindo 1000 RU/s:

Container Finalidade
thread-message-store Conversas com utilizadores finais
system-thread-message-store Mensagens internas do sistema
agent-entity-store Metadados do agente (instruções, ferramentas, nome)

Para múltiplos projetos na mesma conta Foundry, multiplique pelo número de projetos. Por exemplo, dois projetos requerem pelo menos 6000 RU/s (3 contentores × 1000 RU/s × 2 projetos).

Isolamento de dados a nível de projeto

A configuração padrão impõe por defeito o isolamento de dados ao nível do projeto. Dois contentores de armazenamento blob são automaticamente provisionados na sua conta de armazenamento: um para ficheiros e outro para dados intermédios do sistema (chunks, embeddings). Três contentores são provisionados na sua conta Cosmos DB: um para threads de utilizador, um para mensagens do sistema e um para dados de configuração de agentes, como instruções, ferramentas e nomes. Este comportamento padrão reduz a complexidade da configuração, mantendo ao mesmo tempo que impõe limites rigorosos de dados entre projetos.

Anfitriões de capacidade

Os servidores de capacidade são sub-recursos, tanto da conta quanto do projeto, que possibilitam a interação com o Serviço de Agente.

  • Host de capacidade da conta: Tem um corpo de pedido vazio, exceto pelo parâmetro capabilityHostKind="Agents".
  • Host de capacidade do projeto: Especifica recursos para armazenar o estado do agente, quer recursos multitenant geridos pela Microsoft (configuração básica) quer recursos single-tenant pertencentes ao cliente (configuração padrão). O "host" de capacidade de projeto serve como as configurações do projeto.

Limitações

  • Não é possível atualizar o host de capacidade após ter sido definido para um projeto ou conta.

Fornecer recursos passo a passo

Nota

O portal Foundry atualmente suporta apenas a configuração básica de agentes. Para configurar a configuração padrão do agente, utilize os passos manuais ou o modelo Bicep descrito nesta secção.

Aprovisionamento manual

Siga estes passos para provisionar manualmente todos os recursos necessários para a configuração padrão do agente. Espere aproximadamente 30-45 minutos para o processo completo de provisionamento.

Fase 1: Criar recursos dependentes

  1. Crie ou reutilize os seguintes recursos. Pode criar novos recursos ou passar o ID de recursos dos já existentes:
    • Azure Cosmos DB para conta NoSQL
    • Conta de Armazenamento Azure
    • Pesquisa de IA do Azure recurso
    • Recurso do Azure Key Vault (usado para gerir segredos e cadeias de ligação para a infraestrutura do agente)
    • [Opcional] Recurso do Aplicação Azure Insights
    • [Opcional] Recursos existentes da Foundry

Fase 2: Criar recursos e ligações de fundição

  1. Crie um recurso Microsoft Foundry.
  2. Crie ligações ao nível da conta:
    • Crie uma ligação de conta ao recurso Application Insights.
  3. Implemente gpt-4o ou outro modelo compatível com agentes.
  4. Cria um projeto.
  5. Crie ligações ao projeto:
    • Se fornecido, ligação do Project ao recurso da Foundry.
    • Ligação do Project à conta do Armazenamento do Azure.
    • Ligação do Project ao recurso Pesquisa de IA do Azure.
    • Conexão do projeto à conta do Cosmos DB.

Fase 3: Atribuir funções à identidade gerida do projeto

A identidade gerida do projeto inclui tanto a Identidade Gerida atribuída pelo Sistema (SMI) como a Identidade Gerida atribuída pelo Utilizador (UMI).

  1. Atribuir à identidade gerida de projeto (para SMI) as seguintes funções:
    • Operador do Cosmos DB ao nível de conta para o recurso Cosmos DB.
    • Contribuidor de Conta de Armazenamento ao nível de conta para o recurso de Conta de Armazenamento.

Fase 4: Configurar os anfitriões de capacidade

  1. Defina o host de capacidade da conta com uma seção de propriedades vazia.
  2. Defina o host de capacidades do projeto com ligações ao Cosmos DB, Armazenamento do Azure e AI Search.

Fase 5: Atribuir permissões granulares de recursos

  1. Atribuir à identidade gerida do projeto (tanto SMI como UMI) os seguintes papéis nos escopos de recursos especificados:
    • Pesquisa de IA do Azure (atribuir antes ou depois da criação do servidor de capacidade):
      • Contribuidor de Dados do Índice de Pesquisa
      • Contribuidor do Serviço de Pesquisa
    • Armazenamento de Blobs do Azure Contentor: <workspaceId>-azureml-blobstore
      • Contribuidor de Dados de Blob de Armazenamento
    • Armazenamento de Blobs do Azure Contentor: <workspaceId>-agents-blobstore
      • Proprietário dos Dados do Blob de Armazenamento
    • Cosmos DB for NoSQL Database: enterprise_memory
      • Contribuidor de Dados Incorporado no Cosmos DB
      • Âmbito: Nível de base de dados para cobrir todos os contentores (não é necessária atribuição de funções específicas para cada contentor).

Fase 6: Conceder acesso ao desenvolvedor

  1. Atribua a todos os programadores que precisam de criar ou editar agentes no projeto a função Azure AI User no âmbito do projeto.

Use um modelo de Bicep

Use um recurso existente do Azure OpenAI, conta do Armazenamento do Azure, conta do Azure Cosmos DB para NoSQL ou recurso do Pesquisa de IA do Azure, fornecendo o ID completo do recurso do Azure Resource Manager (ARM) no ficheiro modelo de agente standard.

Use um recurso Azure OpenAI existente

  1. Siga os passos na configuração do Ambiente para obter o ID de recurso da conta Foundry Tools.

  2. No ficheiro de modelo padrão do agente, substitua o seguinte marcador de posição:

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

Use uma conta Armazenamento do Azure existente para armazenamento de ficheiros

  1. Inicie sessão na CLI do Azure e selecione a subscrição com a sua conta de armazenamento:

    az login
    
  2. Execute o seguinte comando para obter o ID do recurso da sua conta de armazenamento:

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

    A saída é o valor aiStorageAccountResourceID necessário no modelo.

  3. No ficheiro de modelo padrão do agente, substitua o seguinte marcador de posição:

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

Use uma conta Azure Cosmos DB para NoSQL existente para armazenamento de threads

Uma conta Azure Cosmos DB for NoSQL é criada para cada conta Foundry. Para requisitos de largura de banda e escalabilidade multi-projeto, consulte requisitos de largura de banda do Cosmos DB.

Nota

Capacidade insuficiente de RU/s na conta do Cosmos DB resulta em falhas no provisionamento do host de capacidade durante a implementação.

  1. Inicie sessão na CLI do Azure e selecione a subscrição com a sua conta Cosmos DB:

    az login
    
  2. Execute o seguinte comando para obter o ID do recurso da sua conta Azure Cosmos DB:

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

    A saída é o valor cosmosDBResourceId necessário no modelo.

  3. No ficheiro de modelo padrão do agente, substitua o seguinte marcador de posição:

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

Use um recurso existente do Pesquisa de IA do Azure

  1. Inicie sessão na CLI do Azure e selecione a subscrição com o seu recurso de pesquisa:

    az login
    
  2. Execute o seguinte comando para obter o seu ID de recurso do Pesquisa de IA do Azure:

    az search service show --resource-group <your-resource-group> --name <your-search-service> --query "id" --output tsv
    
  3. No ficheiro de modelo padrão do agente, substitua o seguinte marcador de posição:

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

Verifica a tua configuração

Depois de concluir o provisionamento, verifique se a configuração está a funcionar corretamente:

  1. No portal Azure, navegue até ao seu projeto Foundry e confirme que todas as ligações (Storage, Cosmos DB, AI Search) aparecem nas definições do projeto.
  2. Verifique se o estado do host de capacidade aparece como Bem-sucedido, tanto para a conta como para o projeto.
  3. Verifique as atribuições de funções navegando até à página de controlo de acesso (IAM) de cada recurso e confirmando que a identidade gerida pelo projeto tem as funções esperadas.
  4. Crie um agente de teste para confirmar a funcionalidade de ponta a ponta.

Resolver problemas comuns

Sintoma Causa Resolução
CapabilityHostProvisioningFailed ou o estado do anfitrião de recursos mostra Falha Rendimento insuficiente da Cosmos DB Garante que a sua conta Cosmos DB tem pelo menos 3000 RU/s (1000 RU/s por contentor × 3 contentores). Para vários projetos, multiplica pelo número de projetos.
403 Forbidden quando o agente lê ou escreve ficheiros Atribuições de funções de armazenamento em falta Verifique se a identidade gerida do projeto tem Contribuidor de Dados do Blob de Armazenamento no <workspaceId>-azureml-blobstore contentor e Proprietário de Dados do Blob de Armazenamento no <workspaceId>-agents-blobstore contentor.
SearchIndexNotFound ou 403 em operações de busca Funções de pesquisa em falta Confirme que a identidade gerida pelo projeto tem tanto Search Index Data Contributor como Search Service Contributor no seu recurso de Pesquisa de IA do Azure.
AuthorizationFailed Ao criar ou editar agentes Função de utilizador em falta Atribuir a função Azure AI User ao programador no âmbito do projeto.
O pedido de atualização para o host da capacidade retorna 400 BadRequest Atualização não suportada Os hosts de capacidades não podem ser atualizados após a criação. Apague e recrie o projeto se forem necessárias alterações de configuração.