Aracılığıyla paylaş


6. Adım: Ajansınızı Barındırma Yapın

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

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:

Ayrıca bakınız