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.
Aracınızı oluşturduktan sonra, kullanıcıların ve diğer aracıların etkileşim kurabilmesi için aracıyı barındırmanız gerekir.
Barındırma Seçenekleri
| Seçenek | Description | En Uygun |
|---|---|---|
| A2A Protokolü | Agent-to-Agent protokolü aracılığıyla ajanları açığa çıkarma | Çok aracılı sistemler |
| OpenAI ile uyumlu uç noktalar | Sohbet Tamamlamaları veya Yanıtlar API'leri aracılığıyla aracıları kullanıma sunma | OpenAI uyumlu istemciler |
| Azure İşlevleri (Dayanıklı) | Aracıları dayanıklı Azure İşlevleri olarak çalıştırma | Sunucusuz, uzun süre çalışan görevler |
| AG-UI Protokolü | Web tabanlı yapay zeka aracısı uygulamaları oluşturma | Web ön uçları |
ASP.NET Core'da barındırma
Agent Framework, yapay zeka aracılarını ASP.NET Core uygulamalarıyla tümleştirmenizi sağlayan barındırma kitaplıkları sağlar. Bu kitaplıklar çeşitli protokoller aracılığıyla aracıları kaydetmeyi, yapılandırmayı ve ortaya çıkarmayı basitleştirir.
Aracılara Genel Bakış bölümünde açıklandığı gibi, AIAgent Aracı Çerçevesi'nin temel kavramıdır. Kullanıcı girişlerini işleyen, kararlar alan, araçları çağıran ve eylemleri yürütmek ve yanıtlar oluşturmak için ek iş gerçekleştiren bir "LLM sarmalayıcı" tanımlar. ASP.NET Core uygulamanızdan yapay zeka aracılarını kullanıma çıkarmak önemsiz değildir. Barındırma kitaplıkları, yapay zeka aracılarını bir bağımlılık ekleme kapsayıcısına kaydederek bu sorunu çözer ve bunları uygulama hizmetlerinizde çözmenize ve kullanmanıza olanak sağlar. Ayrıca araçlar ve oturum depolama gibi aracı bağımlılıklarını aynı kapsayıcıdan yönetmenize de olanak tanır. Aracılar, kullandıkları protokollerden bağımsız olarak uygulama altyapınızla birlikte barındırılabilir. Benzer şekilde, iş akışları barındırılabilir ve uygulamanızın ortak altyapısını kullanabilir.
Çekirdek Barındırma Kitaplığı
Kitaplık Microsoft.Agents.AI.Hosting , ASP.NET Core'da yapay zeka aracılarını barındırmanın temelini oluşturur. Yapay zeka aracılarını ve iş akışlarını kaydetmek ve yapılandırmak için IHostApplicationBuilder için uzantılar sağlar. ASP.NET Core'da, IHostApplicationBuilder yapılandırmayı, günlüğe kaydetmeyi, yaşam süresini ve daha fazlasını yöneten, barındırılan uygulamalar ve hizmetler için oluşturucuyu temsil eden temel türdür.
Aracıları veya iş akışlarını yapılandırmadan önce bağımlılık ekleme kapsayıcısında bir IChatClient kaydedin. Aşağıdaki örneklerde adı chat-modelaltında anahtarlı tekil olarak kaydedilir:
// endpoint is of 'https://<your-own-foundry-endpoint>.openai.azure.com/' format
// deploymentName is 'gpt-4o-mini' for example
IChatClient chatClient = new AzureOpenAIClient(
new Uri(endpoint),
new DefaultAzureCredential())
.GetChatClient(deploymentName)
.AsIChatClient();
builder.Services.AddSingleton(chatClient);
YapayZekaAjanıEkle
Bağımlılık ekleme ile yapay zeka aracısının kaydını yapın:
var pirateAgent = builder.AddAIAgent(
"pirate",
instructions: "You are a pirate. Speak like a pirate",
description: "An agent that speaks like a pirate.",
chatClientServiceKey: "chat-model");
AddAIAgent() yöntemi, aracıyı yapılandırmak için uzantı yöntemleri sağlayan bir IHostedAgentBuilder döndürür. Örneğin aracıya araçlar ekleyebilirsiniz:
var pirateAgent = builder.AddAIAgent("pirate", instructions: "You are a pirate. Speak like a pirate")
.WithAITool(new MyTool()); // MyTool is a custom type derived from AITool
Oturum depoyu da yapılandırabilirsiniz (konuşma verileri için depolama):
var pirateAgent = builder.AddAIAgent("pirate", instructions: "You are a pirate. Speak like a pirate")
.WithInMemorySessionStore();
AddWorkflow
Birden çok aracıyı koordine eden iş akışlarını kaydedin. İş akışı temelde her düğümün bir olduğu ve aracıların birbiriyle iletişim kurduğu bir AIAgent"grafiktir".
Bu örnekte, iki ajan sırayla çalışmaktadır. Önce kullanıcı girişi agent-1 öğesine gönderilir; bu da bir yanıt üretir ve yanıt agent-2 öğesine gönderilir. Ardından iş akışı son yanıtı döndürür. Eşzamanlı aracı iş akışı oluşturan bir yöntem de BuildConcurrent vardır.
builder.AddAIAgent("agent-1", instructions: "you are agent 1!");
builder.AddAIAgent("agent-2", instructions: "you are agent 2!");
var workflow = builder.AddWorkflow("my-workflow", (sp, key) =>
{
var agent1 = sp.GetRequiredKeyedService<AIAgent>("agent-1");
var agent2 = sp.GetRequiredKeyedService<AIAgent>("agent-2");
return AgentWorkflowBuilder.BuildSequential(key, [agent1, agent2]);
});
İş Akışını AI Agent Olarak Sunma
İş akışıyla protokol tümleştirmelerini (A2A veya OpenAI gibi) kullanmak için bunu tek başına bir aracıya dönüştürün. Şu anda iş akışları kendi başına benzer tümleştirme özellikleri sağlamadığından bu dönüştürme adımı gereklidir:
var workflowAsAgent = builder
.AddWorkflow("science-workflow", (sp, key) => { ... })
.AddAsAIAgent(); // Now the workflow can be used as an agent
Uygulama Ayrıntıları
Barındırma kitaplıkları, dış iletişim protokollerine ve Aracı Çerçevesi'nin iç AIAgent uygulamasına köprü oluşturan protokol bağdaştırıcıları olarak hareket eder. Barındırma tümleştirme kitaplığını kullandığınızda, kitaplık bağımlılık enjeksiyonundan kaydedilmiş olan AIAgent öğesini alır, gelen istekleri ve giden yanıtları çevirmek için protokole özgü bir ara yazılımla sarar ve istekleri işlemek üzere AIAgent öğesini çağırır. Bu mimari, aracı uygulamanızın protokolden bağımsız kalmasını sağlar.
Örneğin, A2A protokol bağdaştırıcısı ile ASP.NET Core barındırma kitaplığını kullanma:
// Register the agent
var pirateAgent = builder.AddAIAgent("pirate",
instructions: "You are a pirate. Speak like a pirate",
description: "An agent that speaks like a pirate.");
// Expose via a protocol (e.g. A2A)
builder.Services.AddA2AServer();
var app = builder.Build();
app.MapA2AServer();
app.Run();
Tip
Sunucusuz barındırma örnekleri için Dayanıklı Azure İşlevleri örneklerine bakın.
Azure İşlevleri barındırma paketini yükleyin:
pip install agent-framework-azurefunctions --pre
Ajan oluşturma:
from agent_framework.azure import AgentFunctionApp, AzureOpenAIChatClient
from azure.identity import AzureCliCredential
# 1. Instantiate the agent with the chosen deployment and instructions.
def _create_agent() -> Any:
"""Create the Joker agent."""
return AzureOpenAIChatClient(credential=AzureCliCredential()).as_agent(
name="Joker",
instructions="You are good at telling jokes.",
)
Ajanı AgentFunctionApp ile kaydedin:
# 2. Register the agent with AgentFunctionApp so Azure Functions exposes the required triggers.
app = AgentFunctionApp(agents=[_create_agent()], enable_health_check=True, max_poll_retries=50)
Azure İşlevleri Temel Araçları ile yerel olarak çalıştırın:
func start
Ardından şu çağrıyı yapın:
curl -X POST http://localhost:7071/api/agents/Joker/run \
-H "Content-Type: text/plain" \
-d "Tell me a short joke about cloud computing."
Tip
Çalıştırılabilir dosyanın tamamı için tam örneğe ve daha fazla desen için Azure İşlevleri barındırma örneklerine bakın.
Sonraki Adımlar
Daha derine gidin:
- A2A Protokolü — A2A aracılığıyla aracıları kullanıma sunma ve kullanma
- Azure İşlevleri — sunucusuz aracı barındırma
- AG-UI Protokolü — web tabanlı aracı kullanıcı arayüzleri
- Foundry Barındırılan Aracılar belgeleri — Azure AI Foundry'deki barındırılan aracıları anlama
- Foundry Barındırılan Aracılar örneği (Python) — uçtan uca Agent Framework aracısı örneği çalıştırma