- 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
-
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.