Agenti OpenAI

Microsoft Agent Framework supporta due tipi di client OpenAI, ovvero risposte e completamento della chat, sia in C# che in Python. Le risposte sono il client primario consigliato: è destinato all'API Risposte OpenAI più recente e supporta il set completo di strumenti ospitati (interprete del codice, ricerca di file, ricerca Web, MCP ospitato, generazione di immagini). Usa Chat Completion quando ti serve un'ampia compatibilità con i modelli o se hai un'integrazione esistente con Chat Completions da mantenere.

Tipo di client API Ideale per
Risposte (scelta consigliata) API delle risposte Agenti completi con strumenti ospitati (interprete del codice, ricerca di file, ricerca Web, MCP ospitato)
Completamento conversazione API di completamento chat Agenti semplici, supporto generale del modello

Annotazioni

L'API OpenAI Assistants è deprecata da OpenAI. Il nuovo codice deve usare il client Risposte. Se si esegue la migrazione da un'app basata su Assistenti esistente, vedere la guida alla migrazione Kernel semantico.

Come iniziare

Aggiungere i pacchetti NuGet necessari al progetto.

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

Risposte clienti

Il client Risposte è il client primario consigliato e offre il supporto più ricco di strumenti, tra cui interprete del codice, ricerca di file, ricerca Web e MCP ospitato.

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."));

Strumenti supportati: Strumenti per le funzioni, approvazione degli strumenti, interprete del codice, ricerca di file, ricerca Web, MCP ospitato, strumenti MCP locali.

Cliente per il completamento della chat

Il client Chat Completion offre un modo semplice e diretto per creare agenti tramite l'API Chat Completions. Usalo quando hai bisogno di un'ampia compatibilità con i modelli o se hai già un'integrazione esistente di 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."));

Strumenti supportati: Strumenti per le funzioni, ricerca Web, strumenti MCP locali.

Assistenti del cliente

Annotazioni

L'API OpenAI Assistants è deprecata da OpenAI. Agent Framework non include più la documentazione di un client per Assistants — per il nuovo codice, usa il client Responses indicato sopra. Per la migrazione di un'app esistente, vedere la guida alla migrazione Kernel semantico.

Uso dell'agente

Entrambi i tipi client producono uno standard AIAgent che supporta le stesse operazioni dell'agente (streaming, thread, middleware).

Per altre informazioni, vedere le esercitazioni introduttive.

Tools

I client openAI .NET espongono superfici degli strumenti diverse a seconda dell'API di destinazione. La stessa matrice si applica anche ai client Azure OpenAI corrispondenti nella pagina del provider Azure OpenAI.

Strumento Responses Completamento della chat
Strumenti per le funzioni
Approvazione degli strumenti
Interprete di codice
Ricerca file
Ricerca Web
Strumenti MCP ospitati
Strumenti MCP locali

Annotazioni

L'approvazione dello strumento viene fornita dal client di chat di richiamo della funzione del framework, quindi funziona con qualsiasi chiamata dello strumento di funzione indipendentemente dall'API sottostante.

Annotazioni

L'API Degli assistenti OpenAI è deprecata da OpenAI e Python non fornisce più un client/provider di compatibilità Assistants. Usare OpenAIChatClient per le risposte o OpenAIChatCompletionClient per i completamenti della chat. Se si esegue la migrazione da una versione precedente di Agent Framework Python, vedere la guida Python modifiche significative. Se si esegue la migrazione da Kernel semantico, vedere la guida alla migrazione Kernel semantico.

Suggerimento

In Python, Azure OpenAI usa ora gli stessi agent_framework.openai client illustrati qui. Passare esplicitamente input di routing di Azure, come credential o azure_endpoint, quando si desidera utilizzare il routing di Azure, quindi impostare api_version per la superficie API di Azure che si desidera usare. Se OPENAI_API_KEY è configurato, i client generici rimangono in OpenAI anche quando le variabili AZURE_OPENAI_* sono presenti. Se si dispone già di un URL completo .../openai/v1 , usare base_url anziché azure_endpoint. Per gli endpoint del progetto Microsoft Foundry e il servizio Foundry Agent, vedere la pagina del provider Microsoft Foundry. Per i runtime locali, vedere Foundry Local.

Installazione

pip install agent-framework-openai

agent-framework-openai è il pacchetto del provider Python facoltativo per l'utilizzo diretto di OpenAI e OpenAI di Azure.

Impostazione

I client di chat OpenAI Python usano questi modelli di variabili di ambiente:

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

Funzionalità comuni

Questi tipi di client supportano queste funzionalità dell'agente standard:

Strumenti per le funzioni

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)

Conversazioni a più turni

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"

Trasmissione in diretta

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()

Uso dell'agente

Tutti i tipi di client producono uno standard Agent che supporta le stesse operazioni.

Per altre informazioni, vedere le esercitazioni introduttive.

Tools

I client OpenAI Python espongono superfici degli strumenti diverse a seconda dell'API sottostante. OpenAIChatClient (Risposte) fornisce factory di strumenti ospitati tramite 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 espone solo get_web_search_tool. Entrambi funzionano con gli strumenti per le funzioni e i server MCP locali.

La stessa matrice si applica quando si configurano questi client per Azure OpenAI — vedere Azure OpenAI.

Strumento OpenAIChatClient (Risposte) OpenAIChatCompletionClient (Completamento della chat)
Strumenti per le funzioni
Approvazione degli strumenti
Interprete di codice
Ricerca file
Ricerca Web
Generazione di immagini ✅ (get_image_generation_tool)
Shell ospitata ✅ (get_shell_tool)
Strumenti MCP ospitati
Strumenti MCP locali

Annotazioni

L'approvazione dello strumento viene gestita dal client di chat richiamante della funzione del framework, quindi funziona con qualsiasi chiamata di strumento di funzione indipendentemente dall'API sottostante.

Passaggi successivi