Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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) |
Tip
Consulte a amostra de Completação de Chats do OpenAI do Azure e a amostra de Respostas para exemplos completos.