Aracılığıyla paylaş


OpenAI Aracıları

Microsoft Agent Framework, her biri farklı araç özelliklerine sahip farklı bir API yüzeyini hedefleyen üç ayrı OpenAI istemci türünü destekler:

İstemci Türü API En Uygun
Sohbet Tamamlama Sohbet Tamamlamaları API'si Basit aracılar, geniş model desteği
Yanıt Yanıtlar API'si Barındırılan araçlarla (kod yorumlayıcı, dosya arama, web araması, barındırılan MCP) tam özellikli aracılar
Asistanlar Yardımcılar API'si Kod yorumlayıcı ve dosya arama ile sunucu tarafından yönetilen aracılar

Tip

Azure OpenAI eşdeğerleri (AzureOpenAIChatClient, AzureOpenAIResponsesClient, AzureOpenAIAssistantsClient) için Bkz. Azure OpenAI sağlayıcısı sayfası. Araç desteği aynıdır.

Başlangıç Yapmak

Projenize gerekli NuGet paketlerini ekleyin.

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

Sohbet Tamamlama İstemcisi

Sohbet Tamamlama istemcisi, ChatCompletion API'sini kullanarak aracılar oluşturmak için basit bir yol sağlar.

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

Desteklenen araçlar: İşlev araçları, web araması, yerel MCP araçları.

Yanıt İstemcisi

Yanıtlar istemcisi kod yorumlayıcı, dosya arama, web araması ve barındırılan MCP gibi en zengin araç desteğini sağlar.

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

Desteklenen araçlar: İşlev araçları, araç onayı, kod yorumlayıcı, dosya arama, web araması, barındırılan MCP, yerel MCP araçları.

Asistanlar İstemcisi

Assistants istemcisi, yerleşik kod yorumlayıcı ve dosya arama ile sunucu tarafından yönetilen aracılar oluşturur.

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

Desteklenen araçlar: İşlev araçları, kod yorumlayıcı, dosya arama, yerel MCP araçları.

Tip

Çalıştırılabilir örneklerin tamamı için .NET örneklerine bakın.

Ajanı Kullanma

Üç istemci türü de aynı aracı işlemlerini (akış, iş parçacıkları, ara yazılım) destekleyen bir standart AIAgent oluşturur.

Daha fazla bilgi için Başlangıç öğreticilerine bakın.

Kurulum

pip install agent-framework --pre

Konfigürasyon

Her istemci türü farklı ortam değişkenleri kullanır:

Sohbet Tamamlama

OPENAI_API_KEY="your-openai-api-key"
OPENAI_CHAT_MODEL_ID="gpt-4o-mini"

Yanıtlar

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"

Sohbet Tamamlama İstemcisi

OpenAIChatClient geniş model desteğine sahip en basit seçenek olan Sohbet Tamamlamaları API'sini kullanır.

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())

Desteklenen araçlar: İşlev araçları, web araması, yerel MCP araçları.

Sohbet Tamamlama ile Web Araması

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)

Yanıt İstemcisi

OpenAIResponsesClient Barındırılan araçlarla en zengin özellik seçeneği olan Yanıtlar API'sini kullanır.

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())

Desteklenen araçlar: İşlev araçları, araç onayı, kod yorumlayıcı, dosya arama, web araması, barındırılan MCP, yerel MCP araçları.

Yanıt İstemcisi ile Barındırılan Araçlar

Yanıtlar istemcisi barındırılan get_*_tool() her araç türü için yöntemler sağlar:

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)

Asistanlar İstemcisi

OpenAIAssistantProvider Yerleşik kod yorumlayıcı ve dosya arama ile sunucu tarafından yönetilen aracılar olan Yardımcılar API'sini kullanır. Sağlayıcı, yardımcı yaşam döngüsünü otomatik olarak yönetir.

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())

Desteklenen araçlar: İşlev araçları, kod yorumlayıcı, dosya arama, yerel MCP araçları.

Ortak Özellikler

Üç istemci türü de şu standart aracı özelliklerini destekler:

İşlev Araçları

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)

Çok Aşamalı Konuşmalar

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"

Yayın

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()

Ajanı Kullanma

Tüm istemci türleri aynı işlemleri destekleyen bir standart Agent oluşturur.

Daha fazla bilgi için Başlangıç öğreticilerine bakın.

Sonraki Adımlar