Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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.