Yapay zeka modellerinin dış dünyayla etkileşime geçmesini sağlayan araç çağırma (tool calling) mekanizması, otonom ajanların temel yapı taşıdır. Bir LLM’in sadece metin üretmek yerine API çağrısı yapmasını, veritabanı sorgulamasını veya dosya işlemesi gerçekleştirmesini istiyorsanız doğru yerdesiniz. Bu rehberde, tool calling ile ajan otomasyonu tasarlamanın pratik yollarını adım adım inceleyeceğiz.
Başlamadan Önce
Ajan geliştirmeye atlamadan önce elinizde olması gereken araçları ve ön koşulları netleştirelim.
Gerekenler:
- Python 3.10+ veya Node.js 18+ ortamı
- OpenAI, Anthropic veya Google Gemini API anahtarı
- Temel JSON şema bilgisi
- LangChain, LangGraph veya doğrudan SDK tercihi
Ön Koşullar:
- LLM’lerin nasıl çalıştığına dair temel anlayış
- REST API kavramına aşinalık
- Asenkron programlama mantığı (opsiyonel ama faydalı)
Süre: İlk çalışan prototipi 2-4 saat içinde ayağa kaldırabilirsiniz. Prodüksiyon seviyesi bir sistem için 1-2 hafta planlayın.
Tool Calling Tam Olarak Ne İşe Yarıyor?
Kısa Tanım: Tool calling, bir dil modelinin “şu anda bir fonksiyon çağırmam gerekiyor” kararını vermesini ve hangi parametrelerle çağıracağını belirlemesini sağlayan mekanizmadır.
Geleneksel LLM kullanımında model sadece metin üretir. Tool calling aktifken model, tanımladığınız araçlar arasından uygun olanı seçer ve yapılandırılmış bir çıktı döndürür. Siz bu çıktıyı alıp gerçek fonksiyonu çalıştırır, sonucu modele geri beslersiniz.
Basit Örnek:
Kullanıcı “İstanbul’da hava nasıl?” diye sorduğunda:
- Model,
get_weatheraracını{"city": "Istanbul"}parametresiyle çağırmaya karar verir - Sisteminiz gerçek hava durumu API’sini çağırır
- Sonuç modele iletilir
- Model, kullanıcıya doğal dilde yanıt üretir
Ajan Mimarisi: Temel Bileşenler

Anthropic’in araştırma ekibinin 2024 sonunda yayınladığı rehbere göre, etkili bir ajan sistemi şu katmanlardan oluşur:
| Bileşen | Görevi | Örnek |
|---|---|---|
| Orchestrator (Orkestratör) | Akış kontrolü ve karar mekanizması | ReAct döngüsü, planlama modülü |
| Tool Registry | Kullanılabilir araçların tanımları | JSON Schema formatında fonksiyon listesi |
| Executor | Araç çağrılarını gerçekleştiren katman | API istemcileri, veritabanı bağlantıları |
| Memory | Bağlam ve geçmiş yönetimi | Konuşma geçmişi, öğrenilen bilgiler |
Kilit Çıkarım: Basit görevler için tek bir LLM + tool seti yeterlidir. Karmaşık iş akışlarında ise “multi-agent” yapılar veya LangGraph gibi graf tabanlı orkestrasyonlar devreye girer.
Adım Adım: İlk Ajanınızı Tasarlayın
Şimdi pratik kısma geçelim. Aşağıdaki adımları sırayla takip et:
-
Araç tanımlarını oluştur: Her araç için bir JSON Schema hazırla. İsim, açıklama ve parametreleri net belirt. Açıklamalar ne kadar spesifik olursa model o kadar doğru karar verir.
{ "name": "search_database", "description": "Müşteri veritabanında isim veya ID ile arama yapar", "parameters": { "type": "object", "properties": { "query": {"type": "string", "description": "Aranacak terim"}, "limit": {"type": "integer", "default": 10} }, "required": ["query"] } } - Executor fonksiyonlarını yaz: Her araç tanımı için gerçek işi yapan bir fonksiyon oluştur. Hata yönetimini unutma—model beklenmedik girdiler gönderebilir.
- Orkestrasyon döngüsünü kur: En yaygın yaklaşım ReAct (Reasoning + Acting) paternidir. Model düşünür, aksiyon alır, gözlem yapar ve tekrar düşünür.
- Sonlandırma koşulunu belirle: Ajan ne zaman duracak? Maksimum iterasyon sayısı, belirli bir çıktı formatı veya kullanıcı onayı gibi kriterler tanımla.
- Test senaryoları hazırla: Edge case’leri düşün. Model yanlış araç seçerse ne olacak? Araç hata dönerse sistem nasıl tepki verecek?
Pro İpucu: Araç açıklamalarında “ne zaman kullanılmaması gerektiğini” de belirt. Örneğin: “Bu araç sadece kayıtlı kullanıcılar için çalışır, misafir sorguları için kullanma.” Bu tür negatif talimatlar yanlış çağrıları ciddi oranda azaltır.
Paralel ve Çok Adımlı Çağrılar

Modern API’ler (OpenAI, Anthropic, Gemini) paralel tool calling destekler. Yani model tek bir yanıtta birden fazla araç çağrısı döndürebilir.
Şu durumda ne yaparsın?
Kullanıcı “Hem İstanbul hem Ankara’nın hava durumunu söyle” dediğinde, model iki ayrı get_weather çağrısı üretir. Bunları paralel çalıştırıp sonuçları toplu olarak modele iletebilirsin. Bu, yanıt süresini yarıya indirir.
Çok adımlı (multi-step) senaryolarda ise bir aracın çıktısı diğerinin girdisi olur. Örneğin:
search_user→ Kullanıcı ID’sini bulget_orders→ Bu ID ile siparişleri çekcalculate_total→ Toplam harcamayı hesapla
Risk Seviyesi: Çok adımlı zincirlerde her adım hata potansiyeli taşır. Zincir uzadıkça güvenilirlik düşer. Pratikte 3-5 adımı aşan akışlarda ara doğrulama noktaları eklemek şart.
Yaygın Hatalar ve Kaçınılması Gerekenler
- Araç enflasyonu: 20+ araç tanımlamak modelin karar kalitesini düşürür. Benzer işlevleri grupla veya bağlama göre dinamik olarak sun.
- Belirsiz açıklamalar: “Veri çeker” yerine “Belirtilen tarih aralığındaki satış verilerini JSON formatında döndürür” yaz.
- Hata mesajlarını gizlemek: Araç başarısız olduğunda modele net bir hata mesajı ilet. “Bir şeyler ters gitti” yerine “API rate limit aşıldı, 60 saniye bekle” gibi actionable bilgi ver.
- Sonsuz döngü riski: Maksimum iterasyon limiti koymadan ajan çalıştırmak tehlikelidir. Maliyet ve güvenlik açısından mutlaka sınır belirle.
Framework Seçimi: Hangisi Ne Zaman?

| Seçenek | Artılar (+) | Eksiler (-) | Uygun Senaryo |
|---|---|---|---|
| Doğrudan SDK | Tam kontrol, minimum bağımlılık | Boilerplate kod fazla | Basit, tek amaçlı ajanlar |
| LangChain | Zengin ekosistem, hızlı prototipleme | Soyutlama karmaşıklığı, debug zorluğu | RAG + ajan kombinasyonları |
| LangGraph | Graf tabanlı akış, görselleştirme | Öğrenme eğrisi | Karmaşık, dallanmalı iş akışları |
| Anthropic MCP | Standart protokol, taşınabilirlik | Henüz yeni, ekosistem gelişiyor | Çoklu model/araç entegrasyonu |
Sıkça Sorulan Sorular
Tool calling ile function calling aynı şey mi?
Evet, farklı sağlayıcılar farklı isimler kullanıyor. OpenAI başlangıçta “function calling” dedi, sonra “tool calling”e geçti. Anthropic ve Google da “tool use” terimini tercih ediyor. Teknik olarak aynı mekanizma.
Hangi modeller tool calling destekliyor?
GPT-4o, GPT-4 Turbo, Claude 3.5 Sonnet, Claude 3 Opus, Gemini 1.5 Pro ve Gemini 2.0 Flash native destek sunuyor. Açık kaynak tarafında Qwen, Llama 3.1+ ve Mistral’in büyük versiyonları da bu özelliği destekliyor.
Maliyet nasıl hesaplanır?
Araç tanımları ve çağrı sonuçları token sayısına eklenir. 10 araç tanımı yaklaşık 500-1500 token tüketir. Çok adımlı akışlarda her iterasyon ayrı API çağrısı demek—bütçeni buna göre planla.
Sonuç
Tool calling, yapay zeka ajanlarının “düşünmekten” “yapmaya” geçişini sağlayan kritik köprüdür. Başarılı bir ajan tasarımı için:
- Araç tanımlarını net ve spesifik tut
- Hata senaryolarını baştan planla
- Basit başla, karmaşıklığı kademeli ekle
- Maliyet ve güvenlik limitlerini unutma
İlk prototipinizi doğrudan SDK ile kurun, ihtiyaç büyüdükçe LangGraph gibi araçlara geçiş yapın. Ajan otomasyonu hâlâ hızla gelişen bir alan—bugün öğrendikleriniz yarının sistemlerinin temelini oluşturacak.












Cevap ver