Partilhar via


Agentes OpenAI

O Microsoft Agent Framework suporta três tipos distintos de clientes OpenAI, cada um direcionado para uma superfície API diferente com capacidades distintas de ferramentas:

Tipo de Cliente API Melhor Para
Conclusão do Chat API de Completação de Chat Agentes simples, amplo suporte de modelos
Respostas API de respostas Agentes completos com ferramentas alojadas (interpretador de código, pesquisa de ficheiros, pesquisa web, MCP alojado)
Assistentes API de Assistentes Agentes geridos pelo servidor com interpretador de código e pesquisa de ficheiros

Sugestão

Para equivalentes Azure OpenAI (AzureOpenAIChatClient, AzureOpenAIResponsesClient, AzureOpenAIAssistantsClient), consulte a página do fornecedor Azure OpenAI. O suporte à ferramenta é idêntico.

Introdução

Adicione os pacotes NuGet necessários ao seu projeto.

dotnet add package Microsoft.Agents.AI.OpenAI --prerelease

Cliente de Conclusão de Chat

O cliente Chat Completion oferece uma forma direta de criar agentes usando a API ChatCompletion.

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.

Cliente de Respostas

O cliente Respostas oferece o suporte de ferramentas mais completo, 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.

Assistentes de Cliente

O cliente Assistants cria agentes geridos pelo servidor com interpretador de código e pesquisa de ficheiros incorporados.

using Microsoft.Agents.AI;
using OpenAI;

OpenAIClient client = new OpenAIClient("<your_api_key>");
var assistantsClient = client.GetAssistantClient();

// Assistants are managed server-side
AIAgent agent = assistantsClient.AsAIAgent(
    instructions: "You are a data analysis assistant.",
    name: "DataHelper");

Console.WriteLine(await agent.RunAsync("Analyze trends in the uploaded data."));

Ferramentas suportadas: Ferramentas de funções, interpretador de código, pesquisa de ficheiros, ferramentas MCP locais.

Sugestão

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

Usando o agente

Os três tipos de cliente produzem um padrão AIAgent que suporta as mesmas operações de agente (streaming, threads, middleware).

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

Installation

pip install agent-framework --pre

Configuração

Cada tipo de cliente utiliza diferentes variáveis de ambiente:

OPENAI_API_KEY="your-openai-api-key"
OPENAI_CHAT_MODEL_ID="gpt-4o-mini"

Criar Agentes OpenAI

OpenAIChatClient utiliza a API Chat Completions — a opção mais simples com amplo suporte de modelos.

import asyncio
from agent_framework.openai import OpenAIChatClient

async def main():
    agent = OpenAIChatClient().as_agent(
        name="HelpfulAssistant",
        instructions="You are a helpful assistant.",
    )
    result = await agent.run("Hello, how can you help me?")
    print(result)

asyncio.run(main())

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

Pesquisa na Web com Conclusão de Chat

async def web_search_example():
    client = OpenAIChatClient()
    web_search = client.get_web_search_tool()

    agent = client.as_agent(
        name="SearchBot",
        instructions="You can search the web for current information.",
        tools=web_search,
    )
    result = await agent.run("What are the latest developments in AI?")
    print(result)

Características Comuns

Os três tipos de clientes suportam estas funcionalidades padrão do 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 = OpenAIResponsesClient().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 = OpenAIResponsesClient().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 = OpenAIResponsesClient().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.

Próximos passos