Azure OpenAI

O Microsoft Agent Framework suporta dois tipos de clientes Azure OpenAI, cada um direcionado para uma superfície API diferente com capacidades de ferramenta distintas. O Answers é o cliente primário recomendado: suporta todo o conjunto de ferramentas alojadas. Utilize o Chat Completion quando precisar de compatibilidade abrangente com modelos ou já tiver uma integração com o Chat Completions que pretenda manter.

Tipo de Cliente API Ideal para
Respostas (recomendado) API de Respostas Agentes completos com ferramentas alojadas (interpretador de código, pesquisa de ficheiros, pesquisa web, MCP alojado)
Conclusão do Chat API de Completação de Chat Agentes simples, amplo suporte de modelos

Tip

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

Observação

A API do Azure OpenAI Assistants está obsoleta. O novo código deve usar o cliente Responses. Se estiver a migrar de uma aplicação já existente baseada em Assistentes, 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 clientes Azure OpenAI começam pela criação de 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());

Warning

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

Cliente de Respostas

O cliente Respostas é o cliente principal recomendado e oferece o suporte de ferramentas mais rico, incluindo interpretador de código, pesquisa de ficheiros, pesquisa web e MCP alojado.

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 suportadas: Ferramentas funcionais, aprovação de ferramentas, interpretador de código, pesquisa de ficheiros, pesquisa web, MCP alojado, ferramentas locais de MCP.

Cliente de Conclusão de Chat

O cliente Chat Completion oferece uma forma direta de criar agentes usando a API Chat Completions. Use-o quando precisar de uma ampla compatibilidade de modelos ou quando tiver uma integração já 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 suportadas: Ferramentas funcionais, pesquisa na web, ferramentas MCP locais.

Assistentes de Cliente

Observação

A API do Azure OpenAI Assistants está obsoleta. O Agent Framework já não documenta um cliente Assistants — use o cliente Responses acima para novo código. Para migrar uma aplicação existente, consulte o guia de migração Kernel Semântico.

Ferramentas de Função

Pode fornecer ferramentas de função personalizadas a qualquer agente 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 streaming

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

Tip

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

Usando o agente

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

Para mais informações, consulte os tutoriais para começar.

Tools

Os clientes OpenAI .NET do Azure partilham a sua superfície de ferramentas com os clientes OpenAI correspondentes. Consulte a página do fornecedor OpenAI para a matriz completa por cliente — as variantes do Azure de Responses e Chat Completions correspondem aos seus equivalentes diretos da OpenAI.

Tool Responses Conclusão do bate-papo
Ferramentas Funcionais
Aprovação de Ferramentas
Intérprete de código
Pesquisa de ficheiros
Pesquisa na Web
Ferramentas alojadas do MCP
Ferramentas MCP Locais

Observação

A Aprovação de Ferramentas é fornecida pelo cliente de chat invocador de funções do framework, pelo que funciona com qualquer chamada de função e ferramenta, independentemente da API subjacente.

Orientação em Python

Importante

A orientação do Python para o Azure OpenAI está agora disponível na página do provedor OpenAI. Utilize essa página para OpenAIChatCompletionClient, OpenAIChatClient, e OpenAIEmbeddingClient, mapeamento do nome-de-implementação 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 para URLs completos base_url. Se OPENAI_API_KEY também estiver presente, os clientes genéricos permanecem na plataforma OpenAI, a menos que passe entradas explícitas de roteamento da Azure. Se só as definições AZURE_OPENAI_* estiverem presentes, o fallback do ambiente Azure continua a funcionar. As antigas classes de compatibilidade em Python AzureOpenAI* foram removidas do namespace atual agent_framework.azure , por isso migre código antigo para agent_framework.openai. Para novas soluções Python, recomendamos implementar modelos com o Microsoft Foundry e conectá-los através de FoundryChatClient em vez de restringir-se ao caminho específico do Azure OpenAI. Se precisar de endpoints de projeto Foundry ou do Serviço de Agentes Foundry, consulte a página de fornecedores Foundry. Para uma lista de verificação de migração mais ampla, consulte o guia de alterações significativas em Python.

Tools

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

Azure OpenAI

No Go, o Azure OpenAI usa o mesmo openaiprovider pacote que o OpenAI direto, com inicialização específica do cliente 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()

Warning

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, sondagens não intencionais de credenciais e potenciais riscos de segurança provenientes de mecanismos de recurso.

Use a API de Respostas

Utilize openaiprovider.NewResponsesAgent com o mesmo cliente OpenAI configurado no Azure quando a sua implementação do Azure OpenAI suportar a Responses API:

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 ambientais

Variável Descrição
AZURE_OPENAI_ENDPOINT O endpoint do seu recurso do Azure OpenAI
AZURE_OPENAI_DEPLOYMENT_NAME O nome de implementação/modelo
AZURE_OPENAI_API_VERSION Versão da API (por exemplo, 2025-01-01-preview)

Passos seguintes