# Araçlar, ajanın neler yapabileceğini belirler

Ajan dünyaya yalnızca araçlarıyla dokunabilir ve araçları yalnızca açıklamalarından anlar. İyi araç azdır, adı nettir, kısa döner ve hatayı dürüstçe söyler.

## Ajanın sınırı, araçlarının sınırıdır

Model yalnızca metin üretir. Dünyada yaptığı her şey, yani dosya okumak, test çalıştırmak, takvime etkinlik eklemek, harness ona bir araç sunduğu ve model o aracı çağırmayı seçtiği için olur. Aracı yoksa o işi yapamaz, model ne kadar yetenekli olursa olsun.

Bu yüzden araç listesi, en az prompt kadar ağırlığı olan bir tasarım kararı. Anthropic "Building effective agents" yazısında bunu açıkça söylüyor: araçlar, talimatlar kadar prompt emeğini hak ediyor.

Model kodunuzu da görmez. Önüne bir ad, bir açıklama ve bir parametre listesi gelir, gerisini bunlardan tahmin eder. Bir araç, onu anlatan kelimeler kadar iyidir.

## İyi bir araç neye benzer

Anthropic'in araç yazma rehberi, işe yarayan alışkanlıkları topluyor. Hepsi küçük ve sıkıcı kararlar, ama her biri ajanın yanlış yapabileceği bir yolu kapatıyor.

- **Daha az ve daha geniş araç.** Kişileri listeleyen, uygunluğa bakan ve etkinliği oluşturan üç ayrı araç yerine tek bir `schedule_event` daha iyi. Her fazladan araç, arasından seçilecek bir şey daha demek.
- **Gruplayan adlar.** `asana_search` gibi bir önek, aracın hangi servise ait olduğunu modele söyler.
- **Bir insanın okuyabileceği cevaplar.** UUID değil, isim döndürün. Anlamsız bir kimlik, modelin üzerinde düşünebileceği hiçbir şey vermez.
- **Hataya kapalı argümanlar.** Anthropic'in SWE-bench çalışmasında mutlak dosya yolu zorunlu tutuldu, böylece ajan göreli yolu yanlış veremiyordu.
- **Nasıl düzeltileceğini söyleyen hatalar.** "Geçersiz girdi" ajanı tahmine iter. Eksik alanı adıyla söyleyen bir mesaj, sonraki adımı doğru yaptırır.

```flow
Aracın prototipini yap
Birkaç çağrı gerektiren gerçekçi görevler çalıştır
Kayıtlarda kafa karışıklığını ara
Adı, açıklamayı ya da çıktıyı yeniden yaz
Aynı görevleri tekrar çalıştır
```

Kopyalamaya değer olan, bu son döngü. Bir aracı, gerçek işte kullanan bir ajanı izleyerek değerlendirin; süreyi, çağrı sayısını, token'ı ve hataları takip edin. SWE-bench Verified'da en iyi sonuca ulaşmak için yalnızca açıklama değişiklikleri yetti.

**Question:** Ajanınız bir araca sürekli bozuk biçimli dosya yolu veriyor. Daha iyi çözüm hangisi?

- Sistem prompt'una dikkatli olmasını söyleyen bir paragraf eklemek
- Aracı yalnızca mutlak yol kabul edecek şekilde değiştirmek
- Daha büyük bir modele geçmek
- Aracı kaldırmak

**Answer:** Aracı yalnızca mutlak yol kabul edecek şekilde değiştirmek. Hatayı imkânsız kılmak, modelden yapmamasını istemekten iyidir. Anthropic'in SWE-bench çalışması mutlak yol zorunluluğuyla bunu yaptı.


## Çıktının bedeli bağlamdan ödenir

Bir aracın döndürdüğü her şey bağlam penceresine girer ve model sonraki her adımda hepsini yeniden okur. Koca bir tabloyu dökmek, ardından gelen her turda size pahalıya patlar.

Rehberin cevapları pratik. Kısa ve ayrıntılı iki mod sunun: kısa olan token'ın yaklaşık üçte birini kullandı. Sayfalayın ve kesin: Claude Code tek bir araç çıktısını 25.000 token ile sınırlıyor. Derleyici projesinde test çıktısı birkaç satırda tutuldu, ayrıntı ajanın gerekirse açabileceği dosyalara yazıldı.

Aynı mantık kodla daha da ileri gidiyor. Anthropic'in kod çalıştırma yazısına göre, tüm araç tanımlarını yüklemek ve her ara sonucu modelden geçirmek bağlamı boşa harcıyor. MCP sunucularını, ajanın ihtiyaç duydukça yüklediği kod olarak sunmak bir örnekte yaklaşık 150.000 token'ı 2.000'e indirdi; yüzde 98,7 daha az. 10.000 satırlık bir tablo kodda süzülüp modele yalnızca beş satır gösterilebiliyor.

> **Bedava değil**
Bu yaklaşım bir sandbox, kaynak sınırları ve izleme gerektiriyor. Daha az token, çalıştırılacak daha fazla altyapı demek.


## Araç vermemek de bir tasarım

Esirgediğiniz araç bir garantidir. Claude Code'da bir inceleme alt ajanına yalnızca `Read`, `Grep` ve `Glob` verebilirsiniz. Bu sınırı harness uyguluyor; alt ajan istese de dosya düzenleyemez. Prompt'a "dikkatli ol" yazmak bir ricadır. Eksik araç ise bir gerçektir.

> **Ajanlar kendi araçlarını düzeltebiliyor**
Anthropic'in çok ajanlı araştırma sisteminde araç test eden bir ajan araç açıklamalarını yeniden yazdı ve görev süresi yüzde 40 düştü.


> **Kendi araç listenizi okuyun**
Bir oturum açıp Claude Code'un hangi araçlara sahip olduğuna bakın. Birini seçin ve elinizde yalnızca adı ile açıklaması olduğunu düşünün. Ne zaman kullanacağınızı ve ne döneceğini anlar mıydınız?


**Question:** Çok büyük sonuç döndüren bir araç, o tek çağrının ötesinde ajanı neden zorlar?

- Harness sonraki çağrıları reddeder
- Sonuç bağlamda kalır ve sonraki her adımda yeniden okunur
- Model aracın var olduğunu unutur
- Araç açıklaması geçersiz olur

**Answer:** Sonuç bağlamda kalır ve sonraki her adımda yeniden okunur. Araç çıktısı bağlam penceresine girer. Uzun çıktı dikkat bütçesini tüketir ve sonraki her turda token maliyeti yaratır.
