# Durma koşulları ve bütçe

Bir loop'un üç çıkışı olmalı: kanıt olarak yazılmış bir durma koşulu, kanıt hiç gelmezse sert bir sınır ve tekrarlayan başarısızlık için bir kural. Gerçek koşuların maliyet rakamları sınırların neden şart olduğunu gösteriyor.

## Üç çıkış

Tek çıkışı olan loop, er ya da geç sonsuza kadar çalışacak loop'tur. Loop tasarımı üzerine araştırmalar üç çıkışta birleşiyor.

1. **Kanıtla dur.** Koşul gözlemlenebilir bir şeyi adlandırır: testler geçti, skor en az 90, doğrulayıcı onayladı.
2. **Sert bir sınır.** Tur, süre, token ya da maliyet üzerinde bir üst sınır; kanıtın hiç gelmediği gün için.
3. **Tekrarlanan başarısızlıkta dur.** Aynı kontrol aynı sebeple iki kez başarısız olursa loop üçüncü kez denemez, durur ve açıklar.

Marek Kaput başıboş loop'lar için dördüncüsünü ekliyor: sürprizler bir insana yükseltilir. Alakasız bir dosyanın değişmesi ya da çalışmayan bir doğrulayıcı, loop'un tek başına karar vereceği şeyler değil.

## Koşulu kanıt olarak yazmak

İki durma koşulunu karşılaştırın.

- "İyi göründüğünde dur."
- "`npm test` 0 koduyla bittiğinde ve Lighthouse skoru en az 90 olduğunda dur."

Birincisi ajanın kendi işi hakkındaki görüşü ve modeller bu konuda cömert. İkincisini bir program kontrol edebilir. Kaput'un kuralı keskin: belirli kanıtla dur, asla "iyi görünene kadar" değil.

Claude Code ekibinin örneği iki yarıyı tek satırda gösteriyor: en az 90 Lighthouse skoru, en fazla 5 deneme. Kanıt mutlu yolu bitiriyor. Sınır diğerlerini.

```terminal
$ claude
> Make the dashboard pass the audit. Stop when the score is 90 or more, or after 5 tries, or if the same failure repeats twice.
* Deneme 1: skor 71, görsel boyutlarını değiştirir
* Deneme 2: skor 84, bir script'i erteler
* Deneme 3: skor 84, aynı başarısız denetim maddesi
* Deneme 4: aynı madde, aynı sebep, yine başarısız
# Beşinci kez denemek yerine durur ve açıklar.
```

**Question:** Hangi durma koşulu kanıt olarak yazılmış?

- Sayfa hızlı göründüğünde dur
- İş tamam gibi göründüğünde dur
- Lighthouse skoru en az 90 olduğunda dur
- Ajan bitti dediğinde dur

**Answer:** Lighthouse skoru en az 90 olduğunda dur. Skoru bir program kontrol edebilir. Diğer üçü ajanın kendi işi hakkındaki görüşü.


## Sınır neden şart

Sınır, kazanılamayacak bir görevde mükemmel çalışan bir loop'tan sizi korur. Aşağıda araştırmadaki maliyet rakamları ve her birinin neyi ölçtüğü var.

- **C derleyicisi koşusu.** Yaklaşık 2.000 oturum, yaklaşık 2 milyar girdi ve 140 milyon çıktı token'ı, 20.000 doların biraz altı. Sonuç, Linux 6.9'u x86, ARM ve RISC-V üzerinde derleyen yaklaşık 100.000 satır Rust. Para iyi harcandı, ama yalnızca planlı olduğu için.
- **Retro oyun yapıcı.** Ajan tek başına 20 dakika ve 9 dolar harcadı, ortaya bozuk bir şey çıktı. Tam harness 6 saat ve 200 dolar harcadı, ortaya oynanabilir bir şey çıktı. Bu yirmi kattan fazla maliyet.
- **Müzik iş istasyonu koşusu**, daha yeni bir model ve daha yalın bir harness ile: yaklaşık 3 saat 50 dakika ve 124,70 dolar.
- **Çok ajanlı araştırma.** Bir ajan için sohbetin yaklaşık 4 katı, çok ajanlı sistem için yaklaşık 15 katı token.

Bunların hiçbiri loop'lara karşı bir uyarı değil. Bunlar ölçek referansı, sınırınız sürpriz değil, sizin seçtiğiniz bir sayı olsun diye.

## Faturayı dürüst tutmak

Claude Code ekibinin maliyet tavsiyesi kısa bir listeye sığıyor.

- Mümkünse en basit aracı ve daha ucuz bir modeli kullanın. Model ve effort en büyük kaldıraçlar.
- Büyük koşuları önce küçük pilotlayın, çünkü dinamik iş akışları yüzlerce ajan başlatabilir.
- Deterministik adımları bir modele ödeme yapmak yerine script'lere koyun.
- Bir routine'in aralığını, izlediği şeyin değişme hızına uydurun. Günde bir değişen şeye dakikada bir bakmak israf.
- `/usage`, `/goal` ve `/workflows` çıktılarını izleyin.

Alt ajanlar token'ı çoğalttığı için Addy Osmani onları yalnızca ikinci bir görüşün karşılığını verdiği yerde öneriyor.

> **Loop kendi frenini söküp atabilir**
Derleyici koşusunda bir ajan kendi döngüsünü `pkill` ile öldürdü. Bir başka sorun zaman körlüğüydü: Claude geçen süreyi yargılayamıyor, bu yüzden yazar hızlı bir örnekleme modu ekledi ve ilerleme çıktısını seyrek tuttu. Dakikayla ölçülen bir sınır, onu uygulayan harness kadar iyidir. Sınırı ajanın dışına koyun.


> **Zamanlanmış loop'u isteyerek iptal edin**
Sabit aralıklı bir `/loop`'u durdurmak için Claude'dan iptal etmesini isteyin. Esc ve Ctrl+C yapmıyor.


**Question:** Aynı kontrol aynı sebeple iki kez başarısız oluyor. Loop ne yapmalı?

- Sınıra gelene kadar yeniden denemeli
- Durup açıklamalı, yeniden denememeli
- Kontrolün çıtasını düşürmeli
- Sessizce daha büyük bir modele geçmeli

**Answer:** Durup açıklamalı, yeniden denememeli. Aynı hatanın tekrarı, bir deneme daha yapmanın işe yaramayacağını gösterir. Durup raporlamak daha ucuz ve sorunu bir insana devreder.
