Agentes OpenAI

O Microsoft Agent Framework suporta agentes OpenAI em C#, Python e Go. C# e Python suportam dois tipos de clientes OpenAI — Respostas e Chat Completion — enquanto o Go utiliza atualmente o fornecedor Chat Completions. O Answers é o cliente principal recomendado quando disponível: direciona-se para a mais recente API OpenAI Responses e suporta todo o conjunto de ferramentas alojadas (interpretador de código, pesquisa de ficheiros, pesquisa web, MCP alojado, geração de imagens). Use Chat Completion quando precisar de ampla compatibilidade com modelos, suporte para Go ou tiver uma integração existente com Chat Completions que pretenda manter.

Tipo de Cliente API Melhor 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

Observação

A API dos Assistentes OpenAI está obsoleta pela OpenAI. 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 Microsoft.Agents.AI.OpenAI --prerelease

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.

using Microsoft.Agents.AI;
using OpenAI;

OpenAIClient client = new OpenAIClient("<your_api_key>");
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.

using Microsoft.Agents.AI;
using OpenAI;

OpenAIClient client = new OpenAIClient("<your_api_key>");
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 dos Assistentes OpenAI está obsoleta pela OpenAI. 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.

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 expõem diferentes superfícies de ferramentas dependendo da API que pretendem. A mesma matriz aplica-se aos clientes Azure OpenAI correspondentes na página do fornecedor Azure OpenAI.

Tool Respostas Conclusão do bate-papo
Ferramentas Funcionais
Aprovação de Ferramentas
Intérprete de código
Pesquisa de ficheiros
Pesquisa na Web
Ferramentas MCP Hospedadas
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.

Observação

A API dos Assistentes OpenAI está obsoleta pela OpenAI, e o Python já não fornece um cliente/fornecedor de compatibilidade com os Assistentes. Use OpenAIChatClient para respostas ou OpenAIChatCompletionClient para completar chats. Se estiver a migrar de uma versão anterior do Agent Framework Python, consulte o guia Python alterações significativas. Se estiver a migrar de Kernel Semântico, consulte o guia de migração Kernel Semântico.

Sugestão

Em Python, o Azure OpenAI utiliza agora os mesmos agent_framework.openai clientes mostrados aqui. Passe entradas explícitas de roteamento do Azure, como credential ou azure_endpoint, quando quiser o roteamento do Azure, depois defina api_version para a superfície da API do Azure que deseja usar. Se OPENAI_API_KEY estiver configurado, os clientes genéricos permanecem no OpenAI, mesmo quando também existem variáveis AZURE_OPENAI_* presentes. Se já tiver um URL completo .../openai/v1 , use base_url em vez de azure_endpoint. Para os endpoints do projeto Microsoft Foundry e o Serviço de Agentes Foundry, consulte a página do fornecedor Microsoft Foundry. Para horários locais, veja Foundry Local.

Installation

pip install agent-framework-openai

agent-framework-openai é o pacote opcional do fornecedor Python tanto para o uso direto do OpenAI como do Azure OpenAI.

Configuração

Os clientes de chat OpenAI em Python utilizam estes padrões de variáveis de ambiente:

OPENAI_API_KEY="your-openai-api-key"
OPENAI_CHAT_MODEL="gpt-4o-mini"
# Optional shared fallback:
# OPENAI_MODEL="gpt-4o-mini"

Características Comuns

Estes tipos de clientes suportam estas funcionalidades padrão de agente:

Ferramentas de Função

from agent_framework import tool

@tool
def get_weather(location: str) -> str:
    """Get the weather for a given location."""
    return f"The weather in {location} is sunny, 25°C."

async def example():
    agent = OpenAIChatClient().as_agent(
        instructions="You are a weather assistant.",
        tools=get_weather,
    )
    result = await agent.run("What's the weather in Tokyo?")
    print(result)

Conversas com Múltiplos Turnos

async def thread_example():
    agent = OpenAIChatClient().as_agent(
        instructions="You are a helpful assistant.",
    )
    session = agent.create_session()

    result1 = await agent.run("My name is Alice", session=session)
    print(result1)
    result2 = await agent.run("What's my name?", session=session)
    print(result2)  # Remembers "Alice"

Serviço de streaming

async def streaming_example():
    agent = OpenAIChatClient().as_agent(
        instructions="You are a creative storyteller.",
    )
    print("Agent: ", end="", flush=True)
    async for chunk in agent.run("Tell me a short story about AI.", stream=True):
        if chunk.text:
            print(chunk.text, end="", flush=True)
    print()

Usando o agente

Todos os tipos de cliente produzem um padrão Agent que suporta as mesmas operações.

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

Tools

Os clientes OpenAI em Python expõem diferentes superfícies de ferramentas dependendo da API subjacente. OpenAIChatClient (Respostas) as naves alojavam fábricas de ferramentas via client.get_*_tool(...)get_code_interpreter_tool, get_file_search_tool, get_web_search_tool, get_image_generation_tool, get_shell_tool, , e get_mcp_tool. OpenAIChatCompletionClient apenas expõe get_web_search_tool. Ambos funcionam com ferramentas funcionais e servidores MCP locais.

A mesma matriz aplica-se quando aponta estes clientes para Azure OpenAI — veja Azure OpenAI.

Tool OpenAIChatClient (Respostas) OpenAIChatCompletionClient (Conversa Concluída)
Ferramentas Funcionais
Aprovação de Ferramentas
Intérprete de código
Pesquisa de ficheiros
Pesquisa na Web
Geração de Imagem ✅ (get_image_generation_tool)
Shell Hospedado ✅ (get_shell_tool)
Ferramentas MCP Hospedadas
Ferramentas MCP Locais

Observação

A Aprovação de Ferramentas é gerida 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.

Conclusões do OpenAI Chat

O openaiprovider pacote cria agentes usando a API OpenAI Chat Completions.

Installation

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

OpenAI Direct

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

    "github.com/openai/openai-go/v3"
)

a := openaiprovider.NewChatCompletionsAgent(
    openai.NewClient(), // uses OPENAI_API_KEY env var
    openaiprovider.AgentConfig{
        Model: "gpt-4o-mini",
        Instructions: "You are a helpful assistant.",
        Config: agent.Config{
            Name:         "MyAgent",
        },
    },
)

resp, err := a.RunText(ctx, "Tell me a joke.").Collect()

Azure OpenAI

Use o mesmo openaiprovider pacote com credenciais Azure:

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

token, _ := azidentity.NewDefaultAzureCredential(nil)

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{
        },
    },
)

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.

Opções personalizadas

Passe opções específicas do fornecedor usando openaiprovider.ChatCompletionNewParams:

resp, err := a.RunText(ctx, "Hello!",
    openaiprovider.ChatCompletionNewParams(openai.ChatCompletionNewParams{
        Temperature: openai.Float(0.7),
    }),
).Collect()

Ferramentas suportadas: Ferramentas funcionais, pesquisa na web, ferramentas MCP locais.

Sugestão

Consulte o exemplo do fornecedor OpenAI e o exemplo do OpenAI do Azure para exemplos completos.

Próximos passos