Geliştiriciler artık üzerine yazılan durum dosyalarından veya gizli dosya çakışmalarından korkmadan aynı anda birkaç kodlama ajanı oturumu başlatabilirler. Tavsiye niteliğinde bir "paylaşım yapmayan" (share-nothing) desen, her ajanın çalışma alanını izole eder ve olası çakışmalar konusunda uyarır. Bu yaklaşım, katı kilitler yerine, örtüşen çalışmaları gerçekleşmeden önce işaretleyen hafif bir kayıt defteri (registry) kullanarak, bir oturum çöktüğünde bile iş akışlarının (pipelines) devam etmesini sağlar.

Paralel ajanlar neden sorun çıkarır

Tek bir depoda (repository) birden fazla otomatik kodlama asistanı çalıştırmak; kod üretimi, test veya refaktör işlemlerini hızlandırır. Uygulamada iki sorun hemen kendini gösterir.

  • Durum bozulması (State corruption) – İki ajan aynı durum dosyasına yazar; sonraki yazma işlemi öncekini geçersiz kılarak ilerlemeyi siler.
  • Dosya çakışması (File collision) – İki ajan, birbirlerinden habersiz aynı kaynak dosyasını düzenler. Çakışma, bir farkın (diff) farklılaşan değişiklikleri gösterdiği daha sonra ortaya çıkar.

Her iki sorun da geliştiricinin vaktini boşa harcar ve takibi zor hatalara (bugs) yol açabilir.

“Paylaşım yapmama” kuralı

Temel fikir basittir: Her ajan disk üzerinde kendine özel bir geçici çalışma alanına sahip olur ve yalnızca o oturuma ait dosyalara yazar. Her dal (branch) başına yalnızca kasıtlı olarak paylaşılan tek bir dosyaya izin verilir ve bu dosya "son yazan kazanır" (last-writer-wins) kuralını takip eder; yani en son hangi ajan yazarsa nihai içerik o olur.

Bir mevcudiyet katmanı (presence layer) her aktif oturumu takip eder:

  • Dal adı
  • İşlem gören dosyaların listesi
  • Son aktivite zaman damgası

Yeni bir oturum başladığında kayıt defterine danışır. Eğer başka bir oturum halihazırda aynı dosyalardan herhangi birini işliyorsa, geliştirici herhangi bir çalışma başlamadan önce bir uyarı alır.

Tavsiye niteliğinde (advisory) ve engelleyici (blocking) kilitler

Geleneksel kilit dosyaları bir çıkmaz sokak gibi davranır: Bir kilit alındığında, diğer tüm süreçler kilit serbest bırakılana kadar bekler. Sahibi olan oturum çökerse, kilit sonsuza kadar asılı kalabilir ve bu da bayat kilit dosyalarını manuel olarak arama zorunluluğu doğurur.

Tavsiye niteliğindeki model daha yumuşaktır. Potansiyel bir çakışma tespit edildiğinde bir uyarı verir ancak yeni oturumu durdurmaz. Eğer bir kayıt defteri girişi eskiyse —yani onu oluşturan süreç artık mevcut değilse— sistem yine de sadece uyarır ve devam edip etmeme kararını geliştiriciye bırakır.

Desen nasıl uygulanır

  1. Durumu yazara göre bölün – Her ajana geçici dosyalar ve durum için kendi dizinini verin. Paylaşılan dosyaları yalnızca gerçekten küresel veriler için ayırın ve "son yazan kazanır" kuralını sadece orada uygulayın.
  2. Başlatma sırasında farkındalık sağlayın – Bir ajan başlamadan önce mevcudiyet kayıt defterini okuyun ve talep edilen dosya listesini mevcut girişlerle karşılaştırın. Örtüşme bulunursa işlemi durdurun veya uyarı verin.
  3. Okuma sırasında canlılığı doğrulayın – Bir kayıt defteri girişine danışırken, kaydedilen süreç kimliğinin (process ID) işletim sisteminde hâlâ çalışıp çalışmadığını kontrol edin. Ölü süreçlere ait girişleri atın.
  4. Engelleyici yerine tavsiye niteliğinde olanı tercih edin – Kontrolün geliştiricilerde kalmasını sağlayın. Bir uyarı; devam etmelerine, duraklatmalarına veya iptal etmelerine olanak tanıyarak kilitlenmeleri (deadlock) önler.
  5. Bekleme durumlarını takip edin – Çok sayıda ajan aktif olduğunda, geliştiricinin dikkati darboğaz haline gelir. İşlerin yeniden önceliklendirilmesi için hangi ajanların insan girdisi beklediğini görüntüleyin.

Tüm bunlar, harici bir veri tabanına veya mesaj veri yoluna (message bus) ihtiyaç duymadan, düz bir JSON dosyaları dizini ile inşa edilebilir. Basit depolama formatı, sistemin denetlenmesini kolaylaştırır ve ortamlar arasında taşınabilir hale getirir.

Riskler ve karşı görüşler

Bazı ekipler, katı bir kilidin güvenliği garanti ettiğini savunabilir: Hiçbir şekilde iki ajan aynı dosyaya yazamaz. Bunun karşılığında ise dayanıklılık azalır; çöken oturumlar tüm iş akışını durduran sahipsiz kilitler bırakır.

Nelere dikkat edilmeli

Birden fazla yapay zeka destekli kod asistanını aynı anda yönetiyorsanız, "paylaşım yapmayan" tavsiye niteliğindeki desen, birbirlerinin ayağına basmalarını önlemek için pragmatik bir yol sunar. Durumu izole ederek, niyeti erkenden ortaya koyarak ve devam etme kararını insanlara bırakarak, bu yöntem güvenlik ile modern geliştirme süreçlerinin gerektirdiği esneklik arasında bir denge kurar.