Codex'i Düzeltmek: Bir Konsensüs Döngüsü

Sadece kod önermekten daha fazlasını yapan bir ajan döngüsü oluşturdum. Kod yazıyor, onu inceliyor ve kendi pull request'lerini (PR) birleştiriyor.

Test etmek için döngüyü codex CLI'ın bir fork'una yönlendirdim. Ajanların yazılımı kendilerinin düzeltmesini denemelerine izin verdim. Bu tamamen bir deney. Fork'un hiç kullanıcısı ve yıldızı yok. Bu bir ürünle değil, mekanizmayla ilgili.

Döngünün çalışma şekli şöyledir:

  • Giriş (Intake): Üst akıştan (upstream) gelen bir hata, fork içinde bir issue haline gelir. Döngü, yalnızca bitirebileceği küçük, mekanik hataları seçer.
  • Çözücüler Tartışır (Solvers Argue): Birden fazla ajan farklı düzeltmeler önerir. Bir çözücü en küçük değişikliği ister. Bir diğeri temiz bir yapı ister. Üçüncüsü ise kod eklemek yerine mevcut kodu silmek ister. Anlaşamazlar.
  • Hakem Karar Verir (Judge Arbitrates): Bir hakem tartışmayı okur. Eğer çözücüler anlaşamazsa, hakem onları daha fazla tur için geri gönderir. Hakem ayrıca belirli fikirleri neden reddettiğini de kaydeder.
  • Uygula ve Birleştir (Implement and Merge): Konsensüse ulaştıklarında, döngü yamayı (patch) yazar, testleri çalıştırır ve bir PR açar. Testler geçerse, işlemi kendisi birleştirir.

Bunu issue #34'te iş başında görebilirsiniz. Ajanlar bir eşzamanlılık (concurrency) hatasını tartıştı. Bir karara varmadan önce üç tur hakemlik sürecinden geçtiler. Döngü, bir insanın tek bir satır kod yazmasına gerek kalmadan gerçek bir düzeltme ve bir regresyon testi üretti.

İlginç bir sonuç PR #16'da gerçekleşti. Döngü, bildirilen bir hatayı yeniden üretemedi (reproduce). Sahte bir düzeltme uydurmak yerine, davranışı sabitlemek için sadece bir test ekledi ve durdu. Ne zaman yama yapmaması gerektiğini bilen bir döngü, her zaman bir diff üreten bir döngüden daha kullanışlıdır.

Döngü şu ana kadar yaklaşık 16 PR birleştirdi. UTF-8 işleme ve komut düzeltmeleri gibi küçük görevleri hallediyor. Tüm bir kod tabanını sürdürmüyor ancak küçük, sınırları belli hataları baştan sona kapatıyor.

Kuralları hala insanlar koyuyor ve işi inceliyor. Her PR'ı hala biz kontrol ediyoruz. Kod otomatiktir ancak dikkat insan odaklıdır.

Tüm süreci GitHub'da görebilirsiniz. Tartışmayı görmek için issue #34 ve PR #37'ye göz atın.

Kaynak: https://dev.to/nwnwnw413/codex-fixing-codex-a-consensus-loop-that-argues-judges-and-merges-its-own-prs-11bh

İsteğe bağlı öğrenme topluluğu: https://t.me/GyaanSetuAi