Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Microsoft Agent Framework ondersteunt drie verschillende OpenAI-clienttypen, die elk gericht zijn op een ander API-oppervlak met verschillende hulpprogrammamogelijkheden:
| Client type | API | Geschikt voor |
|---|---|---|
| Chatcompletering | API voor voltooiing van chat | Eenvoudige agents, brede modelondersteuning |
| Reacties | Antwoord-API | Volledig uitgeruste agenten met gehoste tools (code interpreter, file search, web search, hosted MCP) |
| Assistenten | Api voor assistenten | Door de server beheerde agents met code-interpreter en bestandszoekopdrachten |
Aanbeveling
Zie de AzureOpenAIChatClient (AzureOpenAIResponsesClient, AzureOpenAIAssistantsClient, ). De ondersteuning van het hulpprogramma is identiek.
Aan de slag komen
Voeg de vereiste NuGet-pakketten toe aan uw project.
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
Client voor chatvoltooiing
De chatvoltooiingsclient biedt een eenvoudige manier om agents te maken met behulp van de 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."));
Ondersteunde hulpprogramma's: Functiehulpprogramma's, webzoekopdrachten, lokale MCP-hulpprogramma's.
Antwoordclient
De Antwoorden-client biedt de meest uitgebreide hulpprogramma-ondersteuning, waaronder code-interpreter, bestandszoekopdrachten, webzoekopdrachten en gehoste 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."));
Ondersteunde hulpprogramma's: Functiehulpprogramma's, goedkeuring van hulpprogramma's, code-interpreter, bestandszoekopdrachten, webzoekopdrachten, gehoste MCP, lokale MCP-hulpprogramma's.
Assistentenclient
De client van assistenten creëert server-beheerde agents met een ingebouwde code-interpreter en bestandszoekfunctie.
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."));
Ondersteunde hulpprogramma's: Functiehulpprogramma's, code-interpreter, bestandszoekopdrachten, lokale MCP-hulpprogramma's.
Aanbeveling
Zie de .NET-voorbeelden voor volledige runnable voorbeelden.
De agent gebruiken
Alle drie de clienttypen produceren een standaard AIAgent die ondersteuning biedt voor dezelfde agentbewerkingen (streaming, threads, middleware).
Zie de Aan de slag-zelfstudies voor meer informatie.
Installatie
pip install agent-framework --pre
Configuratie
Elk clienttype maakt gebruik van verschillende omgevingsvariabelen:
Chatcompletie
OPENAI_API_KEY="your-openai-api-key"
OPENAI_CHAT_MODEL_ID="gpt-4o-mini"
Responses
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"
Client voor chatvoltooiing
OpenAIChatClient maakt gebruik van de API voor chatvoltooiingen, de eenvoudigste optie met brede modelondersteuning.
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())
Ondersteunde hulpprogramma's: Functiehulpprogramma's, webzoekopdrachten, lokale MCP-hulpprogramma's.
Webzoekopdrachten met chatvoltooiing
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)
Antwoordclient
OpenAIResponsesClient maakt gebruik van de Antwoorden-API, de meest uitgebreide optie met gehoste hulpprogramma's.
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())
Ondersteunde hulpprogramma's: Functiehulpprogramma's, goedkeuring van hulpprogramma's, code-interpreter, bestandszoekopdrachten, webzoekopdrachten, gehoste MCP, lokale MCP-hulpprogramma's.
Gehoste hulpprogramma's met antwoordenclient
De antwoordenclient biedt get_*_tool() methoden voor elk gehost hulpprogrammatype:
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)
Assistentenclient
OpenAIAssistantProvider maakt gebruik van de Assistants-API: door de server beheerde agents met ingebouwde code-interpreter en bestandszoekopdrachten. De provider beheert de levenscyclus van assistenten 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())
Ondersteunde hulpprogramma's: Functiehulpprogramma's, code-interpreter, bestandszoekopdrachten, lokale MCP-hulpprogramma's.
Algemene functies
Alle drie de clienttypen ondersteunen deze standaardagentfuncties:
Functiehulpmiddelen
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)
Gesprekken met meerdere beurten
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()
De agent gebruiken
Alle clienttypen produceren een standaard Agent die dezelfde bewerkingen ondersteunt.
Zie de Aan de slag-zelfstudies voor meer informatie.