Python için Agent Skills Kararlı Sürümde Yayınlandı
Microsoft Agent Framework tarafında Python geliştiricilerini ilgilendiren önemli bir aşama tamamlandı: Agent Skills Python API’si artık deneysel etiketten çıkarak kararlı (stable) sürüme geçti ve üretim ortamlarında kullanılmaya hazır. Bu, ajanlarınıza yeniden kullanılabilir uzmanlık paketleri (talimatlar, referans dokümanlar ve yalnızca ihtiyaç duyulduğunda yüklenen scriptler) ekleyebileceğiniz, kurumsal yönetişim kontrolleriyle birlikte gelen bir API’nin artık ön izleme çalkantısı olmadan bağlanabileceğiniz bir yüzeye kavuşması anlamına geliyor.
Daha önce dosya tabanlı skills ve script yürütmeli yazım modları üzerine yayımlanan blog yazılarında anlatılan her şey, bu sürümle birlikte kararlı halde geliyor.
Agent Skills Nedir?
Agent Skills, ajanların ihtiyaç duydukça keşfedip kullanabildiği uzmanlık paketlerini tanımlayan açık bir formattır. Her skill; meta verilerden ve talimatlardan oluşur. Dosya tabanlı skill’ler için bu bir SKILL.md dosyası, kod tabanlı skill’ler için ise eşdeğer sınıf özellikleridir. İsteğe bağlı olarak scriptler, referans dokümanlar ve başka kaynaklar da paketlenebilir.
Ajan, ihtiyacı olan içeriği ihtiyaç duyduğu anda yükleyerek context penceresini şişkinlikten korur. Bu davranış dört aşamalı bir aşamalı açığa çıkarma (progressive disclosure) deseniyle çalışır:
- Skill adlarını duyur
- Talimatları yükle
- Kaynakları oku
- Scriptleri çalıştır
Sonuç olarak, ajanın çekirdek talimatlarını veya context penceresini şişirmeden özel yetenekler kazandırılır ve bir kez yazılan uzmanlık ihtiyaç duyan her ajan tarafından yeniden kullanılabilir.
Pratikte Neye Yarıyor?
Kaynakta öne çıkarılan başlıca kullanım biçimleri şöyle özetlenebilir:
Kurumsal politikaların tutarlı uygulanması
Şirketin İK kuralları, masraf politikaları veya BT güvenlik yönergeleri birer skill olarak paketlenebilir. Bir çalışan “ortak çalışma alanı ücretini masraf olarak yazabilir miyim?” diye sorduğunda, ajan yalnızca ilgili politika skill’ini yükler ve cevabı doğrudan bu kaynaktan üretir. Böylece her ajan aynı doğrulanmış rehberliği kullandığı için çalışanlar tutarlı ve dayanağı belli yanıtlar alır.
Destek playbook’larını tekrarlanabilir akışlara çevirme
Destek ekiplerinin sorun giderme rehberleri skill’lere dönüştürülebilir. Bir müşteri sorun bildirdiğinde ajan uygun playbook’u yükler ve belgelenmiş adımları izler; hangi ajan örneği çalışırsa çalışsın süreç aynı biçimde ilerler.
Farklı ekiplerin skill’lerini birleştirme
Ekipler skill’lerini bağımsız olarak geliştirip yönetebilir; ortak bir repoda dizin olarak veya iç PyPI beslemesinde paket olarak. Siz de bunları tek bir ajana takarsınız. Yönlendirme mantığını siz yazmak zorunda kalmazsınız; ajan hangi skill’i kullanacağını her skill’in kendi açıklamasına bakarak seçer.
Hazır skill örnekleri için Awesome Copilot deposundaki skills bölümü iyi bir başlangıç noktasıdır.
Üç Farklı Yazım Biçimi
Sürüm, ekiplerin çalışma biçimlerine uygun üç yazım tarzını destekliyor. Üçü de aynı sağlayıcıya (provider) bağlanır ve ajan çalışma anında hepsini aynı şekilde ele alır:
- Dosya tabanlı skill’ler:
SKILL.md, isteğe bağlı scriptler ve referans dokümanlardan oluşan bir dizin. Ortak bir repoda yaşayan, geliştirici olmayan veya birden fazla fonksiyondan gelen ekiplerin sürdürdüğü skill’ler için uygundur. - Sınıf tabanlı skill’ler: Talimatları, kaynakları ve scriptleri bir Python sınıfı içinde paketleyip standart Python dağıtım akışlarıyla (örneğin iç PyPI paketleri) yaymayı sağlar.
- Kod içinde tanımlı skill’ler: Doğrudan uygulama kodunda oluşturulan skill’ler. Skill’in dinamik olarak üretilmesi veya uygulama durumuna erişmesi gerektiğinde işe yarar.
.NET tarafında benzer üç yazım biçimini incelemek isteyenler için.NET Agent Skills: Üç Yöntem, Tek Sağlayıcı yazısı da referans olabilir.
Üretime Uygun Yönetişim Kontrolleri
Bir ajana yeni yetenekler kazandırmak, ancak bu yeteneklerin nasıl kullanıldığını kontrol edebiliyorsanız anlam kazanır. Kararlı sürüm, üretimde skill çalıştırmak için gereken kontrolleri içeriyor.
Human-in-the-loop onayı
Skills sağlayıcısı, ajanın skill’lerle çalışırken çağırdığı üç aracı dışa açar:
load_skill: bir skill’in talimatlarını yüklerread_skill_resource: paketlenmiş bir kaynağı okurrun_skill_script: paketlenmiş bir scripti çalıştırır
Üçü de varsayılan olarak onay ister; hiçbir şey denetimsiz yüklenmez veya çalıştırılmaz. Güvenilir işlemler için bu onay seçilerek gevşetilebilir.
Kontrollü script yürütme
Sınıf tabanlı ve kod içinde tanımlı skill scriptleri, sürecin içinde (in-process) çalışır. Dosya tabanlı scriptler ise sizin sağladığınız bir runner’a devredilir; sandbox’lama, kaynak sınırları ve denetim günlüğü size aittir.
Filtreleme
Paylaşılan bir skill kütüphanesinin yalnızca seçilmiş bir alt kümesini belirli bir ajana açabilirsiniz. Bir predicate ile bunu istekte bulunan ajana veya tenant’a göre bağlama duyarlı biçimde belirleyebilirsiniz.
Önbellekleme
Skill’ler bir kez çözümlenir ve yeniden kullanılır. Anahtar bazında izolasyon seçeneğiyle tek bir sağlayıcı, farklı ajan veya tenant’lara farklı skill setleri sunabilir.
Genişletilebilir kaynak pipeline’ı
Alttaki source sınıfları artık public. Yerleşik builder ihtiyacınıza yetmediğinde kendi pipeline’ınızı oluşturabilir veya kendi kayıt defterlerinizden (registry) skill’leri entegre edebilirsiniz.
Kaynakta özellikle vurgulandığı üzere, ajan davranışını etkileyebilecek her bağımlılıkta olduğu gibi, skill içeriklerini dağıtımdan önce gözden geçirmek, dosya tabanlı scriptleri sandbox’a almak ve hangi skill, kaynak ve scriptin kullanıldığını loglamak önerilir.
Başlarken: Örnek Kod
Kaynakta paylaşılan minimum örnek, dosya tabanlı skill’leri bir dizinden keşfeden ve bunları ajana bağlayan tipik bir kurulumu gösteriyor:
import asyncio
import os
from pathlib import Path
from agent_framework import Agent, SkillsProvider
from agent_framework.foundry import FoundryChatClient
from azure.identity import AzureCliCredential
async def main() -> None:
client = FoundryChatClient(
project_endpoint=os.environ["FOUNDRY_PROJECT_ENDPOINT"],
model=os.environ.get("FOUNDRY_MODEL", "gpt-4o-mini"),
credential=AzureCliCredential(),
)
# Discover file-based skills from a directory of SKILL.md files.
# Skill tools require approval by default. For these trusted skills we opt
# the read-only tools out of approval so the agent can load skills and read
# resources unattended, while running a script still requires approval.
skills_dir = Path(__file__).parent / "skills"
skills_provider = SkillsProvider.from_paths(
skill_paths=str(skills_dir),
disable_load_skill_approval=True,
disable_read_skill_resource_approval=True,
)
async with Agent(
client=client,
instructions="You are a helpful assistant.",
context_providers=[skills_provider],
) as agent:
response = await agent.run("Help me with onboarding.")
print(response.text)
if __name__ == "__main__":
asyncio.run(main())
Örnekte dikkat çeken nokta, salt okuma yapan iki aracın (load_skill ve read_skill_resource) onay dışına alınması; script yürütmenin ise yine onay gerektiriyor olmasıdır. Bu, güvenilir skill’lerde ajanın gözetimsiz çalışabildiği, ancak gerçekten kritik olan script yürütme adımında insan onayının korunduğu bir denge kurar.
Neden Önemli?
Agent Skills; ajanlar için domain uzmanlığını paketlemek, dağıtmak ve yönetmek üzere standart bir yol sunuyor. Ekipler skill’lerini bağımsız yazar, builder bunları tek bir sağlayıcıda birleştirir ve onay mekanizması kritik adımlarda insanı devrede tutar. Python API’nin kararlı hale gelmesiyle birlikte, deneysel bir yüzeyin sürekli değişen davranışlarına bağımlı olmadan üretim üzerine kurgu yapılabiliyor.
Kaynaklar ve İleri Okuma
- Agent Skills for Python Is Now Released — Microsoft DevBlogs (orijinal yazı)
- Give Your Agents Domain Expertise with Agent Skills
- What’s New in Agent Skills: Code Skills, Script Execution and Approval for Python
- Microsoft Learn: Agent Skills (Python)
- GitHub: Python skills örnekleri
- Awesome Copilot: Skills koleksiyonu
- Agent Skills Specification
- GitHub Discussions: Microsoft Agent Framework
- Agent Skills for.NET Kararlı Sürümde: Uzmanlık Artık Paketli
- .NET Agent Skills: Üç Yöntem, Tek Sağlayıcı








Yorum gönder