8 puan yazan GN⁺ 2025-08-24 | 2 yorum | WhatsApp'ta paylaş
  • Claude Code, kullanılabilirlik açısından son derece başarılı bir AI ajanı/iş akışı
  • Mimari sadelik ve net bir kontrol döngüsü sayesinde hata ayıklama ve bakımda rahat bir deneyim sunuyor
  • RAG kullanımını minimumda tutup gelişmiş istemler ve bağlam dosyalarını aktif biçimde kullanarak LLM’in güçlü yanlarını en üst düzeye çıkarıyor
  • Çeşitli araçlar (tool'lar) ve açık yönergeler ile işin netliğini ve tutarlılığını koruyor
  • Karmaşıklık yerine anlaşılması kolay yapı ve istem tasarımı sayesinde, kendi LLM ajanınızı da benzer şekilde kurabilme avantajı sağlıyor

Genel bakış

  • Claude Code (bundan sonra CC), şu anda kullanılabilen AI ajanı/kodlama iş akışları arasında en tatmin edici deneyimlerden birini sunuyor
  • CC’nin güçlü yanı, hedefe uygun kod düzenleme, gereksiz dikkat dağıtıcıları azaltma ve kullanıcının kontrolünü koruyarak akıcı bir UX sağlaması
  • Claude 4 modeli ve kendine özgü Interleaved Thinking yaklaşımı burada kilit rol oynasa da, Cursor veya Github Copilot gibi aynı modele dayanan diğer araçlara kıyasla daha az sürtünme yaratıyor
  • Bu yazı, CC’nin uygulama mantığını parçalara ayırarak inceliyor ve benzer bir deneyim sunacak kendi LLM ajanınızı geliştirmek için pratik bir rehber sunuyor

Claude Code’un temel erdemi: sadelik

  • En büyük ders şu: "Basit tutun (Keep Things Simple, Dummy)"
  • LLM ajanlarında karmaşık yapılar (çoklu ajanlar, karmaşık RAG, doğrulama sistemleri vb.) devreye girdikçe hata ayıklama ve iyileştirme aşırı zorlaşıyor
  • CC, tek bir ana döngü, sade bir araç seti ve tek bakışta anlaşılabilen bir yapı benimsiyor; tüm temel mantığı tek bir dosyada toplayarak gereksiz boilerplate’i ve karmaşıklığı dışarıda bırakıyor

Sadelik neden önemli

  • Çoklu ajan yapısı yerine işlerin çoğunu tek bir ana iş parçacığında yürütüyor
    • Geçmiş özetleme, UX için mesaj birleştirme gibi işler yardımcı biçimde uygulanıyor
    • Daha karmaşık bir iş gerektiğinde kendisini kopyalayarak bir alt ajana dallanıyor (özyinelemeli dallanma yok, yalnızca tek seviyeye izin veriliyor)
  • Yapılacaklar listesi (todo list) aktif olarak kullanılıyor
    • Karmaşık problemler alt ajanlarda bölünüp çözülebiliyor, ardından sonuçlar ana mesaj geçmişine birleştiriliyor
    • Aşırı soyut çok katmanlı yapılar (çoklu ajanlar, grafik gezinme) ise sistemin kararlılığına ve ölçeklenebilirliğine zarar verebiliyor

Hafif modellerin aktif kullanımı

  • claude-3-5-haiku gibi hafif LLM modelleri isteklerin büyük bölümünde kullanılıyor
    • Büyük dosyaları okuma, web sayfası ayrıştırma, git geçmişi özetleme gibi pek çok iş verimli biçimde gerçekleştiriliyor
    • Hafif model kullanımıyla maliyetler %70–80’e kadar düşebiliyor
  • Tüm önemli işlev çağrılarında optimize edilmiş model kombinasyonları kullanılması öneriliyor

İncelikli istem tasarımı

  • CC’nin sistem istemi oldukça büyük bir hacme (yaklaşık 2800 token) ve çeşitli bölümlere sahip (ton & stil, iş yönetimi, araç kullanım politikası, OS/dizin bilgileri vb.)
    • claude.md gibi bağlam dosyalarının tamamı her zaman dahil edilerek bağlam zenginliği en üst düzeye çıkarılıyor
    • Sistem istemi; politika kuralları, örnekler, dikkat noktaları ve araçların ne zaman kullanılacağı gibi konularda çok ayrıntılı yönlendirme içeriyor

XML ve Markdown’ı birlikte kullanma

  • İstem içinde XML etiketleri ve Markdown yapısı birlikte kullanılıyor
    • <system-reminder>, <good-example>, <bad-example> gibi etiketlerle ayrıntılı ve koşullu bilgi aktarımı yapılabiliyor
    • Markdown başlıklarıyla bölümler net biçimde ayrılıyor

Bağlam dosyalarının önemi

  • claude.md dosyasının olup olmaması, CC performansında dramatik bir fark yaratıyor
    • Kod tabanından çıkarımı zor olan ek kuralları (klasör/kütüphane hariç tutma, tercih edilen politikalar vb.) iletmek için kritik önemde
    • MinusX de ekip/kullanıcı tercihlerini sistematik hale getirmek için minusx.md kullanıyor

RAG’ı azaltma, LLM aramasını kullanma

  • CC, RAG (Retrieval Augmented Generation) yerine gerçek bir geliştirici gibi ripgrep, jq, find komutlarıyla doğrudan kod aramaya dayalı bir yapıyı tercih ediyor
    • Bu yaklaşım, karmaşık RAG kurulumlarının getirdiği gizli hata olasılıklarına (ör. benzerlik fonksiyonu, yeniden sıralayıcı, chunking) karşı bir alternatif sunuyor
    • LLM’in gerçek kod bağlamını doğrudan keşfedip anlamasına olanak vererek hareketli parça sayısını azaltıyor; ayrıca RL eğitiminde verimlilik avantajı da sağlayabiliyor

Araç (tool) tasarımı ve katmanlı yapı

  • CC, düşük seviye (Bash, Read, Write), orta seviye (Edit, Grep, Glob), yüksek seviye (Task, WebFetch vb.) araçların tümünü destekliyor
    • Kullanım sıklığı ve doğruluk gibi etkenler gözetilerek gerekli araçlar ayrı ayrı tanımlanıyor
    • Araçların açıklaması, örnekleri ve ne zaman kullanılacağı sistem isteminde açıkça belirtiliyor
  • Karmaşık işler Task veya diğer yüksek seviye araçlarla tutarlı biçimde yönetiliyor

Açık Todo yönetimiyle bağlam kaybını önleme

  • Uzun süre çalışan LLM ajanlarının tipik problemi olan bağlam kaybı ve yönünü yitirme sorununu çözmek için CC, doğrudan tutulan bir Todo listesi ile durum yönetimi yapıyor
    • Çoklu ajan sistemi yerine model, Todo’ları kendisi güncelleyerek hem yön duygusunu hem de esnekliği koruyor

Ajanın tonu, stili ve yakınlık düzeyini kontrol etme

  • Ton, stil ve proaktiflik gibi unsurlar ayrı bölümlerde yönetiliyor
    • Gereksiz açıklamalardan kaçınma, emojilere yalnızca açıkça istendiğinde izin verme gibi kararlarla tutarlı bir kullanıcı deneyimi tasarlanıyor
  • "Çok önemli (IMPORTANT)", "Asla (NEVER)", "Her zaman (ALWAYS)" gibi güçlü vurgularla dikkat noktaları aktarılıyor

Karar algoritması ve akış tasarımı

  • LLM’in izlemesi gereken temel algoritmalar açık biçimde tarif ediliyor ve örneklendiriliyor
    • Sadece Do/Don't listeleri vermek yerine akış şemaları ve adım adım kontrol listeleri, algoritmik kararlılığı korumada daha etkili oluyor
    • Farklı yönergeler ve örnekler arasında çakışma olasılığı dikkate alınarak rol sınırları ve politikalar yapısal biçimde tanımlanıyor

Tasarım desenleri ve uygulamaya dönük pratik ipuçları

  • Güçlü görüşler ve yapı, kendi ajanınızı tasarlarken doğrudan kıyas ölçütü olarak alınabilecek nitelikte
    • Kafa karıştıran framework’leri aşırı kullanmak yerine, basit ve etkili bir yapı tasarlamak önemli
  • MinusX de bu ilkelerin çoğunu fiilen uyguluyor ve zamanla kapsamı genişletmeyi planlıyor

Sonuç

  • Claude Code’dan çıkan en büyük ders: “Sadelik en büyük güçtür”
  • Yapısal açıklık, anlamlı istem tasarımı ve hafif araç kombinasyonları, güçlü LLM ajanlarını mümkün kılıyor
  • Kendi LLM ajanınızı geliştirirken, CC’nin tasarım felsefesi ve rehberini yakından incelemek büyük değer taşıyor

2 yorum

 
kaydash 2025-08-25

Çok iyi, çok mutluyum, harika, çok tatlı, devam edeceğim

 
GN⁺ 2025-08-24
Hacker News görüşleri
  • KISS benzeri sadeliğin her zaman kazandığına inandığını ve bu yazının bunu iyi toparladığı için faydalı olduğunu söyleyen bir yorum

  • Claude Code'un açık kaynak olmaması üzücü, ancak iç işleyişini daha iyi anlamayı sağlayan araçlar olduğuna dair bir paylaşım; gerçekten nasıl çalıştığıyla ilgileniyorsanız Claude Trace öneriliyor
    https://github.com/badlogic/lemmy/tree/main/apps/claude-trace
    Bu araç, oturumda kullanılan tüm araçları ve prompt'ları gösteren bir JSON dosyası ile kolay okunur biçimde formatlanmış bir HTML dosyası üretiyor

  • Çoklu ajan sistemlerinin öne çıktığı bu dönemde, LLM merkezli bir organizasyonun nasıl yaklaştığını görmenin faydalı olduğunu söyleyen bir görüş; kendisinin de günlük hayatta farklı tasarım bakış açılarını denediğini ve bu yüzden yakınlık hissettiğini belirtiyor
    Temel içgörüler olarak şunlar sıralanıyor:
    (1) Prompt'un uzun olması sorun değil ve aracın amacı ya da nasıl yardımcı olduğu gibi temel açıklamaları mutlaka içermeli
    (2) Araç çağrıları çok temel bir parça; bağlamı daha fazla yansıtmalı (ne zaman kullanılacağı, ne zaman kullanılmayacağı gibi)
    (3) Sistemin durumunu mesajlar olarak yönetmek makul; dataframe kaydetme, değişken parse etme gibi daha havalı yöntemler de düşünülmüş ama context window uzadıkça yalnızca mesajlarla da yeterli olabileceği düşünülüyor

    • Prompt'un uzun olması iyi, ama yalnızca model bunu iyi işleyecek şekilde optimize edilmişse; yorum sahibi Claude Code'da başka modellere geçtiğini, ancak hem uzun prompt'lar hem de araç kullanımı konusunda reklam edildiği kadar iyi çalışan neredeyse hiç yerel model görmediğini söylüyor
      OpenAI, Google Gemini gibi modelleri de denemiş ama Anthropic modelleri kadar iyi olmadıklarını ve daha yavaş kaldıklarını düşünüyor; prompt uzadıkça araçları unutma veya çıktıyı yanlış formatta verme sorunları yaşadığını belirtiyor
    • (Blog yazarı) Temel işlevleri iyi kullanmanın bile durumların neredeyse %99'unda güçlü performans verdiğini düşünüyor; döngüyü basit tutmak ve net araçlar sağlamak önemli, işlevler örtüşse de sorun değil
      Netlik ve sadelik en yüksek öncelik
  • Google Gemini'nin, özellikle Pro sürümünün, Claude'a kıyasla nasıl olduğunu merak eden bir soru; Google'ın birçok ürününü sevse de ürünleri sık sık sonlandırması, kurumsal kontrol konularında (Chrome vb.) kaba davranması ve sansür meseleleri nedeniyle endişe duyduğunu söylüyor

    • Gemini, tüm depo için birleştirilmiş dosyaları topluca verip sohbet edebildiğinizde özellikle çok güçlü; tüm codebase'i anlama seviyesi şaşırtıcı derecede iyi ve mimari tasarımda çok yardımcı oluyor, Claude ise bu konuda oldukça geride kalıyor
      Kendi stratejisi olarak önce Gemini ile proje özeti ve yüksek seviyeli tasarım planı çıkarıyor, sonra gpt5 ile bunu iyileştirip ayrıntılı iş akışı tasarımı yaptırıyor (ör. XML dokümanı) ve ardından bunu yeniden Claude'a veriyor; bunun bile Claude'un bocalama eğilimini büyük ölçüde önlediğini söylüyor
    • Gemini Pro kodlama için kötü değil, ancak deneyimine göre Claude terminal odaklı işlerde (CLI vb.) çok daha iyi; çoğu CLI da zaten Claude kullanıyor
      https://www.tbench.ai/leaderboard
    • Web UI (sohbet) tarafında Gemini 2.5 Pro'yu oldukça seviyor, ancak komut satırı aracında Gemini code işe yaramazken Claude code çoğu zaman yavaş kalıyor
    • Gemini, birden fazla fonksiyon çağrısını takip etmeyi gerektiren zor debug işlerinde daha iyi; Claude ise her seferinde daha öngörülebilir ve talimatları daha iyi takip ediyor, özellikle todo listesi yönetiminde iyi
    • Eskiden oldukça beğeniyordu ama son dönemde biraz daha aptallaşmış gibi geldiğini, bunun sadece kendisine mi öyle geldiğini merak ediyor
  • Bir yoruma göre kullanıcıların olumlu değerlendirmeler vermesinin nedeni temel modelin gerçek yazılım geliştirme işlerinde güçlü olması; yani genel benchmark sorularından farklı bir durum var; GitHub Copilot kullanınca Claude'un OpenAI ve Google modellerinden çok daha üstün olduğu, aradaki farkın diğer modelleri pratikte neredeyse kullanışsız hissettirecek kadar büyük olduğu söyleniyor

    • Anthropic'in reinforcement learning sırasında modeli ve prompt'ları içeride optimize edebilmesi nedeniyle, yazıda geçen “mevcut yaklaşımı olduğu gibi kullanın” tavsiyesinin Anthropic modelleri için daha uygun olduğunu düşünüyor; abonelik modeli sayesinde döngü verimliliğini artırmak için güçlü teşvikleri var
    • Bunun sadece temel model farkıyla açıklanamayacağını söylüyor; VS Code'da opus ve cline'ı birlikte kullandığı durum ile Claude code kullandığı durum arasındaki üretkenlik farkını sayısal olarak ifade etmek zor olsa da, CC ile daha fazla iş çıkardığını belirtiyor
    • Çok övgü görünce beklentiyle Claude Code'u bir ay kullandığını ama aksine hayal kırıklığının arttığını; Cursor kenar çubuğundan daha zayıf bir deneyim sunduğunu ve acaba kendisinin mi yanlış kullandığını düşündüğünü söylüyor; iki farklı codebase'de sürekli saçma kod hataları yaptığını belirtiyor
  • Şu anda Claude Code ile Security Onion üzerinde Elastic kaynaklı bir sorunu debug etmeye çalıştığını, ancak birkaç dakika sonra anlaşılmaz JS kodları döküldüğünü ve “Error: kill EPERM” hatası aldığını anlatan bir yorum var
    Loglara bakınca Node.js sürecini öldürüp Claude'un kendisini de kapatıyor olabileceğini düşünüyor; ya da sorunu çözemeyince Claude'un kendi kendini kapattığı hissine kapılıyor
    Her hâlükârda süreç ayakta kalırsa biraz daha yardımcı olmasını isterdiğini söylüyor

    • Claude ile localstack'in bazı bölümleri pek uyumlu değil, ama Rust'ta şaşırtıcı biçimde oldukça iyi çalışıyor
      İleride LLM'in en iyi bildiği dilin/platformun/mimarinin giderek baskın hâle geleceğini düşünüyor; örneğin LLM nodejs'i 10 kat daha iyi kullanıyorsa baştan Elixir veya Go yerine nodejs seçmenin daha mantıklı olabileceğini savunuyor; junior geliştiricilerin de LLM yardımıyla mid-level/senior gibi kullanılabileceğini ekliyor
    • sudo ile süreci süper kullanıcı yetkisiyle çalıştırmaya çalışırken timeout olduğu için böyle bir hata çıkabiliyor
    • Kurulumu güncellemenin ya da mevcut kurulum dosyalarını silip yeniden yüklemenin sorunu çözebildiğini, kendisinin de bu şekilde düzelttiğini söyleyen bir yorum var
    • Başka bir LLM'e geçerek neler olduğunu kontrol ettiğini söyleyen biri var (resmî bir tavsiye değil)
    • Elasticsearch ile LLM kombinasyonundan hiç iyi sonuç alamadığını; üretilenlerin çoğunun temelsiz “halüsinasyonlar” olduğunu ve bunun internette yeterince iyi örnek bulunmamasından kaynaklandığını düşündüğünü söyleyen bir yorum da var
  • Bir kullanıcı, startup'ının ilk MVP'sinin tamamını Claude Code ile geliştirdiğini ve artık ücretli müşterileri olduğunu söylüyor; elbette bir SEV yaşanırsa her şeyin bir anda çökebileceğine dair temel bir kaygı var, ancak güvenlik açıklarını düzeltmek, test odaklı geliştirme yapmak ve uzun vadeli yol haritasına uygun yazılım mimarisi tasarlamak için Claude'u aktif biçimde kullanmaya devam ettiğini belirtiyor
    Bu tür hikâyelerin zamanla daha yaygın hâle gelmesini umuyor

    • Ürünü merak ettiğini ve bağlantı paylaşabilir misin diye soran, gerçek kullanıcı örneklerini görmek istediğini belirten bir istek var
    • “Güvenlik açıklarını düzeltmek” derken, kodu başta Claude'un yazıp güvenlik açığını da onun oluşturmuş olabileceğine dair şakalı bir soru yöneltiliyor
    • Test odaklı geliştirme ve yazılım tasarımı gibi konularda somut olarak nasıl yardım aldığını örneklerle anlatmasını isteyen bir talep var
    • Bir yorumcu, Claude Code'a her ay banka hesabına para transfer etmesini söylediğini ve onun da bunu gerçekten yaptığını söyleyerek şaka yapıyor
    • Claude Code ile tam olarak ne yaptığını biraz daha açık paylaşsa iyi olacağını söyleyen bir geri bildirim de var
  • “Keep things simple” iddiası doğruysa, bunun tersine biraz karmaşık bir kurulum gibi hissettirdiğini söyleyen bir görüş var
    Kendisi bugüne kadar hep tek prompt'la ne gerekiyorsa soran basit bir yaklaşımla yeterince çok iş yaptığını belirtiyor
    Tartışılan bu karmaşık yapıların, gerçekten iyi hazırlanmış bir prompt'a kıyasla ne tür ek değer sağladığından emin olmadığını söylüyor
    Örneğin "yeni öğrendiğim bir dilde while döngüsü nasıl yazılır" gibi tek cümlelik bir prompt'un daha verimli olabileceğini düşünüyor
    Control flow'un daha da belirsizleştiği hissine kapılıyor; LLM'in appendix kısmını (araçlar ya da sistem prompt'u) gerçekten düzgün kullanıp kullanmadığından da emin değil; istek çok karmaşıksa bazı bölümlerin yok sayılması ya da token israfı olması muhtemel görünüyor
    Parçalara bölünmüş ayrı prompt'larla programlama yapmak ona çok daha doğal geliyor
    Farklı yaklaşım kullanan örnekleri ya da prompt'ları görmek istediğini söylüyor
    İnsanların LLM kullanarak bütünlüklü bir programı pratikte nasıl oluşturduğunu, özellikle prompt'lara bölerek yapılan örnekleri görmek istediğini belirtiyor

    • Kendisinin de aynı şekilde kullandığını ve başkalarının yanıtlarını merak ettiğini söyleyen bir yorum var
  • Bu arada, yazının sonunda minusx.com bağlantısı var ve güvenlik sertifikası 553 gün önce sona ermiş durumda; sitenin geçerli olmadığını, dikkatli olunması gerektiğini belirten bir uyarı var