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:
Chatvervollständigung
OPENAI_API_KEY="your-openai-api-key"
OPENAI_CHAT_MODEL_ID="gpt-4o-mini"
Antworten
OPENAI_API_KEY="your-openai-api-key"
OPENAI_RESPONSES_MODEL_ID="gpt-4o-mini"
Assistants
OPENAI_API_KEY="your-openai-api-key"
OPENAI_CHAT_MODEL_ID="gpt-4o-mini"
Chat-Vervollständigungs-Client
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)
Antworten-Client
OpenAIResponsesClient verwendet die Antwort-API – die funktionsreichste Option mit gehosteten Tools.
import asyncio
from agent_framework.openai import OpenAIResponsesClient
async def main():
agent = OpenAIResponsesClient().as_agent(
name="FullFeaturedAgent",
instructions="You are a helpful assistant with access to many tools.",
)
result = await agent.run("Write and run a Python script that calculates fibonacci numbers.")
print(result)
asyncio.run(main())
Unterstützte Tools: Funktionstools, Toolgenehmigung, Codedolmetscher, Dateisuche, Websuche, gehostete MCP, lokale MCP-Tools.
Gehostete Tools mit Antwortclient
Der Antwortclient stellt Methoden für jeden gehosteten Tooltyp bereit get_*_tool() :
async def hosted_tools_example():
client = OpenAIResponsesClient()
# Each tool is created via a client method
code_interpreter = client.get_code_interpreter_tool()
web_search = client.get_web_search_tool()
file_search = client.get_file_search_tool(vector_store_ids=["vs_abc123"])
mcp_tool = client.get_mcp_tool(
name="GitHub",
url="https://api.githubcopilot.com/mcp/",
approval_mode="never_require",
)
agent = client.as_agent(
name="PowerAgent",
instructions="You have access to code execution, web search, files, and GitHub.",
tools=[code_interpreter, web_search, file_search, mcp_tool],
)
result = await agent.run("Search the web for Python best practices, then write a summary.")
print(result)
Assistent-Client
OpenAIAssistantProvider verwendet die Assistenten-API – serververwaltete Agents mit integriertem Codedolmetscher und Dateisuche. Der Anbieter verwaltet den Assistentenlebenszyklus automatisch.
import asyncio
from agent_framework.openai import OpenAIAssistantProvider
from openai import AsyncOpenAI
async def main():
client = AsyncOpenAI()
provider = OpenAIAssistantProvider(client)
agent = await provider.create_agent(
name="DataAnalyst",
model="gpt-4o-mini",
instructions="You analyze data using code execution.",
)
try:
result = await agent.run("Calculate the first 20 prime numbers.")
print(result)
finally:
await provider.delete_agent(agent.id)
asyncio.run(main())
Unterstützte Tools: Funktionstools, Codedolmetscher, Dateisuche, lokale MCP-Tools.
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".