Günümüzde akıllı ajan sistemleri, giderek artan sayıda yetenek ve araç ile donatılarak daha karmaşık görevleri yerine getirebilir hale gelmektedir. Web arama, veri işleme, takvim yönetimi ve iletişim kurma gibi fonksiyonların tek bir sistem altında birleştirilmesi, bu ajanların kullanım alanını genişletmektedir. Ancak bu genişleme, beraberinde önemli bir sorunu da ortaya çıkarmaktadır: farklı kaynaklardan eklenen bu yeteneklerin tutarlı, izlenebilir ve yeniden kullanılabilir bir yapı içerisinde organize edilememesi. Nitekim, standart bir çerçeveye oturtulmayan yetenekler; görev tekrarları, bağlam eksiklikleri ve süreç takibinde yetersizlik gibi operasyonel problemlere yol açabilmektedir.
Bu noktada, sistem performansını yalnızca yetenek çeşitliliği değil, bu yeteneklerin nasıl tanımlandığı, yapılandırıldığı ve yönetildiği belirlemektedir. Dolayısıyla, akıllı ajanların etkinliğini artırmak için standartlaştırılmış ve güvenilir bir yetenek tanımına ihtiyaç duyulmaktadır.
Bu ihtiyaca yanıt olarak ortaya çıkan “agent skills” kavramı nedir?
Bir beceriyi, ajanların uzanıp alabileceği küçük, iyi etiketlenmiş bir alet çantası olarak hayal edin ve her becerinin de şunlardan oluştuğunu düşünün:
· Ad ve amaç: Ne yapar, ne zaman kullanılmalı.
· İçerik: Hangi girdilere ihtiyaç duyar, ne döndürür, hangi yan etkileri vardır.
· Koruma kuralları: Önkoşullar, sınırlar, güvenlik kuralları.
· Gözlemlenebilirlik: Günlükler, kimlikler ve metrikler; böylece ne olduğunu herkes görebilir.
Örneğin aşağıda yazılmış sade kurguya bakalım:
· Ad: calendar.add_event
· Amaç: Takvime toplantı eklemek
· Girdiler: title (metin), start_time (ISO zaman damgası), end_time (ISO zaman damgası), attendees (e‑posta listesi)
· Etkiler: Takvim girdisi oluşturur; davetiye e‑postaları gönderebilir
· Dönen: event_id, status
· Güvenlik: Yalnızca onaylı etki alanındaki takvimlerde; zaman aralığı gelecekte olmalı
Belirtilen kurguda ilgili aksiyon için gerekli olan ne kadar detay varsa kısaca bulunuyor. Kurgu sayesinde takvime toplantı ekleme süreci, keskin sınırları olan ve gerekli bilgiler/koşullar ile birlikte tetiklenerek çalışabilir konuma geliyor. Sadece ajanlar için değil, herhangi bir insan için de gayet pratik ve okunaklı bir “cookbook”.
Neden standartlaştıralım?
Standartlar olmadan her proje aynı temelleri farklı şekilde yeniden tanımlar. Bu da şunlara yol açar:
· Güvenilirlik açıkları: Belirsiz veya tutarsız açıklamalar yüzünden ajanlar yetenekleri yanlış kullanabilir.
· Yönetişim sorunları: Kim ne yaptı, neden yaptı, izlemek zorlaşır.
· Taşınabilirlik derdi: Modeli veya çerçeveyi değiştirince tüm içerikleri yeniden kodlamak gerekir.
· Planlama zorluğu: Yetenekler etkilerini ve önkoşullarını net beyan etmeyince adımlar güvenle zincirleme şekilde tetiklenemez.
Oysa standart yeteneklerle ajanlar, nelerin yapılmasının mümkün olduğunu keşfederek karar verebilir. Hangi aksiyonun ne zaman kullanılacağına karar vererek belirli bir sıraya/akışa dizebilir. Farklı akışları uçtan uca planlayarak güvenle çalıştırabilir. Bütün bunları yaparken, bunu neden yaptığıyla ilgili tutarlı açıklamalar sunabilir.
Bir öncü olarak Anthropic’den “agent-skills” örneğini de ele alalım:
Kaynakların global anlamda verimli kullanılabilmesi özellikle bilişim alanında çok önemsenmektedir. Ajanların da becerilerini küresel ölçekte yeniden kullanılabilir/uyarlanabilir kılmak için bir standart belirlemek tutarlı olacaktır.
Bu noktada öncü olan (Antropic’in desteklediği) open source agent skills’in formatına bir bakalım.
Temelde bir yetenek, içinde bir SKILL.md dosyası bulunan bir klasördür. Bu dosya, meta verileri (en azından ad ve açıklama) ile bir ajana belirli bir görevi nasıl yerine getireceğini anlatan talimatları içerir. Beceriler ayrıca komut dosyaları, şablonlar ve referans materyallerini de içerebilir.
Her beceri, YAML ön bilgisi ve Markdown talimatlarını içeren bir SKILL.md dosyasıyla başlar.
Örnek bir SKILL.md şu şekilde doldurulabilir:
SKILL.md dosyasının en üstünde aşağıdaki ön metin gereklidir:
· Name: Kısa bir tanımlayıcı
· Description: Bu yetenek ne zaman kullanılır?
· Markdown gövdesi: Gerçek talimatları içerir ve yapı veya içerik konusunda belirli bir kısıtlama yoktur.
Bu basit formatın bazı önemli avantajları vardır:
· Kendi kendini belgeleyen: Bir yetenek yazarı veya kullanıcı, SKILL.md dosyasını okuyarak ne işe yaradığını anlayabilir; bu da yeteneklerin denetlenmesini ve geliştirilmesini kolaylaştırır.
· Genişletilebilir: Yeteneklerin karmaşıklığı, sadece metin talimatlarından çalıştırılabilir kodlara, varlıklara ve şablonlara kadar değişebilir.
· Taşınabilir: Yetenekler sadece dosyalardır, bu nedenle düzenlenmesi, sürümlenmesi ve paylaşılması kolaydır.
(Halihazırda bulunan beceri setine giderek örnek becerileri incelemek için kaynaklardaki linki [1] ziyaret edebilirsiniz.)
Bir beceri çıktısı nasıl değerlendirilir?
Bir beceri yazdınız, bir komut isteminde denediniz ve çalışıyor gibi görünüyordu. Peki, çeşitli komut istemlerinde, sınır durumlarında ve hiç beceri olmaması durumuna kıyasla daha iyi ve güvenilir bir şekilde çalışıyor mu? Bütün bu değerlendirmeleri yapabilmek için bir evaluation seti hazırlayalım. Bir test senaryosu üç bölümden oluşur:
· Komut: Gerçekçi bir kullanıcı mesajı — birinin gerçekten yazabileceği türden bir mesaj.
· Beklenen çıktı: Başarının neye benzediğine dair insan tarafından okunabilir bir açıklama.
· Giriş dosyaları (isteğe bağlı): Becerinin çalışması için ihtiyaç duyduğu dosyalar.
Test senaryolarını beceri dizininizdeki evals/evals.json içinde saklayın:
Temel yaklaşım, her test senaryosunu iki kez çalıştırmaktır: bir kez beceri ile, bir kez de beceri olmadan(ya da önceki bir sürümle). Bu, karşılaştırma yapabileceğiniz bir referans noktası sağlar. Böylelikle geliştirdiğimiz becerinin yeterliliğini/gerekliliğini yada mevcut bir becerideki güncellemenin verimliliğini ölçebiliriz.
Değerlendirme sonuçlarını, beceri dizininizin yanında bir çalışma alanı dizininde düzenleyin. Tam değerlendirme döngüsünden geçen her geçiş, kendine ait bir iteration-N/ dizini alır. Bu dizinin içinde, her test vakası, with_skill/ ve without_skill/ alt dizinlerini içeren bir eval dizini alır: Elle yazacağınız ana dosya evals/evals.json’dur.
Diğer JSON dosyaları (grading.json, timing.json, benchmark.json) değerlendirme süreci sırasında oluşturulur.
Örnek bir dosya dizini formatı aşağıdaki görseldeki gibi yapılandırılır:
Beceri tanımlarının ve değerlendirme süreçlerinin ele alınmasının ardından, elde edilen bulgular sistem tasarımına doğrudan yansıtıldığında önemli iyileşmeler gözlemlenmektedir. Dağınık ve bağımsız araçların; açık adlandırmalar, standart şemalar, belirli önkoşullar ve tanımlı güvenlik kuralları ile yapılandırılmış, taşınabilir becerilere dönüştürülmesi, ajanların operasyonel tutarlılığını artırmaktadır. Bu yaklaşım sayesinde sistemler daha sağlıklı planlama yapabilmekte, gerekli izinleri doğru şekilde talep edebilmekte ve gerçekleştirdikleri eylemleri izlenebilir biçimde açıklayabilmektedir.
Sonuç olarak, ajan becerilerinin standartlaştırılması; daha az hata üreten, öngörülebilirliği yüksek ve sürdürülebilir sistemlerin geliştirilmesini mümkün kılmaktadır. Bu durum yalnızca teknik doğruluğu artırmakla kalmaz, aynı zamanda ajanların sorumlu, denetlenebilir ve tekrarlanabilir biçimde eyleme geçebilmesini sağlayarak güvenilir yapay zeka sistemlerinin temelini oluşturur.
Yazımıza Medium üzerinden de ulaşabilirsiniz.
Yazan: Necati Kaynak, AI Developer
REFERANSLAR:
[1] https://github.com/anthropics/skills
[2] https://agentskills.io/home
[3] https://kiro.dev/docs/skills/
[4] https://anthropic.skilljar.com/introduction-to-agent-skills
Fikirlerini paylaş, destek al.
Aşağıdaki iletişim bilgilerinden bize ulaşabilir ve iletişim formumuzu doldurabilirsiniz.
Seba Office Boulevard / İstanbul
Ayazağa Mah. Mimar Sinan Sok. A,
No: 21A İç Kapı No:1 Sarıyer, İstanbul
Levent Office / İstanbul
Yeşilce Mh. Göktürk Cad. Çeşni Sok. No:4 Kat:2 Kağıthane
P: 444 0 885
Ankara
Beştepe, Dumlupınar Blv. No: 10B Yenimahalle / Ankara
P: +90 312 419 43 43
Yardım
Email:
info@treomind.com