Freigeben über


OpenAI-Agents

Microsoft Agent Framework unterstützt drei unterschiedliche OpenAI-Clienttypen, die jeweils auf eine andere API-Oberfläche mit unterschiedlichen Toolfunktionen abzielen:

Clienttyp API Am besten geeignet für
Chatabschluss API für Chatabschlusse Einfache Agents, umfassende Modellunterstützung
Antworten Antwort-API- Umfassende Agents mit gehosteten Tools (Codedolmetscher, Dateisuche, Websuche, gehostete MCP)
Assistenten Assistenten-API Server-verwaltete Agenten mit Code-Interpreter und Dateisuche

Tipp

Informationen zu Azure OpenAI-Entsprechungen (AzureOpenAIChatClient, AzureOpenAIResponsesClient, AzureOpenAIAssistantsClient) finden Sie auf der Azure OpenAI-Anbieterseite. Die Toolunterstützung ist identisch.

Erste Schritte

Fügen Sie dem Projekt die erforderlichen NuGet-Pakete hinzu.

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

Chat-Vervollständigungs-Client

Der Chat-Vervollständigungsclient bietet eine einfache Möglichkeit zum Erstellen von Agents mithilfe der ChatCompletion-API.

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

Unterstützte Tools: Funktionstools, Websuche, lokale MCP-Tools.

Antworten-Client

Der Antwortclient bietet die reichhaltigeste Toolunterstützung, einschließlich Codedolmetscher, Dateisuche, Websuche und gehosteter MCP.

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

Unterstützte Tools: Funktionstools, Toolgenehmigung, Codedolmetscher, Dateisuche, Websuche, gehostete MCP, lokale MCP-Tools.

Assistent-Client

Der Assistent-Client erstellt serververwaltete Agents mit integriertem Codedolmetscher und Dateisuche.

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

Unterstützte Tools: Funktionstools, Codedolmetscher, Dateisuche, lokale MCP-Tools.

Tipp

Vollständige Runnable-Beispiele finden Sie in den .NET-Beispielen .

Den Agent verwenden

Alle drei Clienttypen erzeugen einen Standard AIAgent , der dieselben Agentvorgänge unterstützt (Streaming, Threads, Middleware).

Weitere Informationen finden Sie in den Lernprogrammen "Erste Schritte".

Installation

pip install agent-framework --pre

Konfiguration

Jeder Clienttyp verwendet unterschiedliche Umgebungsvariablen:

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

Erstellen Sie OpenAI-Agenten

OpenAIChatClient verwendet die Chat-Vervollständigungs-API – die einfachste Option mit umfassender Modellunterstützung.

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

Unterstützte Tools: Funktionstools, Websuche, lokale MCP-Tools.

Websuche mit Chatabschluss

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)

Allgemeine Features

Alle drei Clienttypen unterstützen diese Standard-Agent-Features:

Funktionstools

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)

Multi-Turn-Unterhaltungen

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"

Streamen

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

Den Agent verwenden

Alle Clienttypen erzeugen einen Standard Agent , der dieselben Vorgänge unterstützt.

Weitere Informationen finden Sie in den Lernprogrammen "Erste Schritte".

Nächste Schritte