Hugging Face’den "smolagents": Yapay Zekaya Kod Yazdırarak Çalışan Hafif Ajan Kütüphanesi
Hugging Face’den "smolagents": Yapay Zekaya Kod Yazdırarak Çalışan Hafif Ajan Kütüphanesi
Yapay zeka dünyası, büyük dil modellerinin (LLM) sadece soruları yanıtlamakla kalmayıp, kendi başlarına kararlar alıp uygulayabildiği "AI Agent" (Yapay Zeka Ajanı) dönemine hızlı bir geçiş yaptı. Ancak bugüne kadar kullanılan ajan kütüphanelerinin (LangChain, CrewAI vb.) çoğu, karmaşık yapıları, aşırı soyutlamaları ve hantal "JSON tabanlı araç çağırma" (tool calling) yöntemleri nedeniyle geliştiricileri zorluyordu.
Hugging Face, bu karmaşaya son vermek ve ajan geliştirme sürecini olabildiğince sadeleştirmek için devrimsel bir adım attı ve yeni kütüphanesi "smolagents"ı duyurdu.
Bu yazıda, smolagents kütüphanesinin ne olduğunu, yapay zeka ajanlarına yaklaşımımızı nasıl değiştireceğini ve neden JSON yerine doğrudan Python kodu yazdırarak çalıştığını inceleyeceğiz.
"smolagents" Nedir?
smolagents, Hugging Face tarafından geliştirilen, yapay zeka ajanlarının karmaşık araçları (API'ler, veri tabanları, web arama motorları vb.) doğrudan Python kodu yazıp çalıştırarak çağırmasını sağlayan, son derece hafif ve minimalist bir ajan framework'üdür.
Kütüphanenin felsefesi adında gizli: "Smol" (küçük/hafif). Amacı, geliştiriciyi yüzlerce sayfalık dokümantasyonlar ve karmaşık nesne yönelimli yapılar arasında boğmadan, sadece birkaç satır kodla güçlü ve güvenli ajanlar oluşturabilmesini sağlamaktır.
JSON Tabanlı Araç Çağırma vs. Kod Odaklı (Code-First) Ajanlar
Geleneksel AI ajanları, bir aracı (tool) çağırmak için genellikle şu adımları izler:
- Model, hangi aracı çağıracağını ve parametrelerini belirten bir JSON şeması üretir.
- Yazılım bu JSON'ı ayrıştırır (parse eder).
- İlgili fonksiyonu çalıştırır ve sonucu modele geri döner.
Bu yöntem basit işler için çalışsa da, döngüler (loops), koşullu durumlar (if-else) ve ardışık mantık işlemleri gerektiğinde tıkanır. Örneğin; bir web sayfasından 10 farklı veriyi çekip, bunları filtreleyip, ortalamasını alması gereken bir ajan JSON ile onlarca kez git-gel yapmak zorunda kalır.
smolagents Farkı: Kodun Gücü
smolagents ise bu süreci tamamen değiştiriyor. Model, ne yapacağını adım adım açıklayan gerçek bir Python kodu yazar. Ajan, bu kodu güvenli bir ortamda çalıştırır ve sonucu tek seferde alır.
- Daha Az Git-Gel (Round-trip): Karmaşık mantıksal işlemler tek bir Python kod bloğu içinde çözülür.
- Sonsuz Esneklik: Model, Python'ın sunduğu döngü, liste anlama (list comprehension) ve kütüphane avantajlarının tamamını kullanabilir.
- Daha Yüksek Başarı Oranı: Araştırmalar, modellerin karmaşık JSON şemaları üretmektense, eğitim verilerinde tonlarca bulunan Python kodunu yazmada çok daha başarılı olduğunu gösteriyor.
smolagents’ın Öne Çıkan Özellikleri
1. Minimalist ve Az Soyutlama (Low Abstraction)
Kütüphanenin çekirdek kodu inanılmaz derecede küçüktür (yaklaşık 1000 satır civarında). Bu, "arkada dönen sihirli işleri" anlamanızı kolaylaştırır. Hata ayıklamak (debugging) ve kodu özelleştirmek son derece basittir.
2. Güvenli Kod Çalıştırma (Sandboxed Execution)
"Yapay zekanın yazdığı kodu doğrudan bilgisayarımda çalıştırmak tehlikeli değil mi?" sorusu aklınıza gelebilir. Kesinlikle haklısınız! smolagents, LLM tarafından üretilen Python kodunu güvenli bir şekilde yürütmek için yerleşik bir korumalı alan (sandbox) ve güvenli yorumlayıcı (interpreter) kullanır. Zararlı olabilecek sistem komutları engellenir.
3. Hugging Face Hub Entegrasyonu
Hugging Face ekosistemine sorunsuz entegre olur. Llama-3, Qwen, DeepSeek veya tescilli modelleri (OpenAI, Anthropic) saniyeler içinde ajanın beyni olarak tanımlayabilirsiniz.
4. Çok Yönlü Araç (Tool) Desteği
Kendi Python fonksiyonlarınızı saniyeler içinde birer "Ajan Aracı" haline getirebilirsiniz. Sadece fonksiyonun docstring'ini (açıklama satırını) yazmanız yeterlidir; smolagents gerisini halleder.
Pratik Bir Örnek: İlk smolagent'ınızı Oluşturun
Hadi, smolagents kullanarak web'de arama yapabilen ve bulduğu sonuçları analiz eden basit bir kod yazalım.
Kurulum
Öncelikle kütüphaneyi yükleyelim:
pip install smolagents
Kodlama
Aşağıdaki örnekte, web araması yapabilen ve Python kodu yazarak çalışan bir CodeAgent oluşturuyoruz:
from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel
# 1. Kullanılacak modeli tanımlayalım (Hugging Face Hub üzerindeki ücretsiz bir model)
model = HfApiModel(model_id="Qwen/Qwen2.5-Coder-32B-Instruct")
# 2. Ajanın kullanabileceği araçları tanımlayalım (Örn: Web Arama Aracı)
search_tool = DuckDuckGoSearchTool()
# 3. Ajanı oluşturalım
agent = CodeAgent(
tools=[search_tool],
model=model,
add_base_tools=True # Temel matematiksel ve mantıksal araçları otomatik ekler
)
# 4. Ajanı çalıştıralım
soru = "En son Oscar ödüllerinde En İyi Film ödülünü hangi film kazandı ve yönetmeni kimdir?"
agent.run(soru)
Bu Kod Çalıştığında Ne Oluyor?
- Model, soruyu analiz eder.
- Bilgiye ulaşmak için
DuckDuckGoSearchToolaracını kullanan bir Python kodu yazar. smolagentsbu kodu güvenli bir şekilde çalıştırır, arama sonuçlarını alır.- Model, gelen sonuçları işleyerek size nihai ve doğru cevabı sunar.
smolagents’ı Diğer Framework'lerden Ayıran Nedir?
| Özellik | smolagents | Geleneksel Framework'ler (LangChain vb.) |
|---|---|---|
| Boyut ve Karmaşıklık | Çok hafif, anlaşılması kolay | Ağır, derin soyutlama katmanları var |
| Araç Çağırma Yöntemi | Doğrudan Python Kodu Yazma | JSON Şeması ve Parsing |
| Öğrenme Eğrisi | Çok düşük (Birkaç dakikada öğrenilir) | Yüksek (Dokümantasyon labirenti) |
| Güvenlik | Yerleşik güvenli Python yorumlayıcısı | Genellikle harici kütüphanelere bağımlı |
Sonuç: Gelecek Kod Yazan Ajanlarda mı?
Hugging Face’in smolagents kütüphanesi, yapay zeka ajanlarının geliştirilmesinde yeni bir dönemin kapısını aralıyor. Ajanları JSON sınırlarına hapsetmek yerine, onlara ana dilleri olan kodu vermek, hem performansı artırıyor hem de geliştiricilerin işini inanılmaz derecede kolaylaştırıyor.
Eğer siz de yapay zeka projelerinizde hantal yapılardan sıkıldıysanız ve kontrolün sizde olduğu, hafif ama son derece yetenekli bir ajan yapısı kurmak istiyorsanız, smolagents kesinlikle başlamanız gereken yer.
Siz bu yeni yaklaşım hakkında ne düşünüyorsunuz? Sizce kod yazan ajanlar, JSON tabanlı ajanların yerini tamamen alabilir mi? Yorumlarda tartışalım!