Criar um agente de IA do Azure com o Microsoft Agent Framework

Concluído

Sugestão

Consulte a guia Texto e imagens para obter mais detalhes!

O Foundry Agent Service é o fornecedor recomendado para ambientes de produção construídos com o Microsoft Agent Framework. Gere o histórico persistente de conversas do lado do serviço, suporta ferramentas integradas como execução de código e pesquisa de ficheiros, e integra-se perfeitamente com a gestão de identidades do Azure. Estas funcionalidades permitem-lhe focar-se no comportamento do seu agente em vez da sua sobrecarga de infraestrutura.

Configuração de um agente Foundry

Criar e interagir com um agente da Foundry segue uma sequência consistente de passos.

1. Configurar o seu projeto Foundry

Antes de escrever qualquer código, precisa de um projeto Microsoft Foundry com um modelo implementado. Liga-se ao seu projeto usando duas informações:

  • Endpoint do projeto—o URL do seu projeto Foundry.
  • Nome da implementação do modelo — o nome da implementação do modelo que pretende usar para o seu agente.

2. Configurar autenticação

O Agent Framework liga-se ao seu projeto Foundry usando credenciais Azure. Na maioria dos cenários, DefaultAzureCredential resolve automaticamente a credencial correta com base no seu ambiente — CLI do Azure durante o desenvolvimento, identidade gerida em produção. Não é necessário codificar diretamente cadeias de ligação ou chaves de API.

3. Inicializar o cliente de chat Foundry

Crie um cliente de chat Foundry fornecendo as suas credenciais, endpoint do projeto e nome do modelo. Este cliente é a ponte entre a sua candidatura e o Serviço de Agentes da Foundry. Trata da autenticação, do encaminhamento de pedidos e da gestão de sessões no serviço.

4. Criar o agente

Usando o cliente de chat, crie um agente fornecendo um conjunto de instruções que definam o seu comportamento:

  • Instruções — o prompt do sistema que define o papel, objetivos e restrições do agente
  • Ferramentas(opcional) — Funções personalizadas que o agente pode invocar para tomar ações ou recuperar informação

A framework regista quaisquer ferramentas que forneça e gera automaticamente os seus esquemas, para que o modelo saiba quando e como os invocar.

5. Estabelecer uma sessão e gerir o agente

Para começar a interagir, abres uma sessão através da instância do agente. A sessão funciona como o recipiente para o estado da conversa. Você envia mensagens do utilizador para o método de execução da sessão, que processa o pedido, coordena quaisquer chamadas de ferramenta necessárias e devolve a resposta do modelo.

Conversas em vários turnos

Uma única chamada ao método run do agente gere uma troca — uma mensagem de utilizador, uma resposta. Para uma conversa real, precisas que o agente se lembre do que foi dito nos turnos anteriores. É para isso que serve uma sessão .

Para o provedor Foundry, as sessões assentam em armazenamento no lado do serviço — o histórico da conversa reside no Foundry Agent Service, em vez de residir na memória da sua aplicação.

  • Histórico persistente — Como o estado reside do lado do serviço, a conversa do utilizador pode continuar através de múltiplos pedidos, mesmo que a sua aplicação reinicie ou escale para várias instâncias.

  • Histórico local — Para fornecedores que não suportam histórico do lado do serviço, o framework mantém o estado da conversa na memória dentro do objeto de sessão. A história local é adequada para aplicações de curta duração ou sem estado, mas não persiste em processos reiniciados.

Respostas sem streaming vs. respostas em streaming

O Agent Framework suporta dois modos de resposta:

  • Sem transmissão (síncrono)—o método run espera que o agente conclua o processamento e devolve um objeto de resposta completo. O modo sem streaming é a abordagem mais simples e funciona bem quando não é necessário apresentar a saída de forma incremental.

  • Streaming (assíncrono) — o método run devolve um fluxo de resposta sobre o qual iteras de forma assíncrona, recebendo atualizações parciais à medida que o modelo as gera. O streaming é mais adequado para interfaces orientadas para o utilizador, onde mostrar a saída melhora progressivamente a experiência.

Em ambos os casos, a resposta expõe uma text propriedade que agrega todo o conteúdo textual da saída do agente, tornando fácil extrair a resposta final independentemente do modo utilizado.