20 puan yazan GN⁺ 2025-10-06 | Henüz yorum yok. | WhatsApp'ta paylaş
  • Anthropic’in Claude Code ve OpenAI’nin Codex CLI gibi kodlama ajanları, kodu doğrudan çalıştırıp hataları düzelterek, mevcut uygulamaları inceleyip deneyler yaparak çalışan kod üretiminde LLM’lerin faydasını kökten artırıyor
  • Bu araçların potansiyelinden en iyi şekilde yararlanmanın temel tekniği ajanik döngü tasarımıdır; kodlama ajanları, net bir hedef ve araç setiyle probleme indirgenince kaba kuvvet yaklaşımıyla etkili çözümler bulabilen araçlar olarak anlaşılabilir
  • LLM ajanının tanımı, bir hedefe ulaşmak için döngü içinde araçlar çalıştırmaktır; bunu iyi kullanmanın tekniği de ajanın kullanacağı araçları ve döngüyü dikkatle tasarlamaktır
  • YOLO modu (tüm komutların varsayılan olarak onaylandığı mod) risklidir ama kaba kuvvetle en üretken sonuçları almak için de kritiktir; güvenli çalıştırmak için Docker sandbox’ı, GitHub Codespaces gibi başka bir bilgisayar ortamı veya riski kabullenme arasında seçim yapılabilir
  • Doğru araç seçimi (shell komutları ve paketler), sıkı kapsamlandırılmış kimlik bilgileri verme (test ortamı, bütçe sınırı) ve net başarı ölçütleriyle deneme-yanılma gerektiren problemlere (debugging, performans optimizasyonu, bağımlılık yükseltmeleri, container optimizasyonu) uygulamak, ajanik döngü tasarımının temel ilkeleridir

YOLO modunun keyfi

  • Ajanların riski

    • Ajanlar doğası gereği risklidir
      • Yanlış kararlar verebilir veya kötü niyetli prompt injection saldırılarının kurbanı olabilirler
      • Araç çağrılarından kaynaklanan zararlı sonuçlar ortaya çıkabilir
    • En güçlü kodlama ajanı aracı “shell’de bu komutu çalıştır” olduğundan, kontrolden çıkan bir ajan kullanıcının komutu bizzat çalıştırarak yapabileceği her şeyi yapabilir
    • Solomon Hykes’tan alıntı:
      > AI agent is an LLM wrecking your environment in a loop
  • Varsayılan onay modunun sınırları

    • Claude Code gibi kodlama ajanları, çalıştırdıkları neredeyse her komut için onay istemeyi varsayılan yaparak buna karşılık veriyor
    • Bu biraz can sıkıcı, ama daha da önemlisi kaba kuvvetle problem çözmenin etkinliğini dramatik biçimde azaltıyor
  • YOLO modu

    • Her araç, her şeyin varsayılan olarak onaylandığı YOLO modunun kendi sürümünü sunuyor
    • Bu son derece riskli ama aynı zamanda en üretken sonuçları elde etmek için de kritik
  • Gözetimsiz YOLO modunun üç ana riski

    • 1. Kötü shell komutları: önemli şeyleri silmek veya bozmak
    • 2. Sızdırma saldırıları: ajanın görebildiği dosya veya verileri (kaynak kod ya da ortam değişkenlerinde tutulan sırlar) çalmak
    • 3. Proxy saldırıları: makineyi başka hedeflere yönelik DDoS veya diğer hack saldırılarının kaynağını gizlemek için proxy olarak kullanmak

YOLO modu çalıştırma seçenekleri

  • Seçenek 1: Güvenli sandbox

    • Erişilebilecek dosyaları ve sırları, kurulabilecek ağ bağlantılarını sınırlayan güvenli bir sandbox içinde ajan çalıştırmak
    • Container escape ihtimali vardır, ancak Docker veya Apple’ın yeni container araçlarını kullanmak çoğu kişi için kabul edilebilir bir risk oluşturur
    • Anthropic’in Safe YOLO mode belgeleri:
      • İnternet erişimi olmayan bir container içinde --dangerously-skip-permissions kullanmak
      • Docker Dev Containers kullanan bir referans uygulama sunmak
      • İnternet erişimini güvenilen host listesiyle sınırlamak, özel kaynak kodunun çalınmasını önlemek için iyi bir yöntemdir
  • Seçenek 2: Başkasının bilgisayarını kullanmak (tercih edilen)

    • Ajan kontrolden çıksa bile zarar sınırlı kalır
    • GitHub Codespaces kullanılması önerilir:
      • Tarayıcı üzerinden erişilebilen isteğe bağlı, tam container ortamları sunar
      • Cömert bir ücretsiz katman sunar
      • Bir sorun çıkarsa en kötü ihtimalle bir yerlerdeki bir Microsoft Azure makinesi CPU harcar; daha kötü senaryoda ise ortama checkout edilmiş kod saldırgan tarafından sızdırılabilir veya kötü kod bağlı GitHub deposuna push edilebilir
    • Başkasının bilgisayarında kod çalıştıran diğer ajan benzeri araçlar:
      • ChatGPT ve Claude’un Code Interpreter modları
      • OpenAI’nin Codex Cloud aracı
  • Seçenek 3: Riski kabullenmek

    • Olası kötü niyetli talimat kaynaklarına maruz kalmamaya çalışmak ve zarar vermeden önce hataları yakalamayı ummak
    • Çoğu insanın seçtiği seçenek

Döngü için doğru araçları seçmek

  • Güvenli YOLO modu sağlandıktan sonra

    • Sonraki adım, kodlama ajanına hangi araçların sunulacağına karar vermektir
  • Önce shell komutları

    • Bu noktada MCP (Model Context Protocol) de karışıma katılabilir, ama bunun yerine shell komutları açısından düşünmek genellikle daha verimlidir
    • Kodlama ajanları shell komutlarını çalıştırmada gerçekten çok iyidir
    • Ortam gerekli ağ erişimini veriyorsa NPM, PyPI vb. üzerinden ek paketler de çekebilirler
    • Ajanın, rastgele paket kurulumlarının ana bilgisayarınızdaki şeyleri bozmayacağı bir ortamda çalışmasını sağlamak da önemli bir husustur
  • AGENTS.md dosyasından yararlanmak

    • MCP’ye bel bağlamak yerine, kullanılması gerektiğini düşündüğünüz paketler hakkında ayrıntı içeren bir AGENTS.md (veya eşdeğeri) dosyası oluşturmayı tercih eder
    • Örnek: Farklı web sitelerinin ekran görüntülerini alan bir projede kendi shot-scraper CLI aracını kurup AGENTS.md dosyasına şunu ekler:
      Ekran görüntüsü almak için şunu çalıştır:  
      
      shot-scraper http://www.example.com/ -w 800 -o example.jpg  
      
    • Bu tek örnek bile ajanın başka ekran görüntüleri için URL ve dosya adını nasıl değiştireceğini tahmin etmesi için yeterlidir
  • Mevcut araçlardan yararlanmak

    • İyi LLM’ler zaten şaşırtıcı derecede geniş bir mevcut araç yelpazesini nasıl kullanacağını biliyor
    • “playwright python kullan” veya “ffmpeg kullan” dendiğinde çoğu model bunları etkili biçimde kullanır
    • Döngü içinde çalıştıkları için başta yaptıkları hatalardan genellikle toparlanabilir ve ek yönerge olmadan doğru sıralamayı bulabilirler

Sıkı kapsamlandırılmış kimlik bilgileri vermek

  • Kimlik bilgisi gereksinimi

    • Doğru komutları açığa çıkarmanın yanında, bu komutlara hangi kimlik bilgilerinin verileceğini de düşünmek gerekir
    • İdeal olarak hiç kimlik bilgisi gerekmemelidir (pek çok iş oturum açmadan veya API anahtarı vermeden yapılabilir), ancak bazı problemler kimlik doğrulamalı erişim gerektirir
  • İki temel öneri

    • 1. Test veya staging ortamı için kimlik bilgileri verin
      • Zararın iyi sınırlandırılabildiği ortamlar
    • 2. Bütçe sınırları belirleyin
      • Kimlik bilgileri para harcayabiliyorsa sıkı bütçe sınırları koyun
  • Gerçek örnek: Fly.io incelemesi

    • Fly.io üzerinde çalışan scale-to-zero bir uygulamanın yavaş cold start sürelerini incelemek
    • Claude Code’un Dockerfile’ı doğrudan düzenleyebilmesini, Fly hesabına deploy edebilmesini ve başlama süresini ölçebilmesini sağlamak
    • Güvenli kurulum

      • Fly’da bir organizasyon oluşturabilir, bu organizasyon için bütçe sınırı koyabilir ve yalnızca o organizasyon içinde uygulama oluşturup değiştirebilen bir Fly API anahtarı verebilirsiniz
      • Sırf bu inceleme için özel bir organizasyon oluşturmak
      • 5 dolar bütçe belirlemek
      • API anahtarını verip Claude Code’u serbest bırakmak
    • Bu özel durumda sonuçlar yeterince faydalı olmasa da, “ajanik döngü tasarımı”nın geliştirilmesi gereken önemli bir beceri olduğunu ilk kez fark ettiren proje buydu

Ajanik döngü tasarımı ne zaman kullanılmalı

  • Uygun problem kalıpları

    • Her problem bu çalışma kalıbına iyi yanıt vermez
    • Dikkat edilmesi gereken şey, net başarı ölçütleri olan ve iyi bir çözüm bulmak için (potansiyel olarak biraz sıkıcı) deneme-yanılma gerektirebilecek problemlerdir
    • “Off, burada çok sayıda varyasyon denemem gerekecek gibi” diye düşündüğünüz her an, ajanik döngüyü denemeye değer olduğuna dair güçlü bir işarettir
  • Somut örnekler

    • Debugging

      • Bir test başarısız olur ve kök nedeni araştırmak gerekir
      • Testleri zaten çalıştırabilen bir kodlama ajanı, ek kurulum olmadan bunu yapabilir
    • Performans optimizasyonu

      • SQL sorgusu çok yavaş; bir indeks eklemek yardımcı olur mu?
      • Ajan sorguyu benchmark eder ve (yalıtılmış bir geliştirme ortamında!) indeks ekleyip kaldırarak etkisini ölçer
    • Bağımlılık yükseltmeleri

      • Birden fazla bağımlılık yükseltmesinde geri kalınmış olmak
      • Test paketi sağlamsa ajanik döngü hepsini yükseltip breaking changes için gereken küçük güncellemeleri yapabilir
      • İlgili release notes kopyalarının sağlandığından veya ajanın bunları nerede bulacağını bildiğinden emin olun
    • Container boyutu optimizasyonu

      • Docker container’ı rahatsız edici derecede büyüktür
      • Ajan farklı taban image’ları dener ve Dockerfile üzerinde yineleme yaparak küçültmeye çalışırken testleri geçer durumda tutar
  • Ortak tema: otomatik testler

    • Tüm bunların ortak teması otomatik testlerdir
    • Kodlama ajanları ve diğer LLM kodlama araçlarından alınabilecek değer, temiz biçimde geçen güçlü bir test paketiyle büyük ölçüde artar
    • Neyse ki LLM’ler, bunlar henüz yoksa bunları kurma sürecini hızlandırmada çok iyidir

Hâlâ çok yeni bir alan

  • Ajanik döngü tasarımı çok yeni bir beceridir
    • Claude Code ilk kez 2025 Şubat’ında yayımlandı
  • Buna net bir isim vermenin, bu konuda daha verimli konuşmalar yapmaya yardımcı olabileceği umuluyor
  • Bu araçları olabildiğince etkili kullanma konusunda keşfedilmesi gereken çok daha fazla şey var

Henüz yorum yok.

Henüz yorum yok.