.NET Agent Skills: Üç Yöntem, Tek Sağlayıcı
Geçen ay bir finans kuruluşundaki müşterimiz için chatbot projesinde çalışırken garip bir durumla karşılaştık. Ekipte üç farklı kişi üç farklı şekilde agent skill’leri yazıyordu — biri dosya tabanlı, biri inline C# ile, biri de NuGet paketi olarak (buna dikkat edin). Ortaya çıkan kaos… neyse, uzatmayalım. Tam da o hafta Microsoft’un Agent Framework ekibinin yayınladığı bu yeni yaklaşım gözüme çarptı. Dedim ki: “Bu tam da bizim derdimize çare.”
📋 İçindekiler
-
Hayal Kiriklığım ve Beklentilerim
Açık konuşayım: bu framework’ün şu anki hali “iyi” ama “mükemmel” değil. Birkaç şey beni rahatsız etti, lafı gevelemeyeyim.
Birincisi, skill discovery mekanizması yok (evet, doğru duydunuz). Yanı agent hangi skill’lerin mevcut olduğunu biliyor ama dinamik olarak yeni skill keşfetme gibi bir özellik yok — her şeyi baştan tanımlamanız gerekiyor (inanın bana). İkincisi, skill’ler arası bağımlılık yönetimi eksik. Onboarding skill’i benefits skill’ine bağımlıysa ne olacak? Şu an bunu sız manuel yönetiyorsunuz, framework size yardımcı olmuyor bu konuda.
Üçüncüsü — ve bu beni en çok rahatsız eden — debugging deneyimi. Dosya tabanlı bir skill hata verdiğinde, hatanın nereden geldiğini bulmak bazen çok zor oluyor. Markdown parse hatası mı, script hatası mı, yoksa agent’ın yanlış yorumlaması mı? Bilemiyorsunuz hemen. Loglama biraz daha olgunlaşması lazım, kesinlikle.
Küçük bir detay: Kağıt üstünde süper bir model ama pratikte birkaç sprint daha pişmesi gerekiyor. Yine de mevcut alternatiflere kıyasla bayağı iyi durumda — bunu da belirteyim, haksızlık etmeyeyim. Doğru yönde gidiyorlar en azından.
Sıkça Sorulan Sorular
Agent skill nedir ve neden birden fazla yazma yöntemi var?
Bunu yaşayan biri olarak söyleyeyim, Agent skill, bir yapay zekâ ajanının belirli bir görevi yerine getirmek için kullandığı yetenek modülü. Birden fazla yazma yöntemi olmasının sebebi gerçek dünya ihtiyaçları — farklı ekipler farklı hızlarda çalışıyor, bazı skill’ler sık değişiyor, bazıları paketlenip paylaşılıyor. İlginç, değil mi? Tek bir yöntem herkesi tatmin etmiyor.
Dosya tabanlı skill’lerde script çalıştırmak güvenli mi?
Tek başına güvenli değil — mutlaka insan onayı mekanizması eklemeniz gerekiyor. SubprocessScriptRunner’ı doğrudan kullanmak yerine, arada bir approval katmanı koymanız şiddetle tavsiye edilir. Production ortamında kontrolsüz script çalıştırma ciddi güvenlik açıklarına yol açabilir.
Bu yapı sadece Azure OpenAI ile mi çalışıyor?
Hayır. AgentSkillsProvider yapısı AI provider’dan bağımsız çalışıyor. Örneklerde Azure OpenAI kullanılıyor ama herhangi bir OpenAI uyumlu endpoint ile kullanabilirsiniz. Provider pattern sayesinde AI backend değişikliği skill’leri etkilemiyor.
Inline skill ne zaman tercih edilmeli?
İşte, size bir şey söyleyeyim, Sadece geçici çözümler için. Bir skill’in resmî paketi henüz hazır değilse veya hızlı bir PoC yapıyorsanız inline kullanın. Ama production’da kalıcı inline skill tutmayın — bakımı zorlaşır ve test edilemez hâle gelir.
Mevcut bir skill’i başka bir yöntemle değiştirmek agent’ı etkiler mi?
İlginç olan şu ki, Hayır, bu modelin en güzel tarafı bu. Inline bir skill’i kaldırıp yerine NuGet paketli sınıf tabanlı skill koyduğunuzda, agent açısından hiçbir şey değişmiyor. Aynı işim ve açıklama korunduğu sürece geçiş sorunsuz oluyor (inanın bana)
Hmm, bunu nasıl anlatsamdı…
Kaynaklar ve İleri Okuma
Bence, Agent Skills in.NET: Three Ways to Author, Öne Provider to Run Them — Microsoft DevBlogs (kendi tecrübem)
Azure OpenAI Service Resmî Dokümantasyonu
Microsoft Agents Framework — GitHub Repository
Bu yazı yapay zeka (büyük dil modelleri) ile hazırlanmış, insan editör tarafından incelenmiştir. İçerik üretim sürecimiz.
Fatma B.
Finans sektöründe bu kaos bize de çok tanıdık geldi, ekipler büyüyünce herkes farklı bir convention benimsemeye başlıyor. Tek sağlayıcı üzerinden standardize etmek gerçekten işleri temizliyor. Bu arada şu yazınız da güzeldi: GitHub Copilot CLI Nedir ve Nasıl Kurulur: İlk Adımlar — https://www.askinkilic.com.tr/github-copilot-cli-nedir-ve-nasil-kurulur-ilk-adimlar/
Serkan D.
Tam da yaşadığımız sorunu anlatmış, büyük projede herkes farklı formatta skill yazınca kod review’lar işkenceye dönüşüyor. Sınıf tabanlı yaklaşımı tercih ediyorum çünkü test yazması çok daha kolay oluyor. Microsoft’un bunu standartlaştırması gerçekten geç kalmış bir adım.
Yorumlar kapalı.







2 comments