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, farklı kullanım örneklerini ve gereksinimlerini karşılamak için çeşitli aracı türleri için destek sağlar.
Tüm aracılar, AIAgenttüm aracı türleri için tutarlı bir arabirim sağlayan ortak bir temel sınıftan türetilir. Bu, çoklu ajan orkestrasyonları gibi ortak, aracı bağımsız ve daha üst düzey işlevler oluşturmaya olanak tanır.
Tüm aracılar, Agenttüm aracı türleri için tutarlı bir arabirim sağlayan ortak bir temel sınıftan türetilir. Bu, çoklu ajan orkestrasyonları gibi ortak, aracı bağımsız ve daha üst düzey işlevler oluşturmaya olanak tanır.
Varsayılan Aracı Çalışma Zamanı Yürütme Modeli
Microsoft Agent Framework'teki tüm aracılar yapılandırılmış çalışma zamanı modeli kullanılarak yürütülür. Bu model, belirleyici bir döngüde kullanıcı etkileşimlerini, model çıkarımlarını ve araç yürütmeyi koordine eder.
Önemli
Üçüncü taraf sunucularla veya aracılarla çalışan uygulamalar oluşturmak için Microsoft Agent Framework kullanıyorsanız, bunu riski size aittir. Üçüncü taraf sunucularla veya aracılarla paylaşılan tüm verileri gözden geçirmenizi ve verilerin saklanması ve konumu için üçüncü taraf uygulamaları konusunda bilgili olmanızı öneririz. Verilerinizin kuruluşunuzun Azure uyumluluk ve coğrafi sınırları dışında akıp akmayacağını ve ilgili etkileri yönetmek sizin sorumluluğunuzdadır.
Çıkarım hizmetlerini temel alan basit aracılar
Agent Framework, birçok farklı çıkarım hizmetini temel alan basit aracılar oluşturmayı kolaylaştırır.
Bir uygulama sağlayan herhangi bir Microsoft.Extensions.AI.IChatClient çıkarım hizmeti, bu aracıları oluşturmak için kullanılabilir.
Microsoft.Agents.AI.ChatClientAgent, herhangi IChatClient bir uygulama için aracı sağlamak için kullanılan aracı sınıfıdır.
Bu ajanlar, kutusundan çıktığı anda kullanılabilen geniş bir işlevsellik yelpazesini destekler.
- İşlev çağrısı.
- Yerel sohbet geçmişi yönetimi veya hizmet tarafından sağlanan sohbet geçmişi yönetimi ile çok aşamalı konuşmalar.
- Özel hizmet tarafından sağlanan araçlar (örneğin, MCP, Kod Yürütme).
- Düzenlenmiş çıkış.
Bu aracılardan birini oluşturmak için, seçtiğiniz uygulamayı kullanarak ChatClientAgent bir IChatClient oluşturmanız yeterlidir.
using Microsoft.Agents.AI;
var agent = new ChatClientAgent(chatClient, instructions: "You are a helpful assistant");
Bu aracıları oluşturmayı daha da kolaylaştırmak için, Agent Framework birçok popüler hizmet için yardımcılar sağlar. Daha fazla bilgi için her hizmetin belgelerine bakın.
| Temel çıkarım hizmeti | Description | Desteklenen hizmet sohbeti geçmişinin saklanması | InMemory/Özel sohbet geçmişi depolaması destekleniyor |
|---|---|---|---|
| Azure AI Foundry Temsilcisi | Azure AI Foundry Agents Hizmeti'ni arka uç olarak kullanan bir aracı. | Evet | Hayı |
| Azure AI Foundry Modelleri Chat Tamamlama | Azure AI Foundry Hizmeti'nde dağıtılan modellerden herhangi birini arka uç olarak kullanan ve ChatCompletion yöntemi aracılığıyla çalışan bir aracı. | Hayı | Evet |
| Azure AI Foundry Model Yanıtları | Yanıtlar aracılığıyla Azure AI Foundry Hizmeti'nde dağıtılan modellerden herhangi birini arka uç olarak kullanan bir aracı. | Evet | Evet |
| Azure OpenAI ChatCompletion | Azure OpenAI ChatCompletion hizmetini kullanan bir aracı. | Hayı | Evet |
| Azure OpenAI Yanıtları | Azure OpenAI Yanıtlar hizmetini kullanan bir aracı. | Evet | Evet |
| OpenAI ChatCompletion | OpenAI ChatCompletion hizmetini kullanan bir aracı. | Hayı | Evet |
| OpenAI Yanıtları | OpenAI Yanıtlar hizmetini kullanan bir ajan. | Evet | Evet |
| OpenAI Yardımcıları | OpenAI Yardımcıları hizmetini kullanan bir temsilci. | Evet | Hayı |
Diğer IChatClient |
Aracı oluşturmak için başka Microsoft.Extensions.AI.IChatClient herhangi bir uygulamayı da kullanabilirsiniz. |
Varies | Varies |
Karmaşık özel ajanlar
Ayrıca, yalnızca bir IChatClientçevresinde sarmalayıcı olmayan tamamen özel aracılar oluşturmak da mümkündür.
Aracı çerçevesi AIAgent temel türünü sağlar.
Bu temel tür, alt sınıflandırıldığında aracının davranışı ve özellikleri üzerinde tam denetim sağlayan tüm aracılar için temel soyutlamadır.
Daha fazla bilgi için Özel Aracılar belgelerine bakın.
Uzak aracılar için proxy'ler
Agent Framework, A2A gibi ortak hizmet barındırılan aracı protokolleri için kullanıma AIAgent hazır uygulamalar sağlar. Bu şekilde, uygulamanızdaki uzak aracılara kolayca bağlanabilir ve bunları kullanabilirsiniz.
Daha fazla bilgi için her aracı türünün belgelerine bakın:
| Protokol | Description |
|---|---|
| A2A | A2A protokolü aracılığıyla uzak bir aracıya proxy görevi gören bir ajan. |
Azure ve OpenAI SDK Seçenekleri Referans
Azure AI Foundry, Azure OpenAI veya OpenAI hizmetlerini kullanırken, bu hizmetlere bağlanmak için çeşitli SDK seçenekleriniz vardır. Bazı durumlarda, aynı hizmete bağlanmak için birden çok SDK kullanmak veya farklı hizmetlere bağlanmak için aynı SDK'yı kullanmak mümkündür. Burada, her birine bağlanırken kullanmanız gereken URL ile kullanılabilen farklı seçeneklerin listesi yer alır.
<resource> ve <project> etiketlerini gerçek kaynak ve proje adlarınızla değiştirdiğinizden emin olun.
| AI Hizmeti | SDK | Nuget | Bağlantı |
|---|---|---|---|
| Azure AI Foundry Modelleri | Azure OpenAI SDK 2 | Azure.AI.OpenAI | https://ai-foundry-<resource.services.ai.azure.com/> |
| Azure AI Foundry Modelleri | OpenAI SDK 3 | OpenAI | https://ai-foundry-<resource.services.ai.azure.com/openai/v1/> |
| Azure AI Foundry Modelleri | Azure AI Çıkarım SDK 2 | Azure.AI.Inference | https://ai-foundry-<resource.services.ai.azure.com/models> |
| Azure AI Foundry Ajanları | Azure AI Kalıcı Aracılar SDK'sı | Azure.AI.Agents.Persistent | https://ai-foundry-<resource.services.ai.azure.com/api/projects/ai-project-project><> |
| Azure OpenAI1 | Azure OpenAI SDK 2 | Azure.AI.OpenAI | <https:// resource.openai.azure.com/> |
| Azure OpenAI1 | OpenAI SDK'sı | OpenAI | <https://resource.openai.azure.com/openai/v1/> |
| OpenAI | OpenAI SDK'sı | OpenAI | URL gerekmez |
- Azure OpenAI'den Azure AI Foundry'ye yükseltme
- OpenAI SDK'sını kullanmanızı öneririz.
- Azure AI Foundry modellerine erişmek için OpenAI SDK'sını kullanmanızı öneririz ancak Azure AI Foundry Modelleri yalnızca OpenAI'nin değil birçok farklı satıcının modellerini destekler. Tüm bu modeller OpenAI SDK'sı aracılığıyla desteklenir.
OpenAI SDK'sını kullanma
Yukarıdaki tabloda gösterildiği gibi, OpenAI SDK'sı birden çok hizmete bağlanmak için kullanılabilir.
Bağlandığınız hizmete bağlı olarak, OpenAIClient oluştururken özel bir URL ayarlamanız gerekebilir.
Hizmete bağlı olarak farklı kimlik doğrulama mekanizmaları da kullanabilirsiniz.
Özel bir URL gerekiyorsa (yukarıdaki tabloya bakın), OpenAIClientOptions aracılığıyla ayarlayabilirsiniz.
var clientOptions = new OpenAIClientOptions() { Endpoint = new Uri(serviceUrl) };
İstemciyi oluştururken bir API anahtarı kullanmak mümkündür.
OpenAIClient client = new OpenAIClient(new ApiKeyCredential(apiKey), clientOptions);
Azure Hizmeti kullanırken, API anahtarı yerine Azure kimlik bilgilerini kullanmak da mümkündür.
OpenAIClient client = new OpenAIClient(new BearerTokenPolicy(new DefaultAzureCredential(), "https://ai.azure.com/.default"), clientOptions)
Uyarı
DefaultAzureCredential geliştirme için uygundur ancak üretimde dikkatli bir şekilde dikkate alınması gerekir. Üretimde gecikme sorunları, istenmeyen kimlik bilgisi yoklama ve geri dönüş mekanizmalarından kaynaklanan olası güvenlik risklerini önlemek için belirli bir kimlik bilgisi (ör ManagedIdentityCredential. ) kullanmayı göz önünde bulundurun.
OpenAIClient'ı oluşturduktan sonra, kullanmak istediğiniz belirli bir hizmet için bir alt istemci alabilir ve ardından bu hizmetten bir AIAgent alt istemci oluşturabilirsiniz.
AIAgent agent = client
.GetChatClient(model)
.AsAIAgent(instructions: "You are good at telling jokes.", name: "Joker");
Azure OpenAI SDK'sını kullanma
Bu SDK hem Azure OpenAI hem de Azure AI Foundry Models hizmetlerine bağlanmak için kullanılabilir.
Her iki durumda da, AzureOpenAIClient oluştururken doğru hizmet URL'sini sağlamanız gerekir.
Kullanılacak doğru URL için yukarıdaki tabloya bakın.
AIAgent agent = new AzureOpenAIClient(
new Uri(serviceUrl),
new DefaultAzureCredential())
.GetChatClient(deploymentName)
.AsAIAgent(instructions: "You are good at telling jokes.", name: "Joker");
Azure AI Kalıcı Aracılar SDK'sını kullanma
Bu SDK yalnızca Azure AI Foundry Agents hizmetiyle desteklenir. Kullanılacak doğru URL için yukarıdaki tabloya bakın.
var persistentAgentsClient = new PersistentAgentsClient(serviceUrl, new DefaultAzureCredential());
AIAgent agent = await persistentAgentsClient.CreateAIAgentAsync(
model: deploymentName,
name: "Joker",
instructions: "You are good at telling jokes.");
Çıkarım hizmetlerini temel alan basit aracılar
Agent Framework, birçok farklı çıkarım hizmetini temel alan basit aracılar oluşturmayı kolaylaştırır.
Bu aracıları oluşturmak için sohbet istemcisi uygulaması sağlayan herhangi bir çıkarım hizmeti kullanılabilir.
Bu, istemcinin standart SupportsChatGetResponse sınıfıyla kullanılması için desteklemesi gereken yöntemler için bir standart tanımlayan Agent kullanılarak yapılabilir.
Bu ajanlar, kutusundan çıktığı anda kullanılabilen geniş bir işlevsellik yelpazesini destekler.
- Fonksiyon çağırma
- Yerel sohbet geçmişi yönetimi veya hizmet tarafından sağlanan sohbet geçmişi yönetimi ile çok aşamalı konuşmalar
- Özel hizmet tarafından sağlanan araçlar (örneğin, MCP, Kod Yürütme)
- Yapılandırılmış çıkış
- Akış yanıtları
Bu aracılardan birini oluşturmak için istediğiniz sohbet istemcisi uygulamasını kullanarak bir Agent oluşturmanız yeterlidir.
import os
from agent_framework import Agent
from agent_framework.azure import AzureOpenAIResponsesClient
from azure.identity.aio import DefaultAzureCredential
Agent(
client=AzureOpenAIResponsesClient(credential=DefaultAzureCredential(), project_endpoint=os.getenv("AZURE_AI_PROJECT_ENDPOINT"), deployment_name=os.getenv("AZURE_OPENAI_RESPONSES_DEPLOYMENT_NAME")),
instructions="You are a helpful assistant"
) as agent
response = await agent.run("Hello!")
Alternatif olarak, sohbet istemcisinde kolaylık yöntemini kullanabilirsiniz:
from agent_framework.azure import AzureOpenAIResponsesClient
from azure.identity.aio import DefaultAzureCredential
agent = AzureOpenAIResponsesClient(async_credential=DefaultAzureCredential(), project_endpoint=os.getenv("AZURE_AI_PROJECT_ENDPOINT"), deployment_name=os.getenv("AZURE_OPENAI_RESPONSES_DEPLOYMENT_NAME")).as_agent(
instructions="You are a helpful assistant"
)
Uyarı
Bu örnek AzureOpenAIResponsesClient'ı kullanmayı gösterir, ancak aynı desen uygulayan tüm sohbet istemcilerinde SupportsChatGetResponsede geçerlidir. Diğer istemcilerle ilgili daha fazla ayrıntı için sağlayıcılara genel bakış konusuna bakın.
Ayrıntılı örnekler için aşağıdaki aracıya özgü belgeler bölümlerine bakın.
Desteklenen Sohbet Sağlayıcıları
| Temel Çıkarım Hizmeti | Description | Hizmet Sohbeti Geçmişi depolaması destekleniyor |
|---|---|---|
| Azure AI Foundry Temsilcisi | Azure AI Ajanları Hizmeti'ni arka plan olarak kullanan bir ajan. | Evet |
| Azure OpenAI Sohbeti Tamamlama | Azure OpenAI Sohbet Tamamlama hizmetini kullanan bir aracı. | Hayı |
| Azure OpenAI Yanıtları | Azure OpenAI Yanıtlar hizmetini kullanan bir aracı. | Evet |
| Azure OpenAI Yardımcıları | Azure OpenAI Yardımcıları hizmetini kullanan bir aracı. | Evet |
| OpenAI Sohbet Tamamlama | OpenAI Sohbet Tamamlama hizmetini kullanan bir aracı. | Hayı |
| OpenAI Yanıtları | OpenAI Yanıtlar hizmetini kullanan bir ajan. | Evet |
| OpenAI Yardımcıları | OpenAI Yardımcıları hizmetini kullanan bir temsilci. | Evet |
| Anthropic Claude | "Anthropic Claude modellerini kullanan bir ajan." | Hayı |
| Amazon Bedrock | Amazon Bedrock modellerini Agent Framework Bedrock sohbet yazılımı aracılığıyla kullanan bir acente. | Hayı |
| GitHub Yardımcı Pilotu | GitHub Copilot SDK arka planını kullanan bir aracı. | Hayı |
| Ollama (OpenAI uyumlu) | OpenAI uyumlu API'ler aracılığıyla yerel olarak barındırılan Ollama modellerini kullanan bir aracı. | Hayı |
| Diğer Tüm ChatClient'lar | Başka herhangi bir SupportsChatGetResponse uygulamasını da bir ajan oluşturmak için kullanabilirsiniz. |
Varies |
Oturum tabanlı konuşma durumu desteklendiğinde özel sohbet geçmişi depolaması desteklenir.
Akış Yanıtları
Ajanlar hem normal hem de akış yanıtlarını destekler.
# Regular response (wait for complete result)
response = await agent.run("What's the weather like in Seattle?")
print(response.text)
# Streaming response (get results as they are generated)
async for chunk in agent.run("What's the weather like in Portland?", stream=True):
if chunk.text:
print(chunk.text, end="", flush=True)
Akış örnekleri için bkz:
Daha fazla çağrı deseni için Çalıştırma Aracıları bölümüne bakın.
İşlev Araçları
Gelişmiş özellikler için aracılara işlev araçları sağlayabilirsiniz:
import os
from typing import Annotated
from azure.identity.aio import DefaultAzureCredential
from agent_framework.azure import AzureOpenAIResponsesClient
def get_weather(location: Annotated[str, "The location to get the weather for."]) -> str:
"""Get the weather for a given location."""
return f"The weather in {location} is sunny with a high of 25°C."
async with DefaultAzureCredential() as credential:
agent = AzureOpenAIResponsesClient(
async_credential=credential,
project_endpoint=os.getenv("AZURE_AI_PROJECT_ENDPOINT"),
deployment_name=os.getenv("AZURE_OPENAI_RESPONSES_DEPLOYMENT_NAME"),
).as_agent(
instructions="You are a helpful weather assistant.",
tools=get_weather,
)
response = await agent.run("What's the weather in Seattle?")
Araçlar ve araç desenleri için bkz. Araçlara genel bakış.
Özel aracılar
Tamamen özel uygulamalar (örneğin, belirlenimici aracılar veya API destekli aracılar) için bkz. Özel Aracılar. Bu sayfa, SupportsAgentRun uygulamasını veya BaseAgent uzatılmasını, AgentResponseUpdate ile akış güncellemeleri de dahil olmak üzere kapsar.
Diğer ajan türleri
Agent Framework ayrıca aşağıdakiler gibi protokol destekli aracılar içerir:
| Ajan Türü | Description |
|---|---|
| A2A | Uzak A2A uyumlu aracılara bağlanan ve çağıran bir proxy aracısı. |