Tool Use (Araç Kullanımı (LLM))

LLM'in harici araçları (API, veritabanı, kod yürütme ortamı) çağırarak pasif metin üreticisinden aktif ajana dönüşmesini sağlayan mimari ve yetenek kümesi.

Araç kullanımı (tool use ya da function calling), büyük dil modellerinin (LLM) yalnızca metin üretmekle kalmayıp harici araçları — veritabanı, API, kod yürütme ortamı veya arama motoru — çağırabilen aktif ajanlar olarak davranmasını sağlayan bir mimari ve yetenek kümesidir. "Function calling" ve "tool calling" terimleriyle eş anlamlı kullanılmakta; OpenAI, Anthropic ve Google farklı terminoloji benimsemiş olsa da temel mekanizma aynıdır. Teknik açıdan araç kullanımı üç aşamalı bir döngü üzerine kurulur. Birinci aşamada geliştirici, modele JSON şemasıyla araç tanımları iletir: araç adı, açıklaması ve her parametrenin veri tipi. İkinci aşamada model, kullanıcı isteğini analiz ederek hangi aracı hangi parametrelerle çağırması gerektiğine karar verir ve yapılandırılmış bir araç çağrısı bloğu üretir. Üçüncü aşamada uygulama katmanı bu çağrıyı yürütür, sonucu modele döndürür ve model nihai yanıtı oluşturur. Paralel araç çağırma, tek bir yanıt döngüsünde birden fazla araç çağrısını eş zamanlı tetikleme yeteneğidir. "Paris ve Tokyo hava durumunu karşılaştır" isteğinde model iki ayrı hava durumu API çağrısını paralel başlatır; sıralı çağrıya kıyasla gecikmeyi önemli ölçüde kısaltır. MCP (Model Context Protocol), Anthropic'in 2024'te açık kaynak olarak sunduğu standarttır. MCP sunucuları araçları, kaynak şemalarını ve hızlı şablon tanımlarını standart biçimde yayınlar; herhangi bir MCP istemcisi model bağımsız olarak bu araçları kullanabilir. Cursor, Zed ve Claude Desktop giderek genişleyen MCP ekosistemini benimseyen uygulamalara örnek oluşturmaktadır. ReAct (Reasoning + Acting) çerçevesi, araç kullanımını adım adım mantık zincirleriyle birleştirir: model düşünme adımını metin olarak üretir, ardından araç çağrısı yapar, sonucu değerlendirir ve gerekirse tekrar düşünüp yeni araç çağrısı başlatır. Bu döngü karmaşık çok adımlı görevlerde doğruluk ve güvenilirliği artırır; hatalı araç çağrılarını takip adımında düzeltme olanağı tanır. Güvenlik açısından araç kullanımı, prompt injection saldırılarına karşı dikkat gerektirir; kötü niyetli içerik araç parametrelerine sızabilir. Üretim sistemlerinde araçların izin denetimi, sandbox yürütme ortamı ve kullanıcı onay adımlarıyla sarmalanması önerilir. Bilgisayar kontrolü ve dosya sistemi erişimi gibi yüksek riskli araçlarda insan gözetimi (human-in-the-loop) kritik önem taşır.

Araç Kullanımı Nasıl Çalışır?

Araç kullanımı üç aşamalı bir döngü üzerine kurulur. Geliştirici, JSON şemasıyla araç tanımlarını (ad, açıklama, parametre tipleri) modele iletir. Model, kullanıcı isteğini analiz ederek hangi aracı hangi parametrelerle çağıracağına karar verir ve yapılandırılmış bir çağrı bloğu üretir. Uygulama katmanı bu çağrıyı yürütür ve sonucu modele döndürür; model nihai yanıtı oluşturur. Paralel araç çağırma, tek yanıt döngüsünde birden fazla aracı eş zamanlı tetikleyerek gecikmeyi önemli ölçüde azaltır — örneğin iki şehrin hava durumunu aynı anda sorgulamak gibi. Anthropic Claude'da araçlar API düzeyinde JSON olarak tanımlanır; OpenAI'de ise 'function calling' terminolojisi kullanılır ve temel mekanizma benzer biçimde işler.

Araç Döngüsünün Üç Aşaması

📋 Araç Tanımı (JSON Şema)

Geliştirici her aracı ad, açıklama ve parametre şemasıyla tanımlar. Model bu şemayı okuyarak hangi aracın ne yapabileceğini öğrenir. Açıklama kalitesi, modelin doğru araç seçimi yapması için kritiktir. JSON Schema formatı OpenAI, Anthropic ve Google API'lerinde ortaktır.

🧠 Model Kararı

Model, kullanıcı isteğini analiz eder ve hangi aracı hangi parametrelerle çağıracağına karar verir. Tek araç, birden fazla araç (sıralı veya paralel) ya da doğrudan metin yanıtı üretebilir. Yanıtın yapısı, uygulama katmanı tarafından ayrıştırılıp yürütülür.

⚙️ Yürütme ve Geri Besleme

Uygulama, araç çağrısını yürütür (API isteği, DB sorgusu, kod çalıştırma) ve sonucu modele döndürür. Model bu sonucu işleyerek nihai yanıtı oluşturur ya da yeni araç çağrısı başlatır. Çok adımlı görevlerde bu döngü birden fazla kez tekrar edebilir.

MCP: Model Context Protocol

MCP (Model Context Protocol), Anthropic'in 2024'te açık kaynak olarak sunduğu standart protokoldür. MCP sunucuları araçları, kaynak şemalarını ve hızlı şablon tanımlarını standart biçimde yayınlar; herhangi bir MCP istemcisi model bağımsız olarak bu araçları kullanabilir. Cursor, Zed ve Claude Desktop giderek genişleyen MCP ekosistemini benimseyen başlıca uygulamalardır. MCP sayesinde bir araç kütüphanesi tek bir protokol üzerinden farklı modeller ve uygulamalar tarafından paylaşılabilir; bu yaklaşım araç geliştirme maliyetini azaltır ve ekosistemi hızla büyütür. Veritabanı bağlayıcıları, IDE entegrasyonları, bulut hizmetleri ve otomasyon araçları MCP arayüzü üzerinden kolayca LLM'lere sunulabilmektedir.

ReAct Çerçevesi ve Paralel Çağrı

ReAct (Reasoning + Acting), araç kullanımını adım adım mantık zincirleriyle birleştiren bir ajan çerçevesidir. Model düşünme adımını açık metin olarak üretir ('Önce hava durumunu kontrol etmeliyim'), ardından araç çağrısı yapar, gelen sonucu değerlendirir ve gerekirse yeni bir düşünme-eylem döngüsü başlatır. Bu yapı karmaşık çok adımlı görevlerde doğruluğu artırır ve yanlış araç çağrılarını takip adımında düzeltme olanağı tanır. Paralel araç çağırma ise aynı döngüde birden fazla bağımsız aracı eş zamanlı tetikler. Paralel ve sıralı çağrı stratejileri görev bağımlılık yapısına göre seçilir: bağımsız veri kaynakları paralel, birbirini besleyen adımlar sıralı çalıştırılmalıdır.

Güvenlik ve Üretim Pratikleri

Araç kullanımı, prompt injection saldırılarına karşı dikkatli tasarım gerektirir. Kullanıcı girdisi veya harici içerik araç parametrelerine sızarak beklenmedik işlemler tetikleyebilir. Üretim sistemlerinde araçlar izin denetimi, sandbox yürütme ortamı ve girdi doğrulama katmanlarıyla sarmalanmalıdır. Bilgisayar kontrolü, dosya sistemi yazma erişimi ve kritik API çağrıları gibi yüksek riskli araçlarda insan gözetimi (human-in-the-loop) mimarisi önerilir. İzin hiyerarşisi net biçimde tanımlanmalı; araçların kapsamı minimal yetki ilkesiyle (least privilege) kısıtlanmalıdır. Araç çağrı logları hem hata ayıklama hem de güvenlik denetimi için saklanmalıdır.

Sık Sorulan Sorular

  • check_circle Tool use ile RAG arasındaki fark nedir?: RAG (Retrieval-Augmented Generation), modelin dış bilgi tabanından pasif olarak bilgi almasını sağlar; bu bir tür 'okuma' aracıdır. Tool use ise modelin akışı yönetip birden fazla farklı araç çağırabildiği genel çerçevedir — web arama, kod yürütme, veritabanı yazma gibi çok çeşitli eylemler dahil edilebilir. RAG, tool use'un özel bir alt kümesi olarak modellenebilir.
  • check_circle MCP zorunlu mu? Araçları doğrudan API ile de tanımlayabilir miyim?: MCP zorunlu değil. Anthropic, OpenAI ve Google API'leri araç tanımlarını doğrudan JSON şemasıyla kabul eder. MCP, birden fazla model veya uygulamanın aynı araç kütüphanesini kullanması gereken durumlarda operasyonel kolaylık sunar. Tek model + tek uygulama senaryolarında doğrudan API tanımı yeterlidir.
  • check_circle Paralel araç çağırma desteklenmiyor mu?: Paralel araç çağırma Claude, GPT-4o ve Gemini tarafından desteklenir, ancak model parametrelerine ve API sürümüne göre davranış farklılık gösterebilir. Uygulamanın çağrıları gerçekten paralel yürütmesi için araç sonuçlarını eş zamanlı toplayıp toplu geri göndermesi gerekir; aksi hâlde çağrılar fiilen sıralı çalışır.
  • check_circle Araç açıklaması (description) neden bu kadar önemli?: Model, hangi aracı ne zaman kullanacağına yalnızca araç açıklamasına bakarak karar verir — kod çalıştırmaz, sezgisel tarama yapmaz. Açıklama belirsizse model yanlış araç seçer ya da aracı hiç kullanmaz. İyi bir araç açıklaması: ne yaptığını, ne zaman kullanılması gerektiğini ve hangi parametrelerin gerekli olduğunu net biçimde belirtmelidir.
  • check_circle Prompt injection araç kullanımında neden tehlikeli?: Kötü niyetli bir kullanıcı, modele gönderilen belge veya web sayfasına gizli talimatlar yerleştirebilir. Model bu talimatları araç parametreleri olarak yorumlayabilir; örneğin veri silme veya yetkisiz API çağrısı tetiklenebilir. Önlem: araç girdi doğrulaması, izin listesi, sandbox yürütme ve yüksek riskli işlemlerde kullanıcı onayı adımı eklenmelidir.