Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A Microsoft Agent Framework három különböző OpenAI-ügyféltípust támogat, amelyek mindegyike egy másik API-felületet céloz meg különböző eszközképességekkel:
| Ügyfél típusa | API | Legjobb |
|---|---|---|
| Csevegés befejezése | Csevegés befejezések API | Egyszerű ügynökök, széles körű modelltámogatás |
| Válaszok | Responses API | Teljes funkcionalitású ügynökök üzemeltetett eszközökkel (kódértelmező, fájlkeresés, webes keresés, üzemeltetett MCP) |
| Asszisztensek | Assistants API | Kiszolgáló által felügyelt ügynökök kódértelmezővel és fájlkereséssel |
Jótanács
Az Azure OpenAI-ekvivalensek (AzureOpenAIChatClient, AzureOpenAIResponsesClient, ) AzureOpenAIAssistantsClientesetében tekintse meg az Azure OpenAI szolgáltatói oldalát. Az eszköztámogatás azonos.
Első lépések
Adja hozzá a szükséges NuGet-csomagokat a projekthez.
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
Csevegés befejezési kliens
A Csevegés befejezése ügyfél egyszerű módot kínál ügynökök létrehozására a ChatCompletion API használatával.
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."));
Támogatott eszközök: Függvényeszközök, webes keresés, helyi MCP-eszközök.
Válaszkliens
A Válaszok ügyfél biztosítja a leggazdagabb eszköztámogatást, beleértve a kódértelmezőt, a fájlkeresést, a webes keresést és a üzemeltetett MCP-t.
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."));
Támogatott eszközök: Függvényeszközök, eszközjóváhagyás, kódértelmező, fájlkeresés, webes keresés, üzemeltetett MCP, helyi MCP-eszközök.
Asszisztens kliens
Az Assistants-ügyfél kiszolgáló által felügyelt ügynököket hoz létre beépített kódértelmezővel és fájlkereséssel.
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."));
Támogatott eszközök: Függvényeszközök, kódértelmező, fájlkeresés, helyi MCP-eszközök.
Jótanács
A teljes futtatható példákért tekintse meg a .NET-mintákat .
Az ügynök használata
Mindhárom ügyféltípus olyan szabványt AIAgent állít elő, amely ugyanazokat az ügynökműveleteket támogatja (streamelés, szálak, köztes szoftver).
További információkért tekintse meg az első lépéseket ismertető oktatóanyagokat.
Telepítés
pip install agent-framework --pre
Konfiguráció
Minden ügyféltípus különböző környezeti változókat használ:
Csevegés befejezése
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"
Csevegés befejezési kliens
OpenAIChatClient A Chat Completions API-t használja – ez a legegyszerűbb lehetőség széles modelltámogatással.
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())
Támogatott eszközök: Függvényeszközök, webes keresés, helyi MCP-eszközök.
Webes keresés csevegés befejezésével
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)
Válaszügyfél
OpenAIResponsesClient a Responses API-t használja – a legtöbb funkcióval rendelkező lehetőség a tárhelyen futó eszközökkel.
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())
Támogatott eszközök: Függvényeszközök, eszközjóváhagyás, kódértelmező, fájlkeresés, webes keresés, üzemeltetett MCP, helyi MCP-eszközök.
Üzemeltetett eszközök válaszügyféllel
A Válaszok ügyfél minden üzemeltetett eszköztípushoz biztosít get_*_tool() metódusokat:
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)
Ügyfél asszisztensei
OpenAIAssistantProvider Az Assistants API-t használja – a kiszolgáló által felügyelt ügynököket beépített kódértelmezővel és fájlkereséssel. A szolgáltató automatikusan kezeli az asszisztens életciklusát.
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())
Támogatott eszközök: Függvényeszközök, kódértelmező, fájlkeresés, helyi MCP-eszközök.
Gyakori funkciók
Mindhárom ügyféltípus támogatja ezeket a standard ügynökszolgáltatásokat:
Függvényeszközök
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)
Többfordulós beszélgetések
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"
Online közvetítés
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()
Az ügynök használata
Minden ügyféltípus olyan szabványt Agent hoz létre, amely ugyanazokat a műveleteket támogatja.
További információkért tekintse meg az első lépéseket ismertető oktatóanyagokat.