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.
Ö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 | Hizmet sohbeti geçmişi depolama desteği | Özel sohbet geçmişi depolama desteği |
|---|---|---|---|
| Azure AI Foundry Temsilcisi | Azure AI Foundry Agents Hizmeti'ni arka uç olarak kullanan bir aracı. | Yes | 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ı | Yes |
| 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ı. | Hayı | Yes |
| Azure OpenAI ChatCompletion | Azure OpenAI ChatCompletion hizmetini kullanan bir aracı. | Hayı | Yes |
| Azure OpenAI Yanıtları | Azure OpenAI Yanıtlar hizmetini kullanan bir aracı. | Yes | Yes |
| OpenAI ChatCompletion | OpenAI ChatCompletion hizmetini kullanan bir aracı. | Hayı | Yes |
| OpenAI Yanıtları | OpenAI Yanıtlar hizmetini kullanan bir ajan. | Yes | Yes |
| OpenAI Yardımcıları | OpenAI Yardımcıları hizmetini kullanan bir temsilci. | Yes | 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 Aracıları | 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 AzureCliCredential(), "https://ai.azure.com/.default"), clientOptions)
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)
.CreateAIAgent(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 AzureCliCredential())
.GetChatClient(deploymentName)
.CreateAIAgent(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 AzureCliCredential());
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 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 ChatAgent oluşturmanız yeterlidir.
from agent_framework import ChatAgent
from agent_framework.azure import AzureAIAgentClient
from azure.identity.aio import DefaultAzureCredential
async with (
DefaultAzureCredential() as credential,
ChatAgent(
chat_client=AzureAIAgentClient(async_credential=credential),
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 AzureAIAgentClient
from azure.identity.aio import DefaultAzureCredential
async with DefaultAzureCredential() as credential:
agent = AzureAIAgentClient(async_credential=credential).create_agent(
instructions="You are a helpful assistant"
)
Ayrıntılı örnekler için aşağıdaki aracıya özgü belgeler bölümlerine bakın.
Desteklenen Aracı Türleri
| Temel Çıkarım Hizmeti | Description | Hizmet Sohbeti Geçmişi depolaması destekleniyor | Desteklenen Özel Sohbet Geçmişi depolama alanı |
|---|---|---|---|
| Azure AI Aracısı | Azure AI Ajanları Hizmeti'ni arka plan olarak kullanan bir ajan. | Yes | Hayı |
| Azure OpenAI Sohbeti Tamamlama | Azure OpenAI Sohbet Tamamlama hizmetini kullanan bir aracı. | Hayı | Yes |
| Azure OpenAI Yanıtları | Azure OpenAI Yanıtlar hizmetini kullanan bir aracı. | Yes | Yes |
| OpenAI Sohbet Tamamlama | OpenAI Sohbet Tamamlama hizmetini kullanan bir aracı. | Hayı | Yes |
| OpenAI Yanıtları | OpenAI Yanıtlar hizmetini kullanan bir ajan. | Yes | Yes |
| OpenAI Yardımcıları | OpenAI Yardımcıları hizmetini kullanan bir temsilci. | Yes | Hayı |
| Diğer Tüm ChatClient'lar | Aracı oluşturmak için başka bir sohbet istemcisi uygulamasını da kullanabilirsiniz. | Varies | Varies |
İşlev Araçları
Gelişmiş özellikler için aracılara işlev araçları sağlayabilirsiniz:
from typing import Annotated
from pydantic import Field
from azure.identity.aio import DefaultAzureCredential
from agent_framework.azure import AzureAIAgentClient
def get_weather(location: Annotated[str, Field(description="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,
AzureAIAgentClient(async_credential=credential).create_agent(
instructions="You are a helpful weather assistant.",
tools=get_weather
) as agent
):
response = await agent.run("What's the weather in Seattle?")
İşlev araçlarıyla ilgili tam örnekler için bkz:
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_stream("What's the weather like in Portland?"):
if chunk.text:
print(chunk.text, end="", flush=True)
Akış örnekleri için bkz:
Kod Yorumlayıcı Araçları
Azure AI aracıları, Python kodunu yürütmek için barındırılan kod yorumlayıcı araçlarını destekler:
from agent_framework import ChatAgent, HostedCodeInterpreterTool
from agent_framework.azure import AzureAIAgentClient
from azure.identity.aio import DefaultAzureCredential
async with (
DefaultAzureCredential() as credential,
ChatAgent(
chat_client=AzureAIAgentClient(async_credential=credential),
instructions="You are a helpful assistant that can execute Python code.",
tools=HostedCodeInterpreterTool()
) as agent
):
response = await agent.run("Calculate the factorial of 100 using Python")
Kod yorumlayıcı örnekleri için bkz:
- Kod yorumlayıcı ile Azure AI
- Kod yorumlayıcılı Azure OpenAI Yardımcıları
- Kod yorumlayıcı ile OpenAI Yardımcıları
Özel aracılar
Ayrıca, yalnızca bir sohbet istemcisi etrafında sarmalayıcı olmayan tamamen özel aracılar oluşturmak da mümkündür.
Aracı Çerçevesi, uygulandığında/alt sınıflandığında aracının AgentProtocol davranışı ve BaseAgent özellikleri üzerinde tam denetime olanak tanıyan protokolü ve temel sınıfı sağlar.
from agent_framework import BaseAgent, AgentRunResponse, AgentRunResponseUpdate, AgentThread, ChatMessage
from collections.abc import AsyncIterable
class CustomAgent(BaseAgent):
async def run(
self,
messages: str | ChatMessage | list[str] | list[ChatMessage] | None = None,
*,
thread: AgentThread | None = None,
**kwargs: Any,
) -> AgentRunResponse:
# Custom agent implementation
pass
def run_stream(
self,
messages: str | ChatMessage | list[str] | list[ChatMessage] | None = None,
*,
thread: AgentThread | None = None,
**kwargs: Any,
) -> AsyncIterable[AgentRunResponseUpdate]:
# Custom streaming implementation
pass