62 puan yazan GN⁺ 2025-08-25 | 4 yorum | WhatsApp'ta paylaş
  • 2025 itibarıyla kodlama ajanını doğrudan yapmak, bireysel geliştiricilerin deneyebileceği en iyi projelerden biri
  • Ajanlar yalnızca 300 satır kod ve bir LLM token döngüsü ile çalışır; bunu yapmak, tüketici olmaktan çıkıp bir AI üreticisine dönüşme fırsatı sunar
  • Temel bileşenler dosya okuma, dosya listeleme, Bash çalıştırma, dosya düzenleme, kod arama gibi araçlardır ve bunlarla gerçek otomasyon işlevleri kurulabilir
  • Model seçiminde Claude Sonnet, Kimi K2 gibi agentic modeller uygundur; gerekirse GPT gibi oracle modeller araç olarak bağlanıp daha üst düzey doğrulama yapılabilir
  • Amp, Cursor, Claude Code, GitHub Copilot gibi ticari ürünler de pratikte benzer bir yapıya sahiptir

Atölye özeti

  • Geoffrey Huntley'nin yürüttüğü ücretsiz bir atölye; kodlama ajanını doğrudan nasıl yapacağınızı ve mantığını uygulama odaklı şekilde anlatıyor
  • Roo code, Cline, Amp, Cursor, Windsurf, OpenCode gibi mevcut ticari AI yardımcılarıyla yapı ve prensipler karşılaştırılıyor; ayrıca bunu bizzat uygulama fırsatı sunuluyor
  • Geliştirme deneyimi sayesinde sıradan bir AI kullanıcısı olmaktan çıkıp AI kullanarak otomasyon araçları üreten bir geliştirici olarak gelişmek mümkün
  • Temel yapı, yaklaşık 300 satırlık kod içinde LLM token'larını döngü biçiminde kullanarak ajan işlevleri oluşturmaya dayanıyor
  • Her araç için primitive işlevler (okuma, dosya listeleme, çalıştırma, düzenleme, kod arama) ekleniyor; gerçek çalışma örnekleri ve kodlar GitHub deposunda açıklandı

Ajan nedir?

  • Son dönemde "ajan" terimi çok yaygın kullanılıyor, ancak gerçek anlamı ve iç çalışma prensibi net değil
  • Ajan geliştirmenin giriş engeli düştükçe, AI tüketicisinin ötesine geçip iş otomasyonuna yön veren bir üretici olarak gelişmek mümkün hâle geliyor
  • 2025 itibarıyla, temel veritabanı kavramları (Primary key) gibi ajan geliştirme prensipleri de zorunlu bilgi hâline geliyor
  • Canva gibi şirketler mülakat süreçlerinde şimdiden AI kullanımını teşvik ediyor ve AI otomasyon yeteneği işe alımın kilit unsurlarından biri oluyor
  • Artık geride kalmanın nedeni AI değil; kişinin kendini geliştirip yeni araçları öğrenmemesi

Kodlama ajanının temel ilkeleri

  • Kodlama ajanı yalnızca 300 satır kod ve bir LLM token döngüsü ile kurulur; tekrar eden token girişleri üzerinden işlev üretir
  • Eşzamanlı çalışma (concurrent work) kavramı önemlidir
    • Örnek: Zoom toplantısı sırasında bile ajan paralel olarak çalışıp iş akışının verimini ciddi biçimde artırabilir
    Reklam
  • Her LLM agentic değildir
    • 'yüksek güvenlik' (örn. Anthropic, OpenAI)
    • 'düşük güvenlik' (örn. Grok)
    • 'oracle' (özetleme ve üst düzey düşünmede avantajlı)
    • 'agentic' (eyleme yatkın, hızlı yineleme ve araç çağırma)
  • Geliştiriciler modellere özgü özellikleri anlamalı ve amaca göre kullanılacak modeli seçmelidir
  • Bağlam penceresini koşulsuz büyütmek performansı düşürür; "ne kadar az verirseniz sonuç o kadar iyi olur" ilkesini akılda tutmak gerekir
    • Aşırı MCP araç kaydı performans düşüşüne yol açar
  • Kural: "Less is more" → en iyi performans için yalnızca gerekli araç ve verileri bağlama yerleştirmek gerekir

Kodlama ajanı kurma sürecinin akışı

  • 1. Araç kaydı ve fonksiyon çağırma

    • Örneğin LLM'e bir hava durumu sorgulama aracı kaydedilir ve LLM'in uygun durumlarda buna fonksiyon çağırma biçiminde yanıt verebilmesi sağlanır
    • MCP(Model Context Protocol), "bir fonksiyon için bilgi afişi"ne benzer; sadece fonksiyon açıklaması kaydedilse bile otomatik çağrı mümkün olur
  • 2. Primitive araçların temel işlevleri

    • Dosya okuma (ReadFile): Yol verildiğinde dosya içeriğini bağlama okur
    • Dosya listeleme (ListFiles): Bir dizindeki dosya ve klasör listesini sağlar
    • Komut çalıştırma (Bash): LLM sistem kabuğu komutlarını çalıştırır ve sonucu döndürür
    • Dosya düzenleme (Edit): Belirli bir dosyayı oluşturma veya değiştirme işini otomatikleştirir
    • Kod arama (CodeSearch): Desen, anahtar kelime veya fonksiyon adına göre tüm kod tabanında hızlı arama yapar (ripgrep kullanır)
    Reklam
  • 3. Örnekler ve sonuç akışı

    • Her araç LLM'e entegre edilerek yalnızca doğal dil prompt'u ile ardışık işler (örn. FizzBuzz kodu üretme → çalıştırıp doğrulama, dizin gezme → içerik analizi) otomatikleştirilebilir
    • Araç fonksiyonları kullanıcı girdisine veya senaryoya göre sırayla çağrılır ve sonuçlar döngü içinde tekrar tekrar döndürülür
    • Ajanın temel çalışma dizisi: kullanıcı girdisi → araç çağrılıp çağrılmayacağına karar verme → aracı çalıştırma → sonucu bağlama ekleme → tekrar

Genişleyebilirlik ve açık kaynak

  • Günümüzde çoğu kodlama ajanı ripgrep gibi mevcut açık kaynak araçlar üzerine kuruludur
  • GitHub'da SST Open Code, mini-swe-agent gibi yalnızca 100 satırla yazılmış basit ama güçlü ajan projeleri vardır; performans ve yapı açısından iyi birer referanstır
  • Geliştiricilere, mevcut ürünleri kıyaslamak yerine bizzat yaparak prensipleri anlamaları ve kullanmaları tavsiye edilir
  • Gerçek işlerde ve otomasyonda uygulandığında, kendi ajanını üretmek ve bunu organizasyon içinde yaymak rekabet avantajına dönüşür

Sonuç ve çıkarımlar

  • Kodlama ajanı karmaşık bir teknoloji değil, basit bir döngü yapısı ve araç kombinasyonudur
  • Kodlama ajanı geliştirmenin özü, yapıyı anlamak ve hızlı uygulamaktır; bizzat geliştirme deneyimi, AI teknolojisindeki değişimlere aktif yanıt vermeyi sağlar
  • Bugün asıl önemli olan şey AI'ın kendisinden çok sürekli kendini geliştirmek ve araç üretme yetkinliğine yatırım yapmaktır
  • "İşinizi elinizden alacak olan AI değil; ajanlarla donanıp otomasyon yapan ve daha hızlı çalışan iş arkadaşlarınızdır"

4 yorum

 
GN⁺ 2025-08-25
Hacker News görüşleri
  • Princeton SWE-bench ekibimizde, yaklaşık 100 satır kodla SWE-bench'te iyi sonuç veren bir ajan yaptık; ilgini çekerse bir bakmanı öneririm: mini-swe-agent

    • Yapının gerçekten epey basit olmasına şaşırdım, bunu paylaştığın için teşekkürler
      Tüm kod aslında şu prompt'larla çalışıyor: ajan temel prompt kaynak kodu

      Your task: {{task}}. Please reply
      with a single shell command in
      triple backticks.
      
      To finish, the first line of the
      output of the shell command must be
      'COMPLETE_TASK_AND_SUBMIT_FINAL_OUTPUT'.
      
    • Ajan örnek prompt'larındaki “1. Kod tabanında ilgili dosyaları bul ve oku 2. Sorunu yeniden üreten bir script oluştur 3. Sorunu düzelt 4. Script ile düzeltmeyi doğrula 5. Edge case'leri test et” kısmı faydalı
      Ben de debug döngüsünde buna benzer prompt'lar kullanıyorum
      “Kod tabanını analiz ettikten sonra olası kök nedenleri listele, olasılık sırasına göre sırala ve script ya da debug logging ile hipotezleri doğrula” yaklaşımı kendi problem çözme rutinimde çok işe yarıyor

    • Sorun tek bir dosyada kendi içinde çözülüyorsa, LLM kullanarak düzeltmek çok kolay
      Ama genel bir kod tabanında dosyalar ve bağlam oraya buraya dağılmış oluyor; geliştiricinin yapılandırılmış tasarım niyetine ve organizasyonuna uygun şekilde bunu kavramak kolay değil

    • Güzel bir deneme, alkışı hak ediyor; ama bence eksik tarafı araç sayısının az olması
      Kodun büyük kısmı ajan framework'üne ait ve yalnızca SWE'ye özel kod sanıldığı kadar fazla değil
      Ben de eğlencesine bir SWE ajanı yaptım; istersen autocode'a da bakabilirsin

    • Teşekkür etmek için bunu referanslara ekledim

  • Thorsten Ball'ın yazdığı çok benzer bir “ajan nasıl inşa edilir rehberi” AmpCode How To Guide içinde de var
    Genel olarak Amp de oldukça ilginç
    Artık gizemli bir servis değil ama ajan kodlama araçlarının giderek daha açık hale gelmesi sevindirici
    İleride çeşitli yazılımlarda bu tür ajan modellerinin varsayılan olarak yer alacağını düşünüyorum

    • Bu çok daha okunaklı olmuş, bunun için teşekkürler

    • Yazarın bizzat Amp'te çalıştığı da belirtilmiş

    • Ghuntley de Amp'te çalışıyor

  • Bir resim genelde 1000 kelime eder derler ama bu materyalde görseller sanki %99,6 indirimli gibi
    Bunun ne olduğunu merak ediyorum

    • Bu, konferans workshop'u için hazırlanmış bir slayt seti
      Metinler de gerçek sunumdaki ifadelerin dikte edilmiş hali
  • Araç kullanım biçimiyle ilgili bunu doğrulayabilecek biri var mı diye merak ediyorum
    Claude, ChatGPT vb. API üzerinden “araçlar” sunuyor ve araç çağrısı isteği geldiğinde yanıtlayan taraf aracı gerçekten çalıştırıp sonucu geri iletiyor diye anlıyorum
    Ama modelin aslında sıkı anlamda metin tabanlı olduğunu düşününce, API'nin model yanıtını farklı yapılara nasıl dönüştürdüğünü merak ediyorum
    Muhtemelen fine-tuning sürecinde belirli araç çağrılarını özel bloklar halinde gösteren örneklerle model bunu öğreniyor ve sonra Claude/ChatGPT sunucuları bunu yorumluyor diye tahmin ediyorum
    Bununla ilgili dokümantasyon ya da dahili olarak kullanılan özel token'lara dair bilgi var mı, ayrıca kullanıcı girdisinin bu “anlam taşıyan” token'ları kötüye kullanması nasıl engelleniyor diye merak ediyorum

    • Anthropic'in yayımladığı bir uygulama dokümanı var
      Anthropic Tool Use Documentation
      Burada modelin aslında “metin” değil token düzeyinde çalıştığı net biçimde görülebiliyor
      Bu, bir derleyicinin kaynak kodu parse edip anahtar kelimeler, parantezler, yapılar vb. için bir “token” dizisi oluşturmasına benziyor
      Çıktı yalnızca gerçek kelimeleri değil, metadata da içerebilir

    • Kavramsal olarak doğru anlamışsın
      LLM ile gerçek arayüz yalnızca “token”lar ve kontrol kanalıyla veri kanalı ayrı değil
      Model API katmanında araç çağrısı talimatları ile kullanılabilir araçların listesi prompt'a ekleniyor; her biri için açıklama da veriliyor
      Araç çağrısı gerektiğinde model yanıtına özel bir blok ekliyor (özel token'lar, araç adı ve parametreler dahil) ve API katmanı bunu çekip JSON biçimine dönüştürüyor
      Araç çalıştırma sonuçları da özel token'larla kodlanıp ekleniyor
      API katmanı, kullanıcının kendi başına bu tür token'ları enjekte etmesini engelliyor
      En güncel SoTA modeller araç çağrıları için ciddi biçimde fine-tune edildi; buna genel amaçlı araç çağrısı ve belirli araç durumları da dahil (ör. Claude Sonnet modelinin Claude Code araçlarına özel ayarlanması)
      Her şeyin çalışıyor olması neredeyse şaşırtıcı; araç çağrılarında fine-tuning gerçekten kritik rol oynuyor
      Fine-tuning olmadan da çalışabilir ama başarı oranı ciddi biçimde düşer

    • “Araç çağrısı gerektiren örnekleri özel bloklarla döndürecek şekilde fine-tune edilmiştir” tahmininin doğru olduğunu düşünüyorum
      Cevabı iyi bilmediğinde ya da talimat aldığında araç çağrısı formatında yanıt vermesi öğretiliyor
      Hem formatı izleyen araç çağrısı örnekleri hem de bazı araçlara özel eğitim yapılıyor
      Örneğin gpt-oss, bahsi hiç geçmese bile arama aracını kullanmaya eğilimli
      Anthropic dokümanında ayrıca tanıdık araçlar listesi de var (ör. text_editor, bash) ve bu araçların kullanımına dair daha derin anlamların ayrıca eğitilmiş olma ihtimali yüksek
      Gerçekte yapı epey kırılgan ve her şey “özel token'lar veya token dizileri” gibi düşük seviyeli sinyaller üzerinden işliyor

  • “Token'ları sürekli döngüye atarsan bir ajan ortaya çıkar” sözünde token yerine para koyunca işin hicvi daha gerçekçi geliyor
    Sonuçta sürekli para yakarsan bir ajan elde etmiş oluyorsun

    • Bence token'ların tamamen para olduğunu söylemek doğru değil
      Yerel modeller de sürekli gelişiyor
      Şimdilik en iyi sonucu almak için token (= para) gerekiyor ama gelecekte bu değişebilir
  • Bu kadar çok görsel olunca okumak çok zorlaşıyor
    Sanki bir scroll simülatörüne bakıyormuşum gibi

  • bash aracı dışında neden özellikle başka araçlara ihtiyaç duyulduğunu merak ediyorum
    Dosya listeleme, repo bulma ve gezme, dosya içeriği düzenleme gibi işler bash ile zaten yapılabilir değil mi
    Yoksa bu, yukarıdaki mini-swe-agent örneğinde gösterilen türden bir durum mu

    • Teknik olarak bakınca yalnızca bash ile oldukça geniş bir iş yelpazesi zaten yapılabiliyor ve ben de bu şekilde başarılı oldum
      İlginç olan şu ki araçları ne kadar kısıtlarsan ajan o kadar yaratıcı yaklaşıyor
      Ama eğitilmiş çeşitli araçları sunduğunda model her birini nasıl kullanacağını zaten bildiği için token kullanımı daha verimli oluyor ve genel başarı oranı da yükseliyor
      Sadece Bash kullanıldığında bashism, argüman işleme ve boşluk işleme gibi konularda sık sık tökezliyor

    • Ayrı araçlar kullanmak, her şeyi tek bir bash aracına yüklemekten çok daha basit
      Her şeyi bash ile yaparsan, her durumda güvenle çalıştırılabilecek komutları (ör. dosya listeleme) doğrudan çalıştırıp diğer riskli komutlar için kullanıcı onayı isteyen ayrı bir sistem kurman gerekir
      Dosya listelemeyi ayrı bir araç olarak sunarsan proje dizini dışındaki dosyaların açığa çıkmasını da engelleyebilirsin

    • Pratikte yalnızca bash aracı ve Edit aracıyla kodlama ajanı çalıştırmak mümkün (Edit zorunlu değil ama verimsizlik ciddi artıyor)
      Yine de kod arama gibi konularda zorlanabilir
      Mesela prompt'u, ripgrep'i bash içinde kullanacak şekilde ayarlayarak bunu bir ölçüde telafi etmek mümkün olabilir

    • Neden IDE gerekli? Kabukta her şeyi yapabiliyorsan neden onu kullanıyoruz?
      UI'nin görevi, o anda ihtiyaç duyduğun bilgi ve eylemleri sana sunmaktır

    • Neden bash dışında başka araçlar da eklenmiş sorusuna cevaben, sanırım önce minimum araç setiyle başlayıp sonradan bash eklenebilmesi mantığı var

  • “Ajan nasıl yapılır”ı uzun uzun anlatmak yerine, bir ajanın gerçekten yaptığı bir projeyi görmek isterdim

    • Keşke biri gerçekten bir ajan yapıp bunu HN'de “Show HN” olarak paylaşsa
  • Oracle, Agent, high safety, low safety eksenlerinin ne anlama geldiğini açıklayabilecek biri var mı diye soruluyor

  • Edge ve Chrome'un cihaz üstü modelleriyle (phi4-mini, gemini nano) bunu bizzat denedim; model boyutuna kıyasla oldukça iyi çalışmasına şaşırdım
    cihaz üzerinde ajan nasıl yapılır deneyi

 
crawler 2025-08-25

Genelde bir resim bin kelime eder derler ama bu materyalde resimlerin değeri %99,6 indirimde gibi hissettiriyor, bunun ne olduğunu merak ediyorum

Aşırı komik ya hahaha, ne demek istiyor diye düşündüm ama linke girince dank diye anlaşılıyor

 
savvykang 2025-08-25

Blogdaki diğer gönderilerin küçük görselleri de kötü; insanın kesinlikle tıklamak istemeyeceği gibi görünüyorlar.

 
nemorize 2025-08-25

ahahahahahahahahahahahaha