Loop engineering: ajanlar artık kendi döngüsünü kuruyor

Bir ajanın insan onayı beklemeden kendi görev döngüsünü yürütmesi ne demek, bu döngüyü kuran beş bileşen ve döngüyü sahaya çıkarmadan önce kurulması gereken denetim mekanizmaları.

Sabah sekizde kendi işine başlayan ajan

Bir kod ajanı düşün. Sabah sekizde, kimse ona bir şey söylemeden işe koyuluyor. Dünkü hataları tarıyor, düzeltmeyi yazıyor ve kendi işini kontrol etmesi için ikinci bir ajanı görevlendiriyor.

Anthropic bu düzeni geçtiğimiz aylarda kendi mühendislik ekibinde denedi. Anlamlı inceleme yorumu alan pull request oranı yüzde 16'dan yüzde 54'e çıktı, mühendisler çıkan bulguların yüzde birinden azına itiraz etti. Beni asıl ilgilendiren kısım oranlar değil: insan artık zincirin her halkasında durmuyor.

Bu düzenin bir adı var, loop engineering. Fikir kısaca şu: ajan görevi aldıktan sonra her adımda onay beklemiyor, kendi kendini yönlendirerek işini yürütüyor.

Önce klasik akışı hatırlayalım

Bir ajan ne yapıyor? Kendisine verilen görevi alıyor, kullanabileceği araçları seçiyor, adımları planlıyor ve sonucu üretiyor. Buraya kadar tanıdık.

Alıştığımız akışta ise şu var: bir insan ajanı başlatıyor, görevini veriyor, ajan çalışıyor, sonucu sunuyor. İnsan sonucu inceliyor, onaylıyor, belki yeni bir görev veriyor. Her halkada bir insan müdahalesi duruyor.

Bu akış güven veriyor, doğru. Ama bedeli hız ve özerklik oluyor. Loop engineering tam burada soruyu değiştiriyor: bazı işler gerçekten her adımda bir insanı gerektiriyor mu?

"Loop" neden bu kelime

Kelimenin gücü şurada: görevler birbirini tetikliyor. Bir görev bitince ajan sıradakini kendisi belirliyor ve başlatıyor.

Gözlem, akıl yürütme, uygulama ve değerlendirme adımları arka arkaya dönüyor. Ajan sonucu görüyor, kendi kendini yeniden promptluyor ve hedefe varana kadar aynı çemberi çeviriyor. Manuel promptun yerini hedefe bağlı otomasyon alıyor.

Burada gözden kaçan bir incelik var. İnsan tamamen çıkmıyor; döngüyü başlatıyor ve genel yönü belirliyor. Başlatıldıktan sonra akışı ajan sürdürüyor.

Kapsam insandan ajana kayıyor

Bu konuyu anlamak için en iyi çerçeve kapsam kayması. Ajanlardan ne kadar çok görev yapmasını isterseniz, işi başlatma inisiyatifi de o kadar insandan ajana kayıyor.

En başta her görevi insan tanımlıyordu. Sonra ajanlar bütün bir görevi uçtan uca yapmaya başladı. Loop engineering ile bir adım daha ileri gidiyoruz, çünkü ajan sıradaki görevinin ne olduğuna kendisi karar veriyor.

Bu bir ivme, tek seferlik bir sıçrama değil. İnisiyatif ajana geçtikçe siz temel işlerden çekiliyorsunuz, ama sorumluluk da onunla birlikte kayıyor. Yazının sonundaki denetim bölümü tam olarak bu yüzden var.

Döngüyü ayakta tutan beş bileşen

Loop engineering tek bir araçla kurulmuyor. Beş bileşenin bir arada çalışmasıyla ortaya çıkıyor ve her biri döngünün farklı bir zaafını kapatıyor.

Automation: döngüyü fiilen başlatan şey

Fikir tanıdık. Sisteminizdeki cron görevleri nasıl belirli bir saatte komut çalıştırıyorsa, burada da bir zaman ya da aralık ajana göreve gitmesi için sinyal veriyor.

Bir kod ajanı sabah sekizde GitHub'a bakıp dünkü CI hatalarını kontrol etmek üzere promptlanıyor. Başka bir zamanlama yeni açılan issue'ların önceliklendirmesini istiyor, bir başkası projede sessizce büyüyen hataları avlıyor.

Tetikleyici sadece saate bağlı olmak zorunda değil. Saniyelerle ölçülen kısa aralıklı bir nabız, bir webhook'tan gelen olay ya da doğrudan bir hedef de döngüyü başlatabiliyor. Ortak noktaları şu: hiçbiri bir insanın "şimdi şunu yap" demesini beklemiyor.

Work tree: her ajan kendi adasında

Git'teki worktree gibi düşün. Ajanın kendi branch'i üzerinde ayrı bir çalışma dizini oluyor ve yaptığı değişiklikler başka ajanların ortamına dokunmuyor.

Bunu neden önemsiyoruz? Bir web projesinde küçücük bir değişikliğin başka bileşenleri nasıl etkilediğini hepimiz gördük. Şimdi bunu çoğaltın, çünkü aynı anda birden fazla ajan birden fazla görev yürütüyor olabilir. İzolasyon yoksa birinin değişikliği diğerinin runtime'ını bozuyor.

Asıl güvence şu: ajan bir şeyi kırdığında ana dalınızı değil, bir kopyayı kırıyor. İyi haber, günümüzdeki kod ajanlarının çoğu bu desteği zaten içinde barındırıyor.

Skills: işin bilgisi, ajanın elinin altında

Bir skill, markdown ile yazılmış bir dosya. İçinde belirli bir işi yapmanın yöntemleri ve kural sınırları duruyor. Her seferinde bir talimat duvarı yapıştırmanın alternatifi olarak düşünebilirsin: bilgiyi bir kez dosyaya koyuyorsun, ajan gerektiğinde onu çağırıyor.

İşin zarif tarafı yükleme biçiminde. Ajan açılışta yalnızca her skill'in adını ve kısa açıklamasını görüyor, yani birkaç düzine token. Dosyanın gövdesi o skill tetiklenene kadar diskte bekliyor. Böylece yüzlerce skill'i yanınızda taşırken bağlam pencereniz dolmuyor.

Plugins ve connectors: dış dünyaya açılan kapı

Bunu skills'ten ayırmak önemli. Skills bilgi veriyor, pluginler erişim veriyor.

Bir kod ajanı Notion'daki dokümanlara, Stripe'daki ödeme verilerine ya da şirketin veritabanına ulaşabiliyor. Bu bağlantılar genellikle MCP gibi standart bir protokol üzerinden kuruluyor ve hangi sistemlere açılacağını projeye göre siz seçiyorsunuz.

Loop engineering ile bu bileşenin ağırlığı artıyor. Tam özerk bir ajan yalnızca yerel dosyalarla iş göremez; işini bitirmek için gereken dış sistemlere de uzanabilmesi gerekiyor. Erişim genişledikçe ajanın etki alanı da büyüyor.

Sub agents: işi böl, sonra denetlet

Ana ajan görevi parçalara bölüyor, alt ajanları görevlendiriyor, onlar çalışıp sonucu raporluyor. Döngü bağlamında bu yapı iki iş görüyor.

Birincisi hız. Büyük bir görev parçalandığında alt ajanlar paralel çalışıyor, üstelik her biri temiz bir bağlam penceresiyle açıldığı için ana döngünün hafızası dolmuyor.

İkincisi, bence daha değerli olanı, bağımsız denetim. Anthropic'in kendi ölçümlerinde bin satırdan büyük değişikliklerin yüzde 84'ünde bulgu çıkmış, değişiklik başına ortalama 7,5 sorunla. Elli satırın altındaki değişikliklerde bu oran yüzde 31'e, sorun sayısı 0,5'e düşmüş. Ortalama inceleme süresi yaklaşık 20 dakika. Yani iş büyüdükçe dışarıdan bakan bir göze olan ihtiyaç da büyüyor, hem de doğrusal olmayan bir hızla.

Tek doğru yapı yok

Şunu netleştirelim: loop engineering'i neyin tam olarak oluşturduğunu belirleyen resmi bir kurum ya da katı bir standart bulunmuyor. Canlı gelişen bir alan ve farklı projelerde farklı biçimler alıyor.

İyi bir örnek vereyim. Bazı yapılar beş bileşenin üzerine bir bellek katmanı ekliyor. Ajan her turun sonunda ne yaptığını bir markdown dosyasına ya da bir görev panosuna yazıyor, bir sonraki turda oradan devam ediyor. Bu katmanın asıl işlevi geçmişi hatırlamak değil, aynı hatayı ikinci kez yapmasını engellemek.

Yapılar değişse de öz aynı kalıyor: kapsam insan girişiminden ajan girişimine doğru büyüyor.

Kapsam büyüdükçe hatalar da birikiyor

Yazının en kritik kısmı burası. Ajan giderek daha fazla işi kendi başına yaptıkça, fark edilmeyen hataların birikme riski de büyüyor. İnsan döngüden uzaklaştıkça hatayı yakalayacak göz azalıyor.

Asıl tehlike hataların birbirine eklenmesi. Küçük bir yanlış karar bir sonraki adımda fark edilmeden büyüyor, birkaç tur sonra elinizde nereden geldiğini bilmediğiniz bir sonuç kalıyor. Bu yüzden denge ve denetim mekanizmalarını, yani checks and balances'ı döngüyle birlikte kurmak gerekiyor. Sonradan eklenen denetim, birikmiş hatayı geri almıyor.

Uygulamada bu üç şeye denk geliyor:

  • Döngüye bir tur tavanı koyuyorsunuz. Elli tur civarı makul bir başlangıç değeri, bir araştırma bulgusu değil.
  • Bitiş şartını ajanın kanaatine değil sert bir ölçüye bağlıyorsunuz. Sıfır test hatası gibi.
  • Yalnızca üretilen kodu değil, kod tabanının bütününü kontrol eden bağımsız bir doğrulama adımı ekliyorsunuz.

Toparlayalım

Loop engineering, ajanların insan onayı olmadan kendi kendini yönlendirdiği görev döngülerine verilen ad. Automation döngüyü zamana ya da bir olaya bağlıyor, work tree çarpışmayı engelliyor, skills bilgiyi kalıcı yapıyor, pluginler dış sistemlere kapıyı açıyor, sub agents hem işi bölüyor hem de ana ajanı denetliyor. İsterseniz üzerine bir bellek katmanı ekleyip döngüye turlar arası hafıza kazandırabilirsiniz.

Ama hepsinden önce: checks and balances kurmadan döngüyü sahaya çıkarmayın. Bunu kurduğunuzda ajan iş akışınıza güç katıyor. Kurmadığınızda ise temizlemeniz gereken yeni bir yük oluyor.

Kaynaklar

İlgili yazılar