Modül 5 · Tool Use with Claude · ⏱ 4 dakika

Birden çok tool kullanmak

Using multiple tools

Orijinal İngilizce video — Anthropic Academy / JWPlayer. Aşağıdaki Türkçe metin dersi birebir özetler.

Bu modül için tahmini süre: 4 dakika

Genel bakış

Claude implementasyonunuza birden çok tool eklemek, çekirdek tool-handling altyapısı hazır olduğunda kolay hale gelir. Bu derste basit bir pattern takip ederek ek tool’ların nasıl entegre edileceğini görürüz: schema’yı tools listesine ekle, router’a bir elif ekle, bitti.

Eklediğimiz tool’lar

Hatırlatıcı sistemimiz için üç ana yetenek gereklidir:

  • Get current date time — Claude’un güncel tarih ve saati bilmesi gerekir
  • Add duration to date time — Claude date time toplama işleminde mükemmel değil
  • Set a reminder — Bir hatırlatıcı set etme yolu

İyi haber: implementasyon işinin çoğu zaten yapıldı. add_duration_to_datetime fonksiyonu ve set_reminder fonksiyonu, karşılık gelen schema’larıyla birlikte sağlanmıştır.

Conversation’a tool eklemek

Önce, run_conversation fonksiyonunu yeni tool schema’larını tools listesine dahil edecek şekilde güncelleyin:

response = chat(messages, tools=[
    get_current_datetime_schema,
    add_duration_to_datetime_schema,
    set_reminder_schema
])

Bu, Claude’a conversation sırasında kullanabileceği üç tool olduğunu söyler.

Tool router’ı güncellemek

Sonra, run_tool fonksiyonunu yeni tool çağrılarını yönetecek şekilde değiştirin. Her yeni tool için elif case’leri ekleyin:

def run_tool(tool_name, tool_input):
    if tool_name == "get_current_datetime":
        return get_current_datetime(**tool_input)
    elif tool_name == "add_duration_to_datetime":
        return add_duration_to_datetime(**tool_input)
    elif tool_name == "set_reminder":
        return set_reminder(**tool_input)

Pattern basit: tool adını kontrol et, sağlanan input ile karşılık gelen fonksiyonu çağır ve sonucu döndür.

Birden çok tool kullanımını test etmek

Sistemi test etmek için birden çok tool gerektiren bir istek deneyin: “Set a reminder for my doctors appointment. Its 177 days after Jan 1st, 2050.”

Bu istek Claude’u şunları yapmaya zorlar:

  1. Tarihi hesapla (add_duration_to_datetime kullanarak)
  2. Hatırlatıcıyı set et (set_reminder kullanarak)

Claude bunu önce ne yapması gerektiğini açıklayarak, sonra uygun tool çağrılarını sırayla yaparak yönetir. Conversation, Claude’un June 27, 2050’yi hedef tarih olarak hesaplayıp ardından o tarih için hatırlatıcı kurmasını gösterir.

Message flow’unu anlamak

Conversation history’i incelediğinizde tam message yapısını görürsünüz:

  • İstek içeren user message
  • Hem text hem tool use block’ları içeren assistant message
  • Tool result message’ları
  • Follow-up assistant message’ları

Bu, Claude’un tek bir message’da birden çok block’u nasıl dahil edebildiğini gösterir — açıklayıcı text ile tool kullanım isteklerini birleştirerek.

Tool eklemek için basit pattern

Çekirdek tool altyapısına sahip olduğunuzda yeni tool eklemek şu pattern’i takip eder:

  1. Tool function implementasyonunu oluşturun
  2. Tool schema’sını tanımlayın
  3. Schema’yı run_conversation içindeki tools listesine ekleyin
  4. run_tool içine tool için bir case ekleyin

Bu modüler yaklaşım, mevcut kodu yeniden yapılandırmadan AI asistanınızın yeteneklerini genişletmeyi kolaylaştırır. Her yeni tool, mevcut conversation flow ve tool-handling logic ile sorunsuzca entegre olur.

Temel çıkarımlar

  • Yeni bir tool eklemek 4 adımdır: function → schema → tools listesi → router elif
  • chat çağrısındaki tools parametresi tüm available schema’ları listeler
  • Claude hangi tool’u ne sırayla çağıracağına kendi karar verir; planlamayı sizin yapmanıza gerek yok
  • “177 days after Jan 1st, 2050” gibi karmaşık istekler iki tool zinciri ile çözülür (date math + reminder)
  • Modüler tasarım sayesinde her yeni tool çekirdek loop’u değiştirmeden eklenir
  • Tek bir assistant message hem açıklama text’i hem birden çok tool_use block’u içerebilir