Configurar recursos de agente padrão

A configuração do agente padrão usa recursos do Azure gerenciados pelo cliente e de locatário único para armazenar o estado do agente e manter todos os dados do agente sob seu controle. Use a configuração padrão quando precisar de soberania de dados completa, conformidade com políticas de segurança corporativa ou isolamento no nível do projeto.

Nesta configuração:

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

Dica

Para uma configuração mais simples que usa recursos gerenciados pela Microsoft, consulte a configuração do ambiente e escolha a opção de configuração básica do agente.

Pré-requisitos

Visão geral do recurso

Importante

As configurações padrão exigem que você traga seus próprios recursos (BYO) para que todos os dados do agente permaneçam em seu locatário do Azure:

Recurso O que ele armazena
Armazenamento do Azure (Armazenamento de Arquivos BYO) Arquivos carregados por desenvolvedores e usuários finais
IA do Azure Search (Pesquisa BYO) Repositórios de vetores criados pelo agente
Azure Cosmos DB (BYO Thread Storage) Mensagens, histórico de conversas e metadados do agente

Todos os dados processados pelo Serviço do Foundry Agent são armazenados automaticamente em repouso nesses recursos, ajudando você a atender aos requisitos de conformidade e aos padrões de segurança da empresa.

Requisitos de capacidade de processamento do Cosmos DB

Sua conta do Azure Cosmos DB para NoSQL deve ter um limite total de taxa de transferência de pelo menos 3.000 RU/s. Há suporte para a taxa de transferência provisionada e modos sem servidor .

A instalação padrão provisiona três contêineres em sua conta do Cosmos DB, cada um exigindo 1000 RU/s:

Contêiner Propósito
thread-message-store Conversas do usuário final
system-thread-message-store Mensagens internas do sistema
agent-entity-store Metadados do agente (instruções, ferramentas, nome)

Para vários projetos na mesma conta do Foundry, multiplique pelo número de projetos. Por exemplo, dois projetos exigem pelo menos 6.000 RU/s (3 contêineres × 1.000 RU/s × 2 projetos).

Isolamento de dados no nível do projeto

A configuração padrão impõe o isolamento de dados no nível do projeto por padrão. Dois contêineres de armazenamento de blobs são provisionados automaticamente em sua conta de armazenamento: um para arquivos e outro para dados intermediários do sistema (fragmentos, incorporações). Três contêineres são provisionados em sua conta do Cosmos DB: um para threads de usuário, um para mensagens do sistema e outro para dados de configuração do agente, como instruções, ferramentas e nomes. Esse comportamento padrão reduz a complexidade da instalação e ainda impõe limites de dados rígidos entre projetos.

Hosts de capacidade

Hosts de capacidade são sub-recursos na conta e no projeto, permitindo a interação com o Serviço de Agente.

  • Host de funcionalidade da conta: tem um corpo de solicitação vazio, com exceção do parâmetro capabilityHostKind="Agents".
  • Host de funcionalidade do projeto: especifica recursos para armazenar o estado do agente, sejam eles recursos multilocatário gerenciados pela Microsoft (configuração básica) ou recursos de único locatário de propriedade do cliente (configuração padrão). O host de funcionalidade do projeto funciona como as configurações do projeto.

Limitações

  • Você não pode atualizar o host de funcionalidade depois que ele é definido para um projeto ou conta.

Provisionar recursos passo a passo

Nota

No momento, o portal do Foundry dá suporte apenas à configuração básica do agente. Para configurar a configuração do agente padrão, use as etapas manuais ou o modelo Bicep descrito nesta seção.

Provisionamento manual

Siga estas etapas para provisionar manualmente todos os recursos necessários para a instalação do agente padrão. Permita aproximadamente de 30 a 45 minutos para o processo de provisionamento completo.

Fase 1: Criar recursos dependentes

  1. Crie ou reutilize os recursos a seguir. Você pode criar novos recursos ou passar a ID do recurso dos existentes:
    • Conta do Azure Cosmos DB para NoSQL
    • Conta de Armazenamento do Azure
    • Recurso do Pesquisa de IA do Azure 
    • Recurso do Azure Key Vault (usado para gerenciar segredos e cadeias de conexão para a infraestrutura do agente)
    • [Opcional] Recurso do Aplicativo Azure Insights
    • [Opcional] Recurso da Fundição existente

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

  1. Criar um recurso do Microsoft Foundry.
  2. Criar conexões no nível da conta:
    • Crie uma conexão de conta com o recurso do Application Insights.
  3. Implante o gpt-4o ou outro modelo compatível com o agente.
  4. Crie um projeto.
  5. Criar conexões de projeto:
    • [Se fornecido] Conexão do projeto com o recurso Foundry.
    • Conexão do projeto com a conta de Armazenamento do Azure.
    • Conexão do projeto com o recurso do Pesquisa de IA do Azure .
    • Conexão do projeto com a conta do Cosmos DB.

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

A identidade gerenciada do projeto inclui SMI (Identidade Gerenciada) atribuída pelo sistema e UMI (Identidade Gerenciada atribuída pelo usuário).

  1. Atribua a identidade gerenciada do projeto (para SMI) as seguintes funções:
    • Operador do Cosmos DB no nível da conta para o recurso do Cosmos DB.
    • Colaborador da Conta de Armazenamento no nível da conta para o recurso de Conta de Armazenamento.

Fase 4: configurar hosts de capacidade

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

Fase 5: Atribuir permissões de recurso granular

  1. Atribua a identidade gerenciada do projeto (SMI e UMI) as seguintes funções nos escopos de recurso especificados:
    • Pesquisa de IA do Azure  (atribuir antes ou depois da criação do host de funcionalidade):
      • Colaborador de dados do índice de pesquisa
      • Colaborador do Serviço de Pesquisa
    • Contêiner de Armazenamento de Blobs do Azure: <workspaceId>-azureml-blobstore
      • Colaborador de dados de blob de armazenamento
    • Contêiner de Armazenamento de Blobs do Azure: <workspaceId>-agents-blobstore
      • Proprietário de dados de blob de armazenamento
    • Cosmos DB para Banco de Dados NoSQL: enterprise_memory
      • Colaborador de dados internos do Cosmos DB
      • Escopo: Nível de banco de dados para cobrir todos os contêineres (nenhuma atribuição de função específica de contêiner individual é necessária).

Fase 6: Conceder acesso ao desenvolvedor

  1. Atribua a todos os desenvolvedores que precisam criar ou editar agentes no projeto a função de usuário de IA do Azure no escopo do projeto.

Usar um modelo Bicep

Use uma conta existente do Azure OpenAI, da conta de Armazenamento do Azure, do Azure Cosmos DB para conta noSQL ou do recurso do Pesquisa de IA do Azure  fornecendo a ID de recurso completa do ARM (Azure Resource Manager) no arquivo de modelo do agente padrão.

Usar um recurso existente do Azure OpenAI

  1. Siga as etapas na Configuração do Ambiente para obter a ID do recurso de conta do Foundry Tools.

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

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

Usar uma conta de Armazenamento do Azure existente para armazenamento de arquivos

  1. Entre na CLI do Azure e selecione a assinatura com sua conta de armazenamento:

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

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

    O resultado é o valor aiStorageAccountResourceID que você precisa no modelo.

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

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

Usar uma conta existente do Azure Cosmos DB para NoSQL para armazenamento de threads

Uma conta do Azure Cosmos DB para NoSQL é criada para cada conta do Foundry. Para obter requisitos de taxa de transferência e dimensionamento de vários projetos, consulte os requisitos de taxa de transferência do Cosmos DB.

Nota

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

  1. Entre na CLI do Azure e selecione a assinatura com sua conta do Cosmos DB:

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

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

    O resultado é o valor cosmosDBResourceId que você precisa no modelo.

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

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

Usar um recurso existente do Pesquisa de IA do Azure 

  1. Entre na CLI do Azure e selecione a assinatura com o recurso de pesquisa:

    az login
    
  2. Execute o seguinte comando para obter a ID do 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 arquivo de modelo do agente padrão, substitua o seguinte marcador de posição:

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

Verificar sua configuração

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

  1. No portal do Azure, navegue até seu projeto do Foundry e confirme se todas as conexões (Armazenamento, Cosmos DB, Pesquisa de IA) aparecem nas configurações do projeto.
  2. Verifique se o status do host de funcionalidade é exibido como Bem-sucedido para a conta e o projeto.
  3. Verifique as atribuições de função navegando até a página IAM (controle de acesso) de cada recurso e confirmando que a identidade gerenciada do projeto tem as funções esperadas.
  4. Crie um agente de teste para confirmar a funcionalidade de ponta a ponta.

Solucionar problemas comuns

Sintoma Causa Resolução
CapabilityHostProvisioningFailed ou o status de funcionalidade do host mostra falha Taxa de transferência de dados insuficiente do Cosmos DB Verifique se sua conta do Cosmos DB tem pelo menos 3.000 RU/s (1.000 RU/s por contêiner × 3 contêineres). Para vários projetos, multiplique pelo número de projetos.
403 Forbidden quando o agente lê ou grava arquivos Ausência de atribuições de função de armazenamento Verifique se a identidade gerenciada do projeto tem Colaborador de Dados de Blob de Armazenamento no contêiner <workspaceId>-azureml-blobstore e Proprietário de Dados de Blob de Armazenamento no contêiner <workspaceId>-agents-blobstore.
SearchIndexNotFound ou 403 em operações de pesquisa Funções de busca ausentes Confirme que a identidade gerenciada do projeto tenha as funções de Colaborador de Dados de Índice de Pesquisa e Colaborador de Serviço de Pesquisa no recurso de Pesquisa de IA do Azure .
AuthorizationFailed ao criar ou editar agentes Função de usuário ausente Atribua a função de usuário de IA do Azure ao desenvolvedor no escopo do projeto.
Solicitação de atualização para o host de capacidade retorna 400 BadRequest Atualização sem suporte Os hosts de funcionalidade não podem ser atualizados após a criação. Exclua e recrie o projeto se forem necessárias alterações de configuração.