Agentes OpenAI

O Microsoft Agent Framework suporta dois tipos de clientes OpenAI — Respostas e Conclusão de Chat — tanto em C# como em Python. O Answers é o cliente primário recomendado: dirige-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). 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 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.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 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 = await 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 alojadas do MCP
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.

Próximos passos