Agentes do Azure OpenAI

O Microsoft Agent Framework dá suporte a três tipos de cliente do Azure OpenAI distintos, cada um direcionado a uma superfície de API diferente com diferentes funcionalidades de ferramenta:

Tipo de cliente API Mais Adequado Para
Conclusão do chat API de Conclusões de Chat Agentes simples, amplo suporte a modelos
Respostas API de respostas Agentes completos com ferramentas hospedadas (interpretador de código, pesquisa de arquivo, pesquisa na Web, MCP hospedado)
Assistentes API de Assistentes Agentes gerenciados pelo servidor com interpretador de código e pesquisa de arquivos

Dica

Para obter equivalentes openai diretos (OpenAIChatClient, OpenAIChatCompletionClient, OpenAIAssistantsClient), consulte a página do provedor OpenAI. O suporte à ferramenta é idêntico.

Introdução

Adicione os pacotes NuGet necessários ao seu projeto.

dotnet add package Azure.AI.OpenAI --prerelease
dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease

Todos os tipos de cliente do Azure OpenAI começam criando um AzureOpenAIClient:

using System;
using Azure.AI.OpenAI;
using Azure.Identity;
using Microsoft.Agents.AI;

AzureOpenAIClient client = new AzureOpenAIClient(
    new Uri("https://<myresource>.openai.azure.com"),
    new DefaultAzureCredential());

Aviso

DefaultAzureCredential é conveniente para o desenvolvimento, mas requer uma consideração cuidadosa na produção. Em produção, considere o uso de uma credencial específica (por exemplo, ManagedIdentityCredential) para evitar problemas de latência, investigação de credenciais não intencionais e possíveis riscos de segurança de mecanismos de fallback.

Cliente de conclusão de chat

O cliente de Conclusão de Chat fornece uma maneira simples de criar agentes usando a API de ChatCompletion.

var chatClient = client.GetChatClient("gpt-4o-mini");

AIAgent agent = chatClient.AsAIAgent(
    instructions: "You are good at telling jokes.",
    name: "Joker");

Console.WriteLine(await agent.RunAsync("Tell me a joke about a pirate."));

Ferramentas com suporte: Ferramentas de funções, pesquisa na Web, ferramentas MCP locais.

Cliente de Respostas

O cliente Responses fornece o suporte mais avançado a ferramentas, incluindo interpretador de código, pesquisa de arquivos, pesquisa na web e MCP hospedado.

var responsesClient = client.GetResponseClient("gpt-4o-mini");

AIAgent agent = responsesClient.AsAIAgent(
    instructions: "You are a helpful coding assistant.",
    name: "CodeHelper");

Console.WriteLine(await agent.RunAsync("Write a Python function to sort a list."));

Ferramentas com suporte: Ferramentas de funções, aprovação da ferramenta, interpretador de código, pesquisa de arquivo, pesquisa na Web, MCP hospedado, ferramentas MCP locais.

Cliente de Assistentes

O cliente Assistentes cria agentes gerenciados pelo servidor com interpretador de código interno e pesquisa de arquivos.

var assistantsClient = client.GetAssistantClient();

AIAgent agent = assistantsClient.AsAIAgent(
    instructions: "You are a data analysis assistant.",
    name: "DataHelper");

Console.WriteLine(await agent.RunAsync("Analyze trends in the uploaded data."));

Ferramentas com suporte: Ferramentas de função, interpretador de código, pesquisa de arquivo, ferramentas MCP locais.

Ferramentas de Funções

Você pode fornecer ferramentas de função personalizadas para qualquer agente do Azure OpenAI:

using System.ComponentModel;
using Microsoft.Extensions.AI;

[Description("Get the weather for a given location.")]
static string GetWeather([Description("The location to get the weather for.")] string location)
    => $"The weather in {location} is cloudy with a high of 15°C.";

AIAgent agent = new AzureOpenAIClient(
    new Uri(endpoint),
    new DefaultAzureCredential())
     .GetChatClient(deploymentName)
     .AsAIAgent(instructions: "You are a helpful assistant", tools: [AIFunctionFactory.Create(GetWeather)]);

Console.WriteLine(await agent.RunAsync("What is the weather like in Amsterdam?"));

Respostas de transmissão contínua

await foreach (var update in agent.RunStreamingAsync("Tell me a joke about a pirate."))
{
    Console.Write(update);
}

Dica

Consulte os exemplos do .NET para obter exemplos executáveis completos.

Usando o agente

Todos os três tipos de cliente produzem um padrão AIAgent que suporta as mesmas operações de agente (streaming, threads, middleware).

Para obter mais informações, consulte os tutoriais de Introdução.

Diretrizes do Python

Importante

As diretrizes do Python para Azure OpenAI agora estão na página do provedor OpenAI. Use essa página para OpenAIChatCompletionClient, OpenAIChatClient, e OpenAIEmbeddingClient, mapeamento de implantação-nome-para-model, entradas explícitas de roteamento do Azure, como credential ou azure_endpoint, configuração de api_version após a seleção do Azure, além de orientações de base_url para URLs completas .../openai/v1. Se OPENAI_API_KEY também estiver presente, os clientes genéricos permanecerão no OpenAI, a menos que você passe entradas explícitas de roteamento do Azure. Se apenas AZURE_OPENAI_* configurações estiverem presentes, o fallback do ambiente Azure ainda funcionará. As classes de compatibilidade do Python AzureOpenAI* antigas foram removidas do namespace atual agent_framework.azure , portanto, migre o código mais antigo para agent_framework.openai. Para novas soluções em Python, recomendamos implantar modelos com o Microsoft Foundry e conectá-los com FoundryChatClient em vez de permanecer no caminho específico do Azure OpenAI. Se você precisar de pontos de extremidade de projeto do Foundry ou do serviço Foundry Agent, consulte a página do provedor Foundry. Para obter uma lista de verificação de migração mais ampla, consulte o guia de alterações significativas do Python.

Próximas etapas