89 puan yazan GN⁺ 2026-03-13 | 1 yorum | WhatsApp'ta paylaş
  • OpenAI içindeki bir ekibin, 5 ay boyunca manuel kod yazmadan bir yazılım ürününün dahili betasını geliştirip yayınladığı deneysel örnek; tüm kodlar Codex ajanı tarafından üretildi
  • 3 mühendisle başlayıp yaklaşık 1 milyon satır kod ve 1.500 pull request işlediler; mühendis başına günde ortalama 3,5 PR merge edildi
  • Mühendisin rolü doğrudan kod yazmaktan ortam tasarlama, niyeti açıkça belirtme ve geri bildirim döngüleri kurmaya kaydı; ajanların güvenilir biçimde çalışabileceği scaffolding’i kurmak temel unsur oldu
  • AGENTS.md, bir ansiklopedi değil içindekiler tablosu olarak kullanıldı; yapılandırılmış belgeler, linter’lar ve yapısal testlerle mimari tutarlılık mekanik olarak zorunlu kılındı
  • Ajan özerkliği arttıkça entropi yönetimi ve çöp toplama benzeri sürekli temizlik zorunlu hale geliyor; yazılım geliştirme disiplini koddan scaffolding’e kayıyor

Boş bir git deposunda başlayan deney

  • 2025 Ağustos sonlarında boş bir depoya ilk commit atıldı; ilk scaffold (depo yapısı, CI yapılandırması, biçimlendirme kuralları, paket yöneticisi ayarları, uygulama framework’ü) mevcut şablonlar temel alınarak Codex CLI içinde GPT-5 kullanılarak üretildi
  • Ajana depoda nasıl çalışacağını anlatan ilk AGENTS.md dosyası da doğrudan Codex tarafından yazıldı
  • En başından itibaren insanlar tarafından yazılmış mevcut bir kod olmadan, depo ajan tarafından şekillendirildi
  • 5 ay sonra uygulama mantığı, altyapı, araçlar, dokümantasyon ve dahili geliştirici yardımcı araçları genelinde yaklaşık 1 milyon satır kod içeriyordu
  • 3 kişilik küçük ekip yaklaşık 1.500 pull request açıp merge etti; bu da mühendis başına günde ortalama 3,5 PR verimine denk geliyor
  • Ekip 7 kişiye büyüdüğünde verim daha da arttı
  • Yüzlerce kullanıcı bunu her gün dahili olarak kullandı; dahili power user’lar da buna dahil
  • Geliştirme sürecinin tamamında insanlar koda doğrudan katkı yapmadı
  • "Manuel yazılmış kod yok" ifadesi ekibin temel felsefesi haline geldi

Mühendis rolünün yeniden tanımlanması

  • İnsanlar doğrudan kod yazmadığı için sistem, scaffolding ve kaldıraç merkezli farklı bir mühendislik işi gerekiyor
  • Başlangıçta ilerlemenin beklenenden yavaş olmasının nedeni Codex’in yetersizliği değil, ortamın eksikliği idi
    • Ajanın üst düzey hedeflere ulaşması için gereken araçlar, soyutlamalar ve iç yapı yeterli değildi
  • Mühendislik ekibinin ana görevi, ajanların faydalı işler yapmasını mümkün kılmaya dönüştü
  • Büyük hedefler daha küçük yapı taşlarına (tasarım, kod, inceleme, test vb.) bölündü; ajan bu blokları birleştirip daha karmaşık işleri çözdü; bu da derinlik öncelikli çalışma biçimi oldu
  • Başarısızlık halinde önemli soru “daha çok çabalamak” değil, "Hangi yetenek eksik ve bunu ajanın okuyup uygulayabileceği hale nasıl getiririz?" oldu
  • İnsanlar sistemle neredeyse tamamen prompt’lar üzerinden etkileşime girdi
    • İş tanımı verme, ajan çalıştırma, pull request açma gibi komutlar verildi
  • Bir PR’ı tamamlamak için Codex’ten kendi değişikliklerini yerelde incelemesi, yerelde ve bulutta ek ajan incelemeleri istemesi, geri bildirimlere yanıt vermesi ve tüm ajan incelemeciler tatmin olana kadar bunu yinelemesi istendi
    • Fiilen Ralph Wiggum Loop yaklaşımı
  • Codex bağlam toplamak için gh, yerel script’ler ve depo içi yerleşik yetenekler gibi standart geliştirme araçlarını doğrudan kullandı
  • İnsanların pull request incelemesi mümkün olsa da zorunlu değildi; zamanla inceleme işlerinin neredeyse tamamı ajanlar arasında yapılmaya başladı

Uygulamanın okunabilirliğini artırma

  • Kod üretim hacmi arttıkça insan QA kapasitesi darboğaza dönüştü
  • İnsan zamanı ve dikkati sabit bir kısıt olduğu için, uygulama arayüzü, log’lar ve uygulama metrikleri Codex’in doğrudan okuyup anlayabileceği şekilde ajanlara yetenek olarak eklendi
  • git worktree başına uygulama açma özelliği sayesinde Codex her değişiklik için ayrı bir instance çalıştırıp yönetebildi
  • Chrome DevTools Protocol, ajan runtime’ına bağlandı; DOM snapshot, screenshot ve gezinme işlemleri için yetenekler oluşturuldu
    • Böylece Codex hataları yeniden üretebildi, düzeltmeleri doğrulayabildi ve UI davranışı üzerine doğrudan akıl yürütebildi
  • Gözlemlenebilirlik araçları da aynı şekilde ele alındı
    • Log’lar, metrikler ve trace’ler, her worktree için geçici olarak tutulan yerel bir gözlemlenebilirlik yığını üzerinden Codex’e sunuldu
    • İş tamamlandıktan sonra log’lar ve metrikler silindi
    • Ajan, log’ları LogQL, metrikleri PromQL ile sorgulayabildi
  • Bu bağlam sağlandığında, “servisin başlangıcı 800 ms içinde tamamlansın” ya da “dört temel kullanıcı yolculuğunda hiçbir span 2 saniyeyi aşmasın” gibi prompt’ları işlemek kolaylaştı
  • Tek bir Codex çalıştırmasıyla 6 saatten uzun süre boyunca (çoğu zaman insanlar uyurken) tek bir görev üzerinde çalışılabildi

Depo bilgisini bir kayıt sistemi olarak kullanmak

  • Bağlam yönetimi, ajanların büyük ve karmaşık görevleri etkili biçimde yerine getirmesindeki en büyük zorluklardan biri
  • İlk ders şuydu: Codex’e 1.000 sayfalık bir kılavuz değil, bir harita vermek gerekir
  • “Tek büyük AGENTS.md” yaklaşımı denendi ve öngörülebilir biçimde başarısız oldu
    • Bağlam kıt bir kaynaktır: devasa yönerge dosyası görevleri, kodu ve ilgili belgeleri karmaşıklaştırarak ajanın ana kısıtları kaçırmasına veya yanlış kısıtlara göre optimize olmasına yol açtı
    • Çok fazla yönerge yönerge olmaktan çıkar: her şey “önemli” ise hiçbir şey önemli değildir; ajan kasıtlı keşif yerine yerel örüntü eşleme yapar
    • Çok hızlı bozulur: tek parça dev el kitabı, eski kuralların mezarlığına dönüşür; ajan neyin hâlâ geçerli olduğunu ayırt edemez
    • Doğrulaması zordur: tek bir blok; kapsam, tazelik, sahiplik ve çapraz bağlantı gibi mekanik kontroller için uygun değildir, bu yüzden drift kaçınılmazdır
  • Çözüm: AGENTS.md’yi bir ansiklopedi değil içindekiler tablosu gibi ele almak
  • Deponun bilgi tabanı, yapılandırılmış docs/ dizininde bir kayıt sistemi olarak yönetildi
  • Kısa bir AGENTS.md (yaklaşık 100 satır), bağlama eklenerek öncelikle harita görevi gördü ve daha derin, daha güvenilir bilgi kaynaklarına yönlendirdi
  • Tasarım dokümantasyonu; doğrulama durumu ve ajan öncelikli çalışma ilkelerini tanımlayan temel inançları içerdi ve sınıflandırılıp indekslendi
  • Mimari dokümantasyon, alanlar ve paket katmanları için üst düzey bir harita sundu
  • Kalite dokümantasyonu, her ürün alanını ve mimari katmanı derecelendirerek zaman içindeki boşlukları izledi
  • Planlar birinci sınıf artefaktlar olarak ele alındı
    • Geçici ve basit planlar küçük değişiklikler için kullanıldı
    • Karmaşık işler, ilerleme durumu ve karar kayıtlarıyla birlikte uygulama planlarına konup depoda saklandı
    • Devam eden planlar, tamamlanan planlar ve bilinen teknik borçlar aynı yerde, sürüm kontrollü olarak tutuldu
  • Bu sayede kademeli açığa çıkarma mümkün oldu: ajan en baştan yüklenmek yerine küçük ve kararlı giriş noktalarından başlayıp sonraki adımlara ilerledi
  • Mekanik uygulama: özel linter’lar ve CI işleri, bilgi tabanının güncel, çapraz bağlantılı ve doğru yapılandırılmış olduğunu doğruladı
  • Tekrarlı çalışan bir "doc-gardening" ajanı, eskiyen ya da geçersiz belgeleri inceleyip düzeltme için pull request açtı

Hedef ajan okunabilirliği

  • Depo tamamen ajanlar tarafından üretildiği için öncelik Codex’in okuyabilirliği oldu
  • İnsan mühendislerin amacı, ajanın doğrudan depo içinden tüm iş alanı üzerinde akıl yürütebilmesini sağlamaktı
  • Ajan açısından, çalışma sırasında bağlam içinde erişilemeyen şey fiilen yok hükmündedir
    • Google Docs, chat thread’leri ya da insanların zihnindeki bilgi sistem tarafından erişilemez
    • Yalnızca depodaki sürüm kontrollü artefaktlara (kod, Markdown, şema, uygulama planı) erişilebilir
  • Slack tartışmalarında üzerinde uzlaşılmış bir mimari desen bile, ajan tarafından aranıp bulunamıyorsa okunamaz kabul edilir
  • Codex’e daha fazla bağlam vermek, geçici yönergelerle yük bindirmek değil; doğru bilgiyi düzenleyip görünür kılarak ajanın akıl yürütmesini sağlamak demektir
  • Ürün ilkeleri, mühendislik normları ve ekip kültürü (emoji tercihleri dahil) konusunda yeni bir ekip üyesini işe alır gibi ajanı bilgilendirmek daha iyi sonuç verdi
  • Deponun içinde tamamen içselleştirilebilen ve üzerinde akıl yürütülebilen bağımlılıklar ve soyutlamalar tercih edildi
  • “Sıkıcı” teknolojiler, bağlanabilirlikleri, API istikrarları ve eğitim verisindeki temsilleri sayesinde ajanlar için genellikle daha kolay modelleniyor
  • Bazı durumlarda, kamusal kütüphanelerin opak upstream davranışına güvenmek yerine ajanın işlevin bir alt kümesini yeniden uygulaması daha ucuz oldu
    • Örnek: genel amaçlı p-limit tarzı bir paket yerine, OpenTelemetry enstrümantasyonuyla sıkı entegre, test kapsamı %100 olan ve runtime’da tam beklendiği gibi çalışan özel bir map-with-concurrency helper’ı
  • Sistemi, ajanların inceleyebileceği, doğrulayabileceği ve doğrudan değiştirebileceği hale ne kadar çok getirirseniz, yalnızca Codex değil başka ajanlarda da (ör. Aardvark) kaldıraç o kadar artıyor

Mimariyi ve tercihleri zorunlu kılmak

  • Sadece dokümantasyon, ajanlar tarafından üretilen bir kod tabanını tamamen tutarlı tutmaya yetmiyor
  • Uygulamayı mikro düzeyde yönetmeden değişmezleri zorunlu kılarak, temel sağlam tutulurken ajanların hızlı teslimat yapması sağlandı
    • Örneğin, Codex’in sınır noktalarda veri biçimlerini ayrıştırması istendi ama bunun nasıl yapılacağı (hangi spesifik kütüphaneyle) ayrıntılı biçimde belirtilmedi; model zaten Zod’u tercih etme eğiliminde
  • Ajanlar, katı sınırlar ve öngörülebilir yapı bulunan ortamlarda en iyi performansı gösteriyor
  • Uygulama, katı bir mimari model etrafında kuruldu
    • Her iş alanı, sıkı biçimde doğrulanan bağımlılık yönleri ve sınırlı izinli edge kümeleriyle sabit bir katman setine ayrıldı
    • Kod akışı Types → Config → Repo → Service → Runtime → UI sırasını izledi
    • Kimlik doğrulama, connector’lar, telemetry ve feature flag gibi çapraz konular, Providers adlı tek ve açık bir arayüz üzerinden içeri alındı
    • Bunun dışındaki her şey yasaktı ve mekanik olarak zorunlu kılındı
  • Bu kısıtlar, Codex’in ürettiği özel linter’lar ve yapısal testler ile uygulandı
  • Bu ölçekte mimari, normalde yüzlerce mühendise ulaşıldığında ertelenen bir şey olabilir; ancak kodlama ajanları için başlangıç önkoşulu oldu
  • Özel lint kurallarıyla yapılandırılmış logging, şema ve tür adlandırma kuralları, dosya boyutu sınırları ve platforma özgü güvenilirlik gereksinimleri statik olarak uygulandı
    • Lint özel olduğu için hata mesajları yazılıp ajan bağlamına düzeltme yönergeleri enjekte edilebildi
  • İnsan merkezli iş akışlarında bu kurallar aşırı ayrıntılı ya da kısıtlayıcı görünebilir; ancak ajan kullanımıyla etkileri katlanarak arttı
  • Kısıtlar, neyin önemli neyin önemsiz olduğunu net biçimde ayırdı
    • Bu, büyük bir mühendislik platformu organizasyonunu yönetmeye benziyor: merkezde sınırlar, yerelde özerklik
  • Ortaya çıkan kod her zaman insanların stil tercihleriyle örtüşmeyebilir; ama çıktı doğru, bakımı yapılabilir ve ajan çalışma zamanında okunabilir ise kriter karşılanmış sayıldı
  • İnsan tercihleri sisteme sürekli geri beslendi
    • Review yorumları, refactor PR’ları ve kullanıcı kaynaklı hatalar ya dokümantasyon güncellemelerine işlendi ya da doğrudan araçlara kodlandı
    • Dokümantasyon yetersiz kaldığında kural koda yükseltildi

Merge felsefesindeki değişim

  • Codex’in üretim hızı arttıkça geleneksel mühendislik normları ters etki yaratmaya başladı
  • Depo, minimum sayıda engelleyici merge kapısı ile işletildi
  • Pull request’lerin ömrü kısa tutuldu; test kararsızlıkları ilerlemeyi belirsiz süre durdurmak yerine takip eden çalışmalarda çözüldü
  • Ajan çıktısının insan dikkatini çok aştığı sistemlerde düzeltme maliyeti ucuz, bekleme maliyeti pahalıdır
  • Bu yaklaşım düşük hacimli ortamlarda uygun olmayabilir; doğru dengeyi kurmak gerekir

“Ajan üretimli” ifadesinin gerçek kapsamı

  • Kod tabanının Codex ajanı tarafından üretildiğini söylemek, kod tabanındaki her şeyin buna dahil olduğu anlamına geliyor
    • Ürün kodu ve testler
    • CI yapılandırması ve release tooling
    • Dahili geliştirici araçları
    • Dokümantasyon ve tasarım geçmişi
    • Değerlendirme harness’ı
    • Review yorumları ve yanıtları
    • Deponun kendisini yöneten script’ler
    • Üretim dashboard tanım dosyaları
  • İnsanlar her zaman döngünün içinde kaldı ama artık farklı bir soyutlama katmanında çalıştı
    • İş önceliklendirme, kullanıcı geri bildirimini kabul kriterlerine dönüştürme ve sonuçları doğrulama
  • Ajan zorlandığında bu, araçlar, guardrail’ler ya da dokümantasyondaki eksikleri ortaya çıkaran bir sinyal olarak görüldü; düzeltmeler her zaman bizzat Codex tarafından yazdırılıp depoya geri verildi
  • Ajan; review geri bildirimlerini çekme, satır içi yanıt yazma, güncellemeleri push etme, hatta kendi pull request’ini squash edip merge etme işlerini de yaptı

Özerklik düzeyinin artması

  • Test, doğrulama, inceleme, geri bildirim işleme ve kurtarma gibi daha fazla geliştirme döngüsü doğrudan sisteme kodlandıkça önemli bir eşik aşıldı
  • Ajanın tek bir prompt ile yapabildiği işler şunlar oldu:
    • Kod tabanının mevcut durumunu doğrulamak
    • Bildirilen hatayı yeniden üretmek
    • Başarısız durumu gösteren bir video kaydı almak
    • Düzeltmeyi uygulamak
    • Uygulamayı çalıştırıp düzeltmeyi doğrulamak
    • Çözümü gösteren ikinci bir video kaydı almak
    • Pull request açmak
    • Ajan ve insan geri bildirimlerine yanıt vermek
    • Build hatalarını tespit edip düzeltmek
    • Yalnızca karar gerektiğinde bir insana escalate etmek
    • Değişikliği merge etmek
  • Bu davranışlar, bu deponun özel yapısına ve araçlarına güçlü biçimde bağlı; benzer yatırım olmadan genellenebileceği varsayılmamalı

Entropi ve çöp toplama

  • Ajanın tam özerkliği yeni sorunlar yaratıyor: Codex depoda zaten bulunan desenleri (bunlar tutarsız ya da optimum olmayan desenler olsa bile) kopyalıyor; zamanla drift kaçınılmaz hale geliyor
  • Başlangıçta insanlar bunu elle yönetti; her cuma (haftanın %20’si) “AI slope” temizliğine zaman ayırdılar
    • Beklendiği gibi ölçeklenmedi
  • Alternatif olarak “altın kurallar” doğrudan depoya kodlandı ve düzenli temizlik süreçleri kuruldu
    • (1) Değişmezleri merkezden yönetmek için elde yazılmış helper’lar yerine paylaşımlı utility paketleri tercih edildi
    • (2) Verileri “YOLO-style” keşfetmek yerine sınırların doğrulanması ya da tiplenmiş SDK’lar kullanıldı; böylece ajanın tahmin ettiği şekillere yanlışlıkla bağımlı sistemler kurmasının önüne geçildi
  • Düzenli olarak sapmaları kontrol eden, kalite notlarını güncelleyen ve hedefli refactor PR’ları üreten arka planda çalışan Codex işleri işletildi
    • Bunların çoğu 1 dakikadan kısa sürede incelenip otomatik merge edilebildi
  • Bu yaklaşım çöp toplama gibi çalıştı: teknik borç yüksek faizli kredi gibidir; faiz birikmeden önce azar azar ve sürekli geri ödemek en etkili yöntemdir
  • İnsan tercihleri bir kez yakalandığında, kodun tüm satırlarına sürekli uygulanabildi; kötü desenlerin günlerce ya da haftalarca yayılması yerine her gün yakalanıp düzeltildi

Süren öğrenimler ve gelecekteki zorluklar

  • Bu strateji OpenAI içinde, dahili yayın ve benimseme aşamasına kadar iyi çalıştı
  • Gerçek kullanıcılar için gerçek ürünler geliştirerek bu yatırımın gerçek dünyaya oturması ve uzun vadeli bakım yapılabilirliğin sağlanması gerekiyor
  • Henüz bilinmeyen nokta şu: tamamen ajan üretimli sistemlerde mimari tutarlılık yıllar içinde nasıl evrilecek
  • İnsan muhakemesinin en büyük etkiyi nerede yarattığı ve bu muhakemenin nasıl kodlanıp bileşik kaldıraç yaratacağı hâlâ öğreniliyor
  • Modellerin yetenekleri gelişmeye devam ettikçe bu sistemin nasıl evrileceği de belirsiz
  • Yazılım geliştirme hâlâ disiplin gerektiriyor; ancak bu disiplin artık koddan çok scaffolding tarafında ortaya çıkıyor
  • Kod tabanı tutarlılığını koruyan araçlar, soyutlamalar ve geri bildirim döngüleri giderek daha kritik hale geliyor
  • Şu anda en zor görev, ajanların karmaşık ve güvenilir yazılımları büyük ölçekte geliştirip sürdürmesine yardımcı olacak ortamları, geri bildirim döngülerini ve kontrol sistemlerini tasarlamak

1 yorum

 
ragingwind 2026-03-13

40 gün, 1 milyon satır, 13 milyar token — Lablup CEO’su Shin Jeong-gyu’nun keşfettiği agentic iş akışının gerçeği - Park Jae-hong’un Silikon Vadisi - https://wikidocs.net/blog/@jaehong/8206/