Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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".