Megosztás:


OpenAI-ügynökök

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.

Következő lépések