OpenAI do Azure

O Microsoft Agent Framework dá suporte a dois tipos de cliente do Azure OpenAI, cada um voltado para um conjunto de APIs diferente, com diferentes capacidades de ferramentas. As respostas são o cliente primário recomendado: ele dá suporte ao conjunto completo de ferramentas hospedadas. Use o Chat Completions quando precisar de compatibilidade com uma ampla variedade de modelos ou já tiver uma integração com o Chat Completions que você precise manter.

Tipo de cliente API Mais adequado para
Respostas (recomendado) API de respostas Agentes completos com ferramentas hospedadas (interpretador de código, pesquisa de arquivo, pesquisa na Web, MCP hospedado)
Conclusão do chat API de Conclusões de Chat Agentes simples, amplo suporte a modelos

Tip

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

Note

A API de Assistentes Azure OpenAI foi preterida. O novo código deve usar o cliente Responses. Se você estiver migrando de um aplicativo baseado em Assistentes existente, consulte o guia de migração Kernel semâ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 Respostas

O cliente de Respostas é o cliente primário recomendado e fornece o suporte de ferramenta mais avançado, incluindo interpretador de código, pesquisa de arquivo, pesquisa na Web e MCP hospedado.

var responsesClient = client.GetResponsesClient();

AIAgent agent = responsesClient.AsAIAgent(
    model: "gpt-4o-mini",
    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 conclusão de chat

O cliente de Conclusão de Chat fornece uma maneira simples de criar agentes usando a API de Conclusões de Chat. Use-o quando precisar de ampla compatibilidade com modelos ou já tiver uma integração existente com o Chat Completions.

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 Assistentes

Note

A API de Assistentes Azure OpenAI foi preterida. O framework de agentes não documenta mais um cliente Assistants — use o cliente Responses acima para novos códigos. Para migrar um aplicativo existente, consulte o guia de migração Kernel semântico.

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);
}

Tip

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

Usando o agente

Ambos os tipos de cliente produzem um AIAgent padrão que dá suporte às mesmas operações de agente (streaming, threads, middleware).

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

Tools

Os clientes .NET do Azure OpenAI compartilham o mesmo conjunto de ferramentas dos clientes OpenAI correspondentes. Consulte a página do provedor OpenAI para obter a matriz completa por cliente — as variantes do Azure de Responses e Chat Completion espelham seus equivalentes diretos da OpenAI.

Tool Respostas Conclusão do chat
Ferramentas de Funções
Aprovação da ferramenta
Interpretador de Código
Pesquisa de Arquivo
Pesquisa na Web
Ferramentas MCP hospedadas
Ferramentas MCP locais

Note

Aprovação de Ferramenta é fornecida pelo cliente de chat da estrutura com invocação de funções, portanto funciona com qualquer chamada de ferramenta baseada em função, independentemente da API subjacente.

Diretrizes do Python

Important

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 configurações AZURE_OPENAI_* 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 de Agente do Foundry, consulte a página do provedor do Foundry. Para obter uma lista de verificação de migração mais ampla, consulte o guia de alterações significativas do Python.

Tools

Python Azure OpenAI usa os mesmos clientes agent_framework.openai que o OpenAI direto, portanto, a superfície da ferramenta é idêntica. Consulte a seção Ferramentas na página do provedor OpenAI para obter a matriz completa por cliente.

OpenAI do Azure

No Go, o OpenAI do Azure usa o mesmo pacote openaiprovider que o OpenAI direto, com inicialização de cliente específica do Azure.

Installation

go get github.com/microsoft/agent-framework-go

Criar um agente Azure OpenAI

import (
    "cmp"
    "fmt"
    "os"

    "github.com/microsoft/agent-framework-go/agent"
    "github.com/microsoft/agent-framework-go/provider/openaiprovider"

    "github.com/Azure/azure-sdk-for-go/sdk/azidentity"
    openai "github.com/openai/openai-go/v3"
    "github.com/openai/openai-go/v3/azure"
)

endpoint := os.Getenv("AZURE_OPENAI_ENDPOINT")
deployment := os.Getenv("AZURE_OPENAI_DEPLOYMENT_NAME")
apiVersion := cmp.Or(os.Getenv("AZURE_OPENAI_API_VERSION"), "2025-01-01-preview")

token, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
    panic(err)
}

a := openaiprovider.NewChatCompletionsAgent(
    openai.NewClient(
        azure.WithEndpoint(endpoint, apiVersion),
        azure.WithTokenCredential(token),
    ),
    openaiprovider.AgentConfig{
        Model: deployment,
        Instructions: "You are a helpful assistant.",
        Config: agent.Config{
            Name:         "AzureAgent",
        },
    },
)

resp, err := a.RunText(ctx, "Hello!").Collect()

Aviso

azidentity.NewDefaultAzureCredential é conveniente para o desenvolvimento, mas requer uma consideração cuidadosa na produção. Em produção, considere usar uma credencial específica, como azidentity.NewManagedIdentityCredential, para evitar problemas de latência, tentativas não intencionais de credenciais e possíveis riscos de segurança decorrentes de mecanismos de fallback.

Usar a API de Respostas

Use openaiprovider.NewResponsesAgent com o mesmo cliente OpenAI configurado para o Azure quando sua implantação do OpenAI do Azure oferecer suporte à API Responses:

responsesAgent := openaiprovider.NewResponsesAgent(
    openai.NewClient(
        azure.WithEndpoint(endpoint, apiVersion),
        azure.WithTokenCredential(token),
    ),
    openaiprovider.AgentConfig{
        Model: deployment,
        Instructions: "You are a helpful assistant.",
        Config: agent.Config{
            Name: "AzureResponsesAgent",
        },
    },
)

response, err := responsesAgent.RunText(ctx, "Summarize the latest deployment status.").Collect()
if err != nil {
    return err
}
fmt.Println(response.String())

Variáveis de ambiente

Variable Description
AZURE_OPENAI_ENDPOINT O endpoint do seu recurso Azure OpenAI
AZURE_OPENAI_DEPLOYMENT_NAME O nome da implantação ou do modelo
AZURE_OPENAI_API_VERSION Versão da API (por exemplo, 2025-01-01-preview)

Tip

Consulte o exemplo de Conclusões de Chat do Azure OpenAI e o exemplo de Respostas para obter exemplos completos.

Próximas Etapas