Skip to content

Tool Use: Granting Claude Real Capabilities

How to teach Claude to use a calculator, database, email, Slack, code sandbox? Anatomy of tool use and production patterns.

Şükrü Yusuf KAYA
13 min read
Intermediate
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.

Frequently Asked Questions

RAG is an architecture pattern often implemented with a single tool ('search_knowledge_base'). Tool use is the underlying capability.

Yorumlar & Soru-Cevap

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

Related Content

Connected pillar topics

Pillar topics this article maps to