0 Dolar Bütçeyle 3 Yapay Zeka Ajanı Geliştirmek: Araç Kullanımı, RAG ve Kod Çalıştırma

İçindekiler
Neden Geliştirdim?
Veri Bilimi ve Yapay Zeka alanında yüksek lisans başvurusuna hazırlanan bir bilgisayar mühendisliği mezunu olarak, standart Kaggle yarışmaları ve Coursera sertifikalarının ötesine geçmek istedim. Temel amaç, modern yapay zeka sistemlerinin yalnızca bir API çağrısı yapmaktan ibaret olmadığını ve arka planda nasıl çalıştığını bizzat deneyimleyerek kavramaktı.
Bu doğrultuda, büyük dil modellerinin (LLM) dış dünyayla etkileşim kurduğu üç temel deseni temsil eden üç küçük ajan geliştirdim: web araması, kendi verilerimiz üzerinde getirme (retrieval) ve canlı kod çalıştırma. Projelerin tamamı Google Gemini'ın ücretsiz katmanı üzerinde çalışıyor; toplam maliyet ise tam olarak 0 dolar.
Ajan 1: Araştırma Asistanı (Araç Kullanımı / Tool-Use)
En temel ve kritik desen, modele bir araç verip bu aracı ne zaman kullanacağına kendisinin karar vermesini sağlamaktır. Model olarak Gemini 2.5 Flash, arama aracı olarak ise API anahtarı gerektirmeyen ücretsiz Python kütüphanesi ddgs (DuckDuckGo Search) kullanıldı.
- Pratik Çıkarım: Ajan her soru için arama yapmaz; yalnızca bilgiye güvenmediğinde veya güncel veriye ihtiyaç duyduğunda
web_searcharacını tetikler. - Mühendislik Dersi: Her girdide arama yapan saf (naive) bir yaklaşım, kotaları hızla tüketir ve modelin zaten bildiği konularda alakasız sonuçlarla grounding yaparak kalitesiz yanıtlar üretmesine yol açar. Modele bir aracı ne zaman kullanmayacağını öğretmek, aracın entegrasyonu kadar önemlidir.
Ajan 2: RAG Soru-Cevap (Retrieval-Augmented Generation)
Eğitim verisindeki genel bilgiyi kullanan bir model ile spesifik kaynak dokümanları tarayan bir model arasındaki fark burada ortaya çıkar. Bu ajan; .txt ve .md formatındaki kişisel dokümanları alır, örtüşen parçalara (overlapping chunks) böler ve Gemini embedding modeliyle vektörleştirir.
- Vektör Veritabanı: Vektörler, harici bir sunucuya ihtiyaç duymadan tamamen yerel çalışan ChromaDB üzerinde saklanır.
- Pratik Çıkarım: Kullanıcı soru sorduğunda benzerlik aramasıyla en alakalı metin parçaları Gemini'a bağlam olarak aktarılır. Model sadece bu bağlam üzerinden ve kaynak belirterek yanıt verir; aranan bilgi metinde yoksa bunu dürüstçe belirtir. Bu bağlamsal sabitleme (grounding), halüsinasyonu ciddi ölçüde engeller.
Ajan 3: Veri Analizi Ajanı (Kod Çalıştırma / Code Execution)
LLM'lerin kesin sayısal hesaplamalardaki güvenilmezliğini aşmak için tasarlanmıştır. Modelin aritmetik tahminlerine güvenmek yerine, ajanın verilen bir CSV dosyası üzerinde gerçek pandas kodu yazması ve çalıştırması sağlanır.
- Pratik Çıkarım: Kullanıcı doğal dilde "Yolcu sınıfına göre ortalama bilet fiyatı nedir?" diye sorduğunda, model bunu pandas koduna dönüştürür. Kod doğrudan çalıştırılarak doğrulanabilir kesin bir sonuç üretilir.
- Mühendislik Dersi: ChatGPT'nin Code Interpreter mantığını sıfırdan inşa etmek, hesaplama gerektiren görevlerde deterministik araçlara yetki devretme refleksini kazandırır.
Hepsini Birleştiren Ortak Payda
Geliştirilen üç ajanın da temelinde aynı mimari desen yer alır: Model ne zaman araç çağıracağına karar verir, aracı kullanır ve ardından dönen sonuç üzerinden akıl yürütür.
Süreçteki en kritik öğrenme ise asıl mühendislik eforunun "yapay zeka" kısmından ziyade altyapı işçiliğinde yatmasıdır: Ücretsiz katman hız sınırlarını (rate limits) zarifçe yönetmek, metinleri anlamlı şekilde parçalamak (chunking) ve versiyon kontrolüne nelerin dahil edilmeyeceğine doğru karar vermek.
Orijinal makaleye buradan ulaşabilirsiniz.
Bu konuyu derinlemesine öğrenmek isterseniz: Tool Calling ve Multi-Step Agent'lar modülüne göz atın.
Bu konuyu daha derinlemesine öğrenmek ister misin?
Edumints'teki ücretsiz kursları incele ve bugün başla.
Kurslara Göz At →