- AI kodlama modellerinin tek bir komutu bile güvenilir şekilde yerine getiremediği bir ortamda, arka planda otonom çalışan ajanik kodlamaya yönelik aşırı beklenti oluşuyor
- Yazar, referans kod olarak 100 satırlık bir Golang fonksiyonu vermesine rağmen GPT-5 ve Gemini Pro’nun bazı mantık parçalarını atladığını veya güncellemeleri eksik bıraktığını deneyimledi
- Ajanik sistemlerin 50 dosya ve çok sayıda fonksiyonu otonom biçimde işlemesi mevcut teknoloji seviyesinde gerçekçi görünmüyor; hatta hata ayıklama için daha fazla zaman harcanması riskini taşıyor
- Topluluk yanıtları, sistematik prompting, dokümantasyon ve adım adım doğrulama ile sınırlı ölçüde başarılı kullanımın mümkün olduğunu savunanlarla, ajanik yaklaşımın henüz pratik olmadığını düşünen şüpheci görüşler arasında ikiye bölünüyor
- Mevcut LLM’ler zeka değil, bilgi tabanlı sistemler olduğundan, geliştiricinin bağlamı bizzat sağlayıp adım adım doğruladığı “araç olarak kullanım” yaklaşımı daha gerçekçi görünüyor
Orijinal yazarın ortaya koyduğu sorun
- Basit komut başarısızlığı örneği: Referans olarak 100 satırlık bir Golang fonksiyonu verilip başka bir fonksiyonun aynı yapıda güncellenmesi istendiğinde, hem GPT-5 hem de Gemini Pro bazı mantıkları atladı veya güncellemeleri eksik bıraktı
- Ajanik kodlamanın gerçek dışılığı: Tek bir fonksiyonu bile düzgün işleyemeyen bir durumda, 50 dosya boyunca çok sayıda fonksiyonu otonom olarak değiştiren ajanik yaklaşımın daha fazla sorun yaratacağından endişe ediliyor
- 6000 satırlık dosya güncelleme sorusu: Stripe sürüm güncellemesi gibi 6000 satırlık bir dosyanın güvenli biçimde nasıl değiştirilebileceği konusunda topluluğun görüşü isteniyor
Olumlu kullanım örnekleri ve metodoloji
Sistematik dokümantasyon ve indeksleme yaklaşımı
- Markdown referans dosyası kullanımı: Referansları
.md dosyasında tutup AI’a bunu okumasını söylemek tutarlılığı ve doğruluğu artırıyor
- Örnek istem: "Ekli
goLang_Update_reference.md dosyasını referans alarak update fonksiyonunun temel noktalarını özetle ve buna dayanarak bir yazılım güncelleme taslağı hazırla"
- Yerel indeks oluşturma: Büyük dosyalarda (6000 satır ve üzeri) 1000 satırlık bölümler halinde tarama yapıp fonksiyon adları ve satır referanslarını içeren bir indeks üretme
- Frontend çalışırken
fr.index.md gibi yalnızca belirli alanları ayıran indekslerden yararlanma
Ajan yönetimi ve işin yapılandırılması
- Ajan uzmanlaştırma: architect, codeseeker, coder gibi rol bazlı ajanlar kurup her biri için uygun
.md kural dosyaları sağlama
- Dikey dilim yaklaşımı: 100 bin token’ın altında tamamlanabilecek küçük özellik birimlerine işi bölme
- 100 bin token aşıldığında ajanın hatalı davranma olasılığı keskin biçimde artıyor
- İşin dokümante edilmesini zorunlu kılma:
docs/TASKS.md, docs/WORKLOG.md, docs/DECISIONS.md güncellemelerini zorunlu tutarak iş sürekliliği sağlama
Plan Mode ve Ask Mode kullanımı
- Plan Mode: Tüm projeyi inceleyip isteğe göre bir plan oluşturduktan sonra adım adım ilerleme
- Ask Mode: Kod tabanı sorgulama, fikir keşfi, seçenek değerlendirme gibi işler için kullanma; Google/StackOverflow yerine geçebilecek faydalı bir araç
Önce birim testi yazma yaklaşımı
- Test odaklı geliştirme: Fonksiyon yazmadan önce birim testlerini hazırlayıp, AI’ın bu testleri geçen kodu yinelemeli olarak üretmesini sağlama
- İşlevsel olarak doğru kod elde etme olasılığı büyük ölçüde artıyor; sonrasında yalnızca optimizasyon ve temizlik gerekiyor
Şüpheci görüşler ve sınırların kabulü
Ajanik yaklaşımın pratik sınırları
- Denetimsiz çalışma intihar gibi: Mevcut teknoloji seviyesinde bir bileti atayıp arka planda otonom çalışmasına izin vermenin başarısızlık olasılığı çok yüksek
- Yalan üretme ihtimali: Modellerin başarıdan çok halüsinasyon üretme olasılığı daha yüksek ve en kötü senaryoda mevcut kodu bozabilirler
- Planning Mode’un fazlalığı: Temel modele ayrıntılı bir plan istemek çoğu zaman yeterli; Planning Mode pratikte yeni bir yetenek sunmuyor
LLM’lerin doğasından gelen kısıtlar
- Akıl yürütme değil tahmin: Modeller sonucu doğrulamadan bir sonraki kelimeyi tahmin ederek çalıştığı için, grounding, memory ve feedback iyileşene kadar güvenilirlik dalgalı kalacak
- Zeka olmadan bilgi tabanı: LLM’ler zekadan yoksun, gelişmiş bilgi tabanlarıdır; geliştiricinin zekayı (BYOI: Bring Your Own Intelligence) ve bağlamı bizzat sağlaması gerekir
- Bellek eksikliği: Modellerin gerçek belleği yoktur; yalnızca context ve context cache’e dayanırlar, bu yüzden her yeni sohbette bağlam sıfırlanır
Dil ve veri önyargısı
- Golang’ın görece dezavantajı: Golang, Python veya JavaScript’e göre daha az açık kod tabanına sahip olduğundan, modelin öğrenmiş olduğu örüntü ve teamüller daha sınırlı
- Bu da tutarlı düzenleme veya dönüşüm çıktıları almayı zorlaştıran yapısal bir etken
Başarılı kullanım için pratik rehber
Prompting ve bağlam sağlama
- Açık ve ayrıntılı talimatlar: Dilbilgisi ve noktalamayı doğru kullanın; muğlak ifadeler yerine açık talimatlar verin
- İlgili tüm dosyalara açık referans: Ajanın kullanması gereken tüm dosyalar açıkça belirtilmezse spagetti kod üretme olasılığı artar
- Kural dosyaları ayarlama: Tüm çalışma alanı için kurallar ve proje bazlı kural dosyaları tanımlayarak tutarlı kod üretimi sağlama
- @Docs kullanımı: Ajanın ihtiyaç duyduğu temel bilgiyi vermek için doküman referans özelliğinden yararlanma (bazı sürümlerde kararsız çalışabiliyor)
İş kapsamı ve doğrulama
- Küçük parçalara bölme: İşi tek seferde işlenebilecek en küçük birimlere ayırın; her adımı doğruladıktan sonra sonraki adıma geçin
- Gerçek zamanlı gözden geçirme: Üretilen tüm kodu anlık inceleyin ve gerekirse hemen düzeltme isteyin; böylece spagetti kod önlenebilir
- Yedekleme ve sürüm kontrolü: Her adımda yedek oluşturun ve GitHub gibi sürüm kontrol sistemlerini kullanın
- Test çalıştırma: Etkilenen testleri
pytest --testmon -q ile artımlı biçimde çalıştırın; bitirmeden önce de tüm testleri çalıştırın
Modülerlik ve kod yapısı
- 6000 satırlık dosyayı bölme: Tek dosyada 6000 satır modüler değildir ve bağlam sağlamayı zorlaştırır; bunu 500 satırlık 12 dosyaya bölmek daha etkilidir
- Dikey dilimleri tercih etme: Uçtan uca çalışabilen küçük özellik birimlerinde geliştirme yapma
Model seçimi ve maliyet yönetimi
- Claude Sonnet 4.5’i öncelikli değerlendirme: GPT veya Gemini’ye göre daha yüksek tutarlılık ve doğruluk sunarak ek maliyetini hak edebilir
- Token tüketimine dikkat: Büyük planlar çok token harcar; gerçek uygulamada küçük adımlara bölmek daha maliyet etkindir
Özel kullanım senaryoları
Tek seferlik script üretimi
- Analiz scriptleri: Günde yüzlerce tek seferlik veri analizi scripti yazılması gerekiyorsa, doğruluk %50 olsa bile elle yazmaya kıyasla 1000 kat daha hızlı üretim ve çalıştırma mümkün olabilir
- Sonucu doğrulayabilme: Sonuç doğrudan doğrulanabildiği için düşük doğruluk oranı bile pratikte işe yarayabilir
Sıfırdan uygulama kurma
- Çok ajanlı yapı: Büyük bir uygulama sıfırdan kurulurken, denetleyici bir ajan diğer ajanların işini inceleyerek tutarlılığı koruyabilir
- import adları, değişken adları tutarlılığı ve kod tekrarının önlenmesinde etkili olabilir
- Maliyet/verim dengesi: Yine de karmaşık değişiklikler ve refactoring gerektiğinden, adım adım yaklaşım uzun vadede daha ucuz olabilir
Topluluk görüşlerinin özeti
Olumlu deneyimler (3–5 kat verim artışı)
- Next.js web sitesi: Sıfırdan tamamen çalışan ve dağıtıma hazır bir web sitesini dakikalar içinde kurma
- Karmaşık özellik geliştirme: Bir sohbet uygulamasına threads özelliğini 3–4 dakikada ekleme (normalde tahmini 3 günlük iş)
- Sistematik yaklaşımda: Net kurallar, yeterli bağlam ve adım adım doğrulama birlikte kullanıldığında istikrarlı başarı mümkün olabilir
Olumsuz deneyimler (şimdilik pratik değil)
- Spagetti kod üretimi: Geniş kapsamlı hedefler verildiğinde doküman güncellemelerinin atlanması, artık dosyaların silinmemesi gibi sorunlar ortaya çıkıyor
- Anlamsal hatalar: Teknik olarak çalışsa da kodun yanlış yere konması veya mevcut fonksiyonun yeniden yazılması gibi yapısal sorunlar oluşabiliyor
- 5 dakikayı aşan takiplerin başarısızlığı: 5 dakikadan uzun süren izleme oturumları çoğunlukla işe yaramaz sonuçlar üretiyor
1 yorum
Hacker News görüşleri
agent-osgibi bir framework ile orkestrasyon şart/compactkullanmak gerekiyor). Her seferinde kusursuz kod vermiyor ama ben de vermiyorum. Yine de çoğunlukla olumlu değişime yol açıyor ve harcadığım emek ciddi biçimde azalıyor. Tam tasarlanmamış bir durumda bootstrap için hâlâ önermem ama bazen onu da başarıyor (yine de ön inceleme gerekli). Hatta bu aralar Claude'un günler boyunca kesintisiz çalışıp sorunları otomatik çözmesini düşünüyorumcodex-cliile verimliliğin 5 kat arttığını hissettim. Çok sıra dışı yapıya sahip kaynaklardan ve dahili SVG execution trace'lerinden özel bir JSON graph formatına dönüşüm yapmakta ya da karma Python/C++ kod tabanlarından (düşük seviyeli RISCV kernel'e kadar) doğru dokümantasyon çıkarmakta çok rahattı. Aynı araçla bile bu kadar farklı sonuçların ortaya çıkmasının nedenini gerçekten merak ediyorumclaude code,codex,copilotvb.), başarısız/başarılı örnekler ve LLM kullanım becerisi gibi ayrıntılar belirtilmeli. Ayrıca mühendisin tek bir kod tabanında 10 yıl geçirip geçirmediği, birden çok proje arasında gidip gelmediği, yeni geliştirme (Greenfield) mi bakım mı yaptığı, inovasyon araştırması mı yoksa CRUD mu yaptığı gibi koşullar da değişebilirnp.randomkullanma” diye beş kez büyük harflerle vurgulasam bile Claude'un bazen bunu görmezden gelmesi gerçekten absürt. Böyle durumlar şaşırtıcı derecede saçma. İyi çalıştığında harika ama çalışmadığında başarısızlık sinyali bile vermiyor. LLM pazarlaması açısından düşününce, kodlama ajanının arkasında onu gerçek zamanlı denetleyen bir “PIPA (Performance Improvement Plan Agent)” gibi başka bir ajanın dolaştığını hayal edebiliyorum. PIPA, kodlama ajanının performansını izler, böylece HR ya da yöneticiler AI çalışanı (ajanı) yönetir; gelecek belki de böyle gelir