---
title: "Claude Code Özyinelemeli Bir Ajan Değil: Kaynak Kodu Okudum ve Kontrol Ettim"
url: https://blog.edumints.com/claude-code-ozyinelemeli-bir-ajan-degil-kaynak-kodu-okudum-v-wahspmj0
category: "Yapay Zeka"
date: 2026-06-08T09:06:38.241Z
publisher: Edumints Blog
lang: tr-TR
source_name: "dev.to"
source_url: https://dev.to/sfrangulov/claude-code-is-not-a-recursive-agent-i-read-the-source-and-checked-kll
---

# Claude Code Özyinelemeli Bir Ajan Değil: Kaynak Kodu Okudum ve Kontrol Ettim

Claude Code'un v2.1.88 sürümüyle gelen kaynak kod haritası (source map), aracın arkasındaki gerçek mimariyi gün yüzüne çıkardı. Kodları incelediğimizde, yapay zeka ajanları hakkında doğru bilinen pek çok yanlış olduğunu görüyoruz. İşte Edumints olarak yazılım geliştirme ve AI ajanları perspektifinden çıkardığımız dersler:

## Efsane 1: "Ajan her araç sonucunda kendini özyinelemeli (recursive) çağırır"
Kodda özyineleme yoktur; `queryLoop` fonksiyonu içinde tek bir `while (true)` asenkron döngüsü çalışır. Durum nesnesi (state) her adımda yerinde güncellenir.
- **Pratik Çıkarım**: Ajan mimarisi tasarlarken yığın (stack) taşması riskini önlemek için döngüsel yapılar kurmak daha kararlı ve güvenlidir.

## Efsane 2: "Bağlam (context) dolduğunda sadece kırpılır"
Bağlam yönetimi için ucuzdan pahalıya giden 5 aşamalı katmanlı bir yapı vardır. En pahalı aşama olan `autocompact` ardışık 3 kez başarısız olursa oturum boyunca sessizce devre dışı kalır.
- **Pratik Çıkarım**: AI uygulamalarında bağlam sınırlarını yönetirken maliyet ve performans dengesini korumak için kademeli temizlik mekanizmaları kurmalıyız.

## Efsane 3: "Tam sıkıştırma (compaction) son mesajları her zaman harfi harfine korur"
Tam sıkıştırmada mesaj dizisi sıfırdan oluşturulur ve model kendi yazdığı bir özet (retelling) üzerinden devam eder; mesajlar kelimesi kelimesine korunmaz.
- **Pratik Çıkarım**: Kritik verilerin kaybolmaması için modelin özetleme kalitesine güvenmek yerine önemli bilgileri sistem istemlerinde (system prompt) sabit tutmalıyız.

## Efsane 4: "Araçlar model konuşmayı bitirdikten sonra çalışır"
Model çıktısı akarken (streaming) `tool_use` bloku gelir gelmez araç arka planda eş zamanlı çalışmaya başlar.
- **Pratik Çıkarım**: Eş zamanlı araç çalıştırma hız kazandırır ancak yan yana çalışan araçların yarış durumlarını (race conditions) iyi yönetmek gerekir.

## Efsane 5: "Tek model mesajı tek yanıttır ve stop_reason güvenilirdir"
Metin, düşünme ve araç çağrıları ayrı mesajlar olarak iletilir. `stop_reason` güvenilmez olduğu için döngü araç çağrısını doğrudan kontrol eder.
- **Pratik Çıkarım**: Akış tabanlı entegrasyonlarda durum kontrollerini meta verilere değil, ham veri bloklarının içeriğine dayandırmak kararlılığı artırır.

## Efsane 6: "İzinler hiyerarşiktir"
İzinler kaynağa değil katılık seviyesine göredir. `deny` her zaman üstündür. Bypass edilse bile hassas klasörler (.git, .claude) için ek onay istenir.
- **Pratik Çıkarım**: Güvenlik sistemlerinde "tam yetki" verilse bile kritik dizinler için ek savunma hatları tasarlanmalıdır.

## Efsane 7: "Alt ajan (subagent) yanınızda çalışan başka bir Claude'dur"
Alt ajanlar ana durum bilgisini değiştiremez ve onay kutusu gösteremezler. Çıkan onaylar otomatik reddedilir.
- **Pratik Çıkarım**: Alt ajanlara otonom görevler verirken onay gerektirmeyen, sınırlı ve net tanımlı işler atamalıyız.

## Efsane 8: "Claude Code'un uzantıları yalnızca birkaç standart kancadan (hook) ibarettir"
5 temel eklenti mekanizması ve 28 farklı olay tetikleyicisi vardır. Yeteneklerin (skills) sadece başlıkları bağlama yüklenir, gövdeler çağrıldığında okunur.
- **Pratik Çıkarım**: Eklenti sistemlerinde kaynak tasarrufu sağlamak için "lazy loading" (tembel yükleme) prensibi uygulanmalıdır.

## Son Bir Şey: Güvenlik Riski
Klasör güvenliği sorusu sorulmadan önce `settings.json` dosyası okunuyor. Bu durum, güvenilmeyen dizinlerdeki ayarların çalıştırılması riskini doğurur.

## Aslında Neler Değişti?
Bu mimariyi anladıktan sonra uygulayabileceğimiz pratik çıkarımlar:
- Bütçe hesaplarını soyut ajan çağrıları yerine döngü adımı bazında yapın.
- Alt ajanlara kullanıcı onayı gerektiren işler vermeyin.
- Bağlam dolmasını önlemek için ara ara bağlamı manuel temizlemek otomatik sıkıştırmadan daha ucuzdur.

Orijinal makaleye [buradan](https://dev.to/sfrangulov/claude-code-is-not-a-recursive-agent-i-read-the-source-and-checked-kll) ulaşabilirsiniz.

---

**Kaynak:** [dev.to](https://dev.to/sfrangulov/claude-code-is-not-a-recursive-agent-i-read-the-source-and-checked-kll)
**Yayıncı:** [Edumints Blog](https://blog.edumints.com) · Alıntılarken bu URL'ye bağlantı verin: https://blog.edumints.com/claude-code-ozyinelemeli-bir-ajan-degil-kaynak-kodu-okudum-v-wahspmj0
