Agenci OpenAI

platforma Microsoft Agent Framework obsługuje dwa typy klientów OpenAI — odpowiedzi i uzupełnianie czatu — zarówno w języku C#, jak i Python. Responses jest zalecanym głównym klientem: jest przeznaczony dla nowszego interfejsu OpenAI Responses API i obsługuje pełny zestaw hostowanych narzędzi (interpreter kodu, wyszukiwanie plików, wyszukiwanie w sieci, hostowany MCP, generowanie obrazów). Użyj Chat Completion, jeśli potrzebujesz szerokiej zgodności z modelami lub masz istniejącą integrację z Chat Completions, którą chcesz zachować.

Typ klienta API Najlepsze dla
Odpowiedzi (zalecane) API odpowiedzi Agenci o pełnej funkcjonalności z hostowanymi narzędziami (interpretor kodu, wyszukiwanie plików, wyszukiwanie w Internecie, hostowana aplikacja MCP)
Uzupełnianie czatu API Uzupełnień Czatowych Proste agenty, szerokie wsparcie dla modeli

Uwaga / Notatka

API asystentów OpenAI zostało wycofane przez OpenAI. Nowy kod powinien używać klienta Responses. Jeśli przeprowadzasz migrację z istniejącej aplikacji opartej na asystentach, zapoznaj się z przewodnikiem migracji Semantic Kernel.

Wprowadzenie

Dodaj wymagane pakiety NuGet do projektu.

dotnet add package Microsoft.Agents.AI.OpenAI --prerelease

Klient odpowiedzi

Klient odpowiedzi jest zalecanym klientem podstawowym i zapewnia najbogatszą obsługę narzędzi, w tym interpreter kodu, wyszukiwanie plików, wyszukiwanie w Internecie i hostowaną aplikację 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."));

Obsługiwane narzędzia: Narzędzia funkcji, zatwierdzanie narzędzi, interpreter kodu, wyszukiwanie plików, wyszukiwanie w Internecie, hostowane MCP, lokalne narzędzia MCP.

Klient uzupełniania rozmów czatowych

Klient Chat Completions zapewnia prosty sposób tworzenia agentów przy użyciu interfejsu Chat Completions API. Użyj tego, gdy potrzebujesz zgodności z wieloma modelami lub masz istniejącą integrację z Chat Completions.

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."));

Obsługiwane narzędzia: Narzędzia funkcji, wyszukiwanie w Internecie, lokalne narzędzia MCP.

Klient asystentów

Uwaga / Notatka

API OpenAI Assistants zostało wycofane przez OpenAI. Framework Agent nie zawiera już dokumentacji klienta Assistants — do nowego kodu użyj powyższego klienta Responses. Aby przeprowadzić migrację istniejącej aplikacji, zobacz przewodnik migracji Semantic Kernel.

Korzystanie z agenta

Oba typy klientów generują standard AIAgent, który obsługuje te same operacje agenta (przesyłanie strumieniowe, wątki, oprogramowanie pośredniczące).

Aby uzyskać więcej informacji, zobacz samouczki 'Pierwsze kroki'.

Tools

Klienci .NET OpenAI uwidaczniają różne powierzchnie narzędzi w zależności od docelowego interfejsu API. Ta sama macierz ma zastosowanie do odpowiadających klientów Azure OpenAI na stronie dostawcy Azure OpenAI.

Tool Responses Zakończenie czatu
Narzędzia funkcji
Zatwierdzanie narzędzi
Interpreter kodów
Wyszukiwanie plików
Wyszukiwanie w Sieci Web
Hostowane narzędzia MCP
Lokalne narzędzia MCP

Uwaga / Notatka

Akceptacja narzędzia jest zapewniana przez klienta czatu platformy wywołującego funkcje, dzięki czemu działa z dowolnym wywołaniem narzędzia-funkcji niezależnie od bazowego API.

Uwaga / Notatka

Interfejs API Asystentów OpenAI został wycofany przez OpenAI, a Python nie udostępnia już klienta/dostawcy zgodności dla Asystentów. Użyj OpenAIChatClient dla Odpowiedzi lub OpenAIChatCompletionClient dla Uzupełnień czatu. Jeśli przeprowadzasz migrację z poprzedniego wydania platformy Agent Framework dla języka Python, zapoznaj się z przewodnikiem po istotnych zmianach w języku Python. Jeśli przeprowadzasz migrację z Semantic Kernel, zobacz przewodnik migracji Semantic Kernel.

Tip

W języku Python usługa Azure OpenAI korzysta teraz z tych samych agent_framework.openai klientów przedstawionych tutaj. Przekaż jawne dane wejściowe routingu platformy Azure, takie jak credential lub azure_endpoint gdy chcesz użyć routingu platformy Azure, a następnie ustaw api_version dla powierzchni interfejsu API platformy Azure, której chcesz użyć. Jeśli OPENAI_API_KEY jest skonfigurowany, klienci ogólni pozostają na platformie OpenAI nawet wtedy, gdy zmienne AZURE_OPENAI_* również są obecne. Jeśli masz już pełny .../openai/v1 adres URL, użyj polecenia base_url zamiast azure_endpoint. W przypadku punktów końcowych projektu Microsoft Foundry i usługi agenta foundry zobacz stronę dostawcy rozwiązania Microsoft Foundry. Aby uzyskać informacje o lokalnych środowiskach uruchomieniowych, zobacz Foundry Local (Lokalne środowisko uruchomieniowe usługi Foundry).

Instalacja

pip install agent-framework-openai

agent-framework-openai jest opcjonalnym pakietem dostawcy języka Python dla użycia bezpośredniego interfejsu OpenAI i usługi Azure OpenAI.

Konfiguracja

Klienci czatu OpenAI języka Python używają tych wzorców zmiennych środowiskowych:

OPENAI_API_KEY="your-openai-api-key"
OPENAI_CHAT_MODEL="gpt-4o-mini"
# Optional shared fallback:
# OPENAI_MODEL="gpt-4o-mini"

Typowe funkcje

Te typy klientów obsługują następujące standardowe funkcje agenta:

Narzędzia funkcji

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 = OpenAIChatClient().as_agent(
        instructions="You are a weather assistant.",
        tools=get_weather,
    )
    result = await agent.run("What's the weather in Tokyo?")
    print(result)

Konwersacje wieloetapowe

async def thread_example():
    agent = OpenAIChatClient().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"

Streaming

async def streaming_example():
    agent = OpenAIChatClient().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()

Korzystanie z agenta

Wszystkie typy klientów tworzą standard Agent , który obsługuje te same operacje.

Aby uzyskać więcej informacji, zobacz samouczki 'Pierwsze kroki'.

Tools

Klienci Python OpenAI uwidaczniają różne powierzchnie narzędzi w zależności od bazowego interfejsu API. OpenAIChatClient (Odpowiedzi) udostępnia hostowane fabryki narzędzi za pośrednictwem client.get_*_tool(...)get_code_interpreter_tool, get_file_search_tool, get_web_search_tool, get_image_generation_tool, get_shell_tool i get_mcp_tool. OpenAIChatCompletionClient uwidacznia get_web_search_tooltylko . Obie współpracują z narzędziami funkcyjnymi i lokalnymi serwerami MCP.

Ta sama macierz obowiązuje, gdy kierujesz tych klientów do usługi Azure OpenAI — zobacz Azure OpenAI.

Tool OpenAIChatClient (Odpowiedzi) OpenAIChatCompletionClient (Ukończenie czatu)
Narzędzia funkcji
Zatwierdzanie narzędzi
Interpreter kodów
Wyszukiwanie plików
Wyszukiwanie w Sieci Web
Generowanie obrazu ✅ (get_image_generation_tool)
Powłoka hostowana ✅ (get_shell_tool)
Hostowane narzędzia MCP
Lokalne narzędzia MCP

Uwaga / Notatka

Zatwierdzanie narzędzi jest obsługiwane przez klienta czatu platformy obsługującego wywoływanie funkcji, dzięki czemu działa z dowolnym wywołaniem funkcji-narzędzia, niezależnie od używanego interfejsu API.

Dalsze kroki