İçeriğe geç

Tool Use: Claude'a Yetenek Eklemek

Claude'a hesap makinesi, veritabanı, e-posta, Slack, kod sandbox gibi araçları nasıl tanıttırırsın? Tool use'un anatomisi ve üretim kalıbı.

Şükrü Yusuf KAYA
13 dakikalık okuma
Orta
Tool use diyagramı: prompt → tool call → result → final answer
Bu derste
Tool Use'un üç adımı: (1) tool tanımla, (2) Claude tool çağırsın, (3) sonucu döndür ve final cevap üret.

Tool Use Nedir?

Bir LLM'in metni çok iyi yazması, dünyada eylem yapabildiği anlamına gelmez. Tool Use Claude'a önceden tanımladığın fonksiyonları doğru zamanda çağırma yeteneği verir.
Tipik örnekler:
  • Hesap makinesi
  • Hava durumu API'si
  • Veritabanı sorgusu
  • E-posta gönderimi
  • İç bilgi tabanı arama (RAG)
  • Kod sandbox'ı
Tool use akışı: kullanıcı → Claude → tool call → executor → tool result → Claude → kullanıcı
Tool use sıralı akış.

API Anatomisi#

python
import anthropic
client = anthropic.Anthropic()
 
tools = [{
"name": "get_weather",
"description": "Bir şehrin anlık hava durumunu getirir.",
"input_schema": {
"type": "object",
"properties": {
"city": {"type":"string", "description":"Şehir adı"}
},
"required": ["city"]
}
}]
 
resp = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
tools=tools,
messages=[{"role":"user","content":"İstanbul'da bugün hava nasıl?"}],
)
 
# resp.stop_reason == "tool_use"
# resp.content[0].type == "tool_use" → isim ve input içerir
# Sen tool'u kendi kodunla çalıştır, sonucu role:"user", type:"tool_result" mesajıyla geri yolla
 
Tool use temel çağrısı — Claude tool çağrısı yapar, sen koşturursun.
python
# Tool Use loop pseudo-code (yerel test)
def get_weather(city: str):
fake = {"İstanbul": {"temp_c": 18, "cond": "yağmurlu"}}
return fake.get(city, {"temp_c": None, "cond": "bilinmiyor"})
 
# Claude bu adımı simüle ediyor diyelim:
tool_call = {"name": "get_weather", "input": {"city": "İstanbul"}}
 
# 1) tool çalıştır
result = get_weather(**tool_call["input"])
# 2) sonucu Claude'a geri yolla (psödo)
print("Tool sonucu:", result)
print("Claude'un üreteceği final cevap:")
print("- İstanbul'da bugün 18°C ve yağmurlu görünüyor; şemsiyeni unutma.")
Tool use loop'unu sahte fonksiyonla simüle et.
json
{
"name": "search_orders",
"description": "Sipariş veritabanında arama yapar. Sadece müşteri kendi sipariş kimliğini sorduğunda kullan.",
"input_schema": {
"type": "object",
"properties": {
"order_id": {"type":"string", "pattern":"^ORD-[0-9]{6}$"},
"include_items": {"type":"boolean", "default": true}
},
"required": ["order_id"],
"additionalProperties": false
}
}
Üretim seviyesi tool tanımı — pattern + default + required.
Boşluk doldur · text
Tool use'da Claude tool _____ üretir, sen _____ , sonra sonucu role 'user' içinde tool_result olarak geri yollarsın. Tool tasarımının ilk kuralı _____ olmasıdır.

Sık Sorulan Sorular

RAG genelde tek tool ('search_knowledge_base') ile yapılan ama daha geniş bir mimari. Tool use bir API yeteneği, RAG bir tasarım kalıbı.

Yorumlar & Soru-Cevap

(0)
Yorum yazmak için giriş yap.
Yorumlar yükleniyor...

İlgili İçerikler

Bağlantılı Pillar Konular

Bu yazının bağlandığı pillar konular