C# ve Microsoft Agent Framework ile AI Ajan Geliştirme
Microsoft Agent Framework, .NET geliştiricilerinin bir konsol uygulamasını araç kullanabilen bir AI ajanına dönüştürmesini oldukça kısa bir kodla sağlıyor. Makale; ajanın oluşturulmasını, C# fonksiyonlarının tool olarak bağlanmasını, yerelde test edilmesini ve aynı kodun Microsoft Foundry Hosted Agents üzerinde üretime alınmasını adım adım gösteriyor.
Kilit noktalar
- Microsoft Agent Framework'te bir AIAgent, AIProjectClient ve AsAIAgent() çağrısıyla birkaç satırda oluşturuluyor; model adı ve instructions parametre olarak veriliyor.
- Ajanlara yetenek kazandırmanın yolu C# fonksiyonları: [Description] nitelikli metotlar AIFunctionFactory.Create() ile tool listesine ekleniyor.
- Aynı ajan, Microsoft.Agents.AI.Foundry.Hosting paketindeki AddFoundryResponses() ve MapFoundryResponses() ile Responses protokolünde bir endpoint'e dönüşüyor.
- Hosted sürüm yerelde /responses adresine curl veya PowerShell ile istek atılarak test edilebiliyor.
- Üretim dağıtımı azd azure.ai.agents extension'ı, azd ai agent init, azd provision ve azd deploy adımlarıyla yapılıyor.
- Foundry Hosted Agents; çalıştırma, endpoint, kimlik, oturum, ölçeklendirme, izolasyon ve gözlemlenebilirliği yönetilen hizmet olarak sunuyor.
Microsoft Agent Framework, C# geliştiricilerinin bir sohbet uygulamasını araç kullanabilen bir ajana dönüştürmesini birkaç satır kodla mümkün kılıyor. Örnek, konsol projesine Microsoft.Agents.AI ve Azure.AI.Projects paketlerini ekleyip Foundry'deki bir model dağıtımına bağlanıyor; AIProjectClient üzerinden AsAIAgent() çağrısıyla instructions ve tools alan bir AIAgent oluşturuluyor. Ajan, [Description] nitelikleriyle işaretlenmiş sıradan C# fonksiyonlarını AIFunctionFactory.Create() ile tool olarak alıyor, böylece model zaman gibi bilgileri tahmin etmek yerine uygulamanın kendi kodunu çağırabiliyor.
Üretim tarafında ajan mantığı değişmiyor: Microsoft.Agents.AI.Foundry.Hosting paketiyle AddFoundryResponses(agent) ve MapFoundryResponses() eklenerek aynı AIAgent, Responses protokolüne uygun bir endpoint olarak yayınlanıyor. Yerelde curl veya PowerShell ile test edilebiliyor, ardından azd ai agent komutları ve azd provision/deploy ile Foundry Hosted Agents üzerine alınabiliyor. Foundry; kimlik, oturumlar, ölçeklendirme ve gözlemlenebilirlik gibi altyapı işlerini üstleniyor, geliştiriciye iş mantığı ve tool'lar kalıyor.
Gerçek dünyada kullanımı
- Müşteri destek asistanının tahmin yerine gerçek sipariş durumunu döndürmesi için GetOrderStatus() benzeri bir C# metodunun tool olarak bağlanması.
- Dahili bilgi tabanında arama yapan bir ajanın, SearchKnowledgeBase() fonksiyonuyla şirket dokümanlarından yanıt üretmesi.
- Bir arka plan servisinin, GitHub issue açma veya dağıtım tetikleme gibi işlemleri ajan kararıyla gerçekleştirmesi ve sonucu Responses endpoint'i üzerinden raporlaması.
- Mevcut ASP.NET Core uygulamasına, dependency injection ve mevcut kimlik doğrulama düzenine dokunmadan ajan endpoint'i eklenmesi.
Neden önemli
Ajan mantığını C# içinde tutup altyapıyı Foundry'ye bırakmak, her AI denemesinin ayrı bir altyapı projesine dönüşmesini engelliyor ve .NET geliştiricisinin mevcut becerilerini agentic uygulamalara taşımasını sağlıyor.