3 puan yazan GN⁺ 2026-01-24 | 1 yorum | WhatsApp'ta paylaş
  • Codex CLI, yerel ortamda güvenli ve verimli biçimde yüksek kaliteli yazılım değişiklikleri gerçekleştiren bir ajan olarak tasarlanmıştır
  • Temel yapı olan ajan döngüsü(agent loop), kullanıcı girdisini, model akıl yürütmesini ve araç çağrılarını döngüsel olarak birbirine bağlayarak anlamlı işler yürütür
  • Döngü sırasında oluşturulan prompt yapısı, context window yönetimi ve prompt caching, performans ve kararlılığın temel unsurları olarak çalışır
  • Codex, modelle Responses API üzerinden iletişim kurar ve her istek, stateless çalışmayı koruyan tam bir JSON payload'undan oluşur
  • Bu yapı, Zero Data Retention(ZDR), prompt caching, otomatik sıkıştırma(compaction) gibi gelişmiş özellikleri mümkün kılar ve büyük ölçekli ajan tasarımının temelini oluşturur

Codex ajan döngüsüne genel bakış

  • Codex CLI, kullanıcı, model ve araçlar arasındaki etkileşimi orkestre eden bir döngü yapısı etrafında çalışır
    • Kullanıcı girdisini alır ve modele iletilecek prompt'u oluşturur
    • Model bir yanıt üretir ya da araç çağrısı(tool call) isterse, ajan bunu çalıştırır ve sonucu tekrar prompt'a ekler
    • Model artık araç çağrısı yapmayıp bir assistant mesajı ürettiğinde tek bir tur sona erer
  • Her tur, konuşmanın(conversation) bir parçasıdır; önceki mesajlar ve araç çağrısı geçmişi bir sonraki isteğin prompt'una dahil edilir
  • Prompt uzunluğu, modelin context window sınırından etkilendiği için Codex bunu yönetmek zorundadır

Responses API ve Codex'in iletişim yapısı

  • Codex CLI, model akıl yürütmesi için Responses API'ye HTTP isteği gönderir
    • API endpoint'i ayara göre değişir ve OpenAI, ChatGPT, Azure, yerel(LM Studio, Ollama vb.) ortamlarda kullanılabilir
  • API isteği bir JSON payload'undan oluşur ve başlıca alanlar şunlardır
    • system/developer mesajları: modelin temel bağlamını ayarlar
    • instructions: modelin çağırabileceği araçların listesi
    • tools: Codex CLI, Responses API ve kullanıcı tarafından(MCP sunucusu vb.) sağlanan araç tanımları
    • input: konuşma geçmişi ve ortam bilgilerini içeren mesaj listesi
  • Codex, ~/.codex/config.toml ayarını ve proje içindeki AGENTS.md, skills dosyalarını okuyarak kullanıcı yönergeleri ile ortam bilgilerini otomatik olarak ekler

Prompt oluşturma ve olay işleme

  • Codex, her mesajı JSON nesnesi olarak(type, role, content) oluşturup Responses API'ye gönderir
  • Sunucu, bu JSON'a dayanarak model prompt'unu oluşturur ve yanıtı SSE(Server-Sent Events) akışı olarak döndürür
    • response.output_text.delta olayı streaming çıktı için kullanılır
    • response.output_item.added olayı, döngüyü sürdürmek için bir sonraki isteğin input alanına eklenir
  • Önceki prompt'un yeni prompt'un tam prefix'i olacak şekilde tasarlanır; böylece prompt caching kullanılabilir

Performans optimizasyonu: caching ve stateless tasarım

  • Codex, previous_response_id kullanmadığı için tamamen stateless bir istek yapısını korur
    • Bu, Zero Data Retention(ZDR) müşterilerine destek verilmesini ve veri saklamanın en aza indirilmesini mümkün kılar
  • Prompt caching, aynı prefix'i yeniden kullanarak sampling maliyetini doğrusal hale getirir(linear)
    • Cache hit yalnızca prompt'ta tam prefix eşleşmesi olduğunda gerçekleşir
    • Araç listesi, model, sandbox ayarları ve çalışma dizini değişiklikleri cache miss'e neden olur
  • MCP araçlarındaki dinamik değişiklikler cache kaybına yol açabildiğinden, Codex değişiklikleri yeni mesaj ekleme yöntemiyle yansıtır

Context window yönetimi ve otomatik sıkıştırma(compaction)

  • Konuşma uzadığında context window aşımını önlemek için konuşma sıkıştırması(compaction) yapılır
    • Başlangıçta /compact komutuyla manuel özetleme yapılıyordu, ancak artık Responses API'nin /responses/compact endpoint'i otomatik olarak kullanılıyor
    • Bu endpoint, modelin anlayışını korumak için type=compaction öğesi ve şifrelenmiş encrypted_content döndürür
  • Codex, auto_compact_limit aşıldığında konuşmanın sürekliliğini korumak için sıkıştırmayı otomatik olarak çalıştırır

Sonuç ve gelecekteki yönelim

  • Codex'in ajan döngüsü, model akıl yürütmesini, araç çağrılarını, caching'i ve context yönetimini birleştiren temel yapıdır
  • Bu yapı, yüksek performanslı, stateless ve güvenlik odaklı ajan tasarımını mümkün kılar
  • Sonraki yazılarda CLI mimarisi, araç kullanımının uygulanışı ve sandbox modeli gibi Codex'in iç yapısı daha ayrıntılı ele alınacaktır

1 yorum

 
GN⁺ 2026-01-24
Hacker News yorumları
  • Bu blog yazısının en iyi yanı, hiç de şaşırtıcı olmaması. Codex CLI açık kaynak olduğu için tersine mühendislik yapmadan içine bakabiliyorsunuz
    Eric Traut'un (Pyright ile tanınan geliştirici) iletişimi de harika. Issue ve PR'larda aktif biçimde yer alıyor
    GitHub deposu

    • Geçen yıl Codex CLI açık kaynak olarak yayımlandığında gerçekten şaşırmıştım. TypeScript'ten Rust'a taşınan codex-rs da dahil olduğu için, kodlama ajanlarının nasıl çalıştığını öğrenmek isteyenler için çok faydalı
      Ben de CLI'ye birkaç iyileştirme katkısında bulundum; release'leri ve PR'ları düzenli takip ederek bilgimi genişletiyorum
    • Görünüşe göre birçok kişi Claude Code'un tescilli yazılım olduğunu bilmiyor
    • Dürüst olmak gerekirse, Claude Code'un açık kaynak olmamasının nedeni kod kalitesinin o kadar kötü olması ki utanıyor olmaları diye düşünüyorum. Aylık 200 dolarlık abonelik kullanıyorum ama CLI yavaş ve sık sık bozuluyor; yakında iptal edeceğim
    • Codex CLI'nin yalnızca uzak mantığı çağıran bir frontend olup olmadığını, yoksa çevrimdışıyken de tamamen çalışıp çalışamadığını merak ediyorum. Ağırlıkları FLOW lisansıyla sunup sunmadıklarını ve build sürecini belgelendirip belgelendirmediklerini de bilmek isterim
  • İlginç olan nokta, sıkıştırmanın (compaction) “modelin olası anlayışını koruyan şifrelenmiş mesajlar” ile yapılması
    Codex, auto_compact_limit aşıldığında bu endpoint'i kullanarak konuşma bağlamını verimli biçimde küçültüyor

    • Codex'in compaction endpoint'i sektörün en iyileri arasında. Claude'unki ise berbata yakın
    • compactor endpoint'inin bağımsız olarak kullanılıp kullanılamayacağını merak ediyorum. Bizim alana özel bir ajan döngümüz var ve Codex'inki muhtemelen kendi sıkıştırma sistemimizden daha iyi performans verir
    • Bu özelliğin OpenAI modelleri dışındaki modellerde de çalışıp çalışmadığını bilmek istiyorum
  • Codex'in içine bakarken beni şaşırtan şey, reasoning token'larının ajan araç çağrısı döngüsünde korunmasına rağmen kullanıcı turu her değiştiğinde silinmesi oldu
    Bu yüzden bağlam birden fazla tur boyunca korunabiliyor ama birbiriyle ilişkili kullanıcı istekleri arasında bazı bağlamlar kaybolabiliyor
    Ben modelin ilerleme durumunu, planını veya debug notlarını bir Markdown dosyasına kaydetmesini sağlıyorum; böylece bu dosya birden fazla bağlam penceresi arasında bir tür anlık görüntü gibi çalışıyor

    • Bu, API yoluna göre değişiyor. Chat completions senin dediğin gibi ama responses v1 API'de tam tersi. reasoning token'ları bir sonraki mesaj gönderildiğinde de korunuyor. Ancak xhigh modu bağlamı çok daha hızlı tüketiyor
    • reasoning token'larını korumamak aslında daha iyi bir karar olabilir. Aksi halde kullanıcıya görünmeyen bağlam sürekli birikir ve modelle kullanıcının anlayışı arasında uyuşmazlık riski doğar
    • Ben geçmiş konuşmaları yansıtan bir Codex Reflect Skill yaptım; böylece paralel oturumlarla bağlam oluşturuyorum
      GitHub deposu
    • Kayıtları kodla birlikte tutmak kullanışlı ama ekip ortamında veya aynı anda birden çok branch üzerinde çalışırken sorun çıkarıyor. Sıradaki denemem, bu veriyi harici depolamaya sahip bir daemon'a ayırıp CLI istemcisiyle erişmek olacak
    • Emacs'in agent-shell'ini sık kullanıyorum; tüm konuşma geçmişini saklıyor. Bu sayede kolayca “önceki konuşmaya bak” diyebiliyorum. Log tutan ajan değil Emacs olduğu için bir şeyin eksik kalmasından endişe etmiyorum
  • Codex'te gerçekten istediğim şey Copilot tarzı checkpoint özelliği. GitHub'da bununla ilgili birkaç issue var (#2788, #3585) ama takım için öncelik gibi görünmüyor

    • Gemini CLI'da bu özellik zaten var
    • Codex ekibi GitHub'da öncelikleri emoji upvote sayısına göre belirlediklerini söylüyor. İstediğiniz bir özellik varsa mutlaka upvote vermelisiniz
  • Ajan döngüsünde kullanıcı talimatları toplanırken, çok turlu konuşmalarda bağlamı korumayı nasıl yönettiklerini merak ediyorum. Kullanıcı gereksinimleri değiştiğinde dinamik olarak uyarlanan teknikler deneyip denemediklerini de bilmek isterim

  • Codex'i seviyorum ama ChatGPT web arayüzünden daha yavaş hissettiriyor. Fikirleri hızlıca gidip gelmek için hâlâ web'de kopyala-yapıştır yapmak daha üretken
    Codex bazen alakasız kodu değiştirmeye başlıyor; bu da geri bildirim döngüsünü yavaş ve sinir bozucu hale getiriyor. Yine de iyi çalıştığında harika. Bir gün web kadar hızlı olup aynı zamanda yerelde çalışabilecek seviyeye gelmesini umuyorum

    • ChatGPT Plus web arayüzünde 5.2 modelinin xhigh reasoning effort modu sunulmuyor
  • Özellikle yeni değildi ama yine de değerli bir yazıydı. Ajan tabanlı kodlama CLI'larında döngüler veya geçmiş üzerinde daha kolay düşünebilmek (reflect) güzel olurdu. MCP üzerinden sohbet geçmişini sorgulama yöntemini denedim ama açıkça belirtmek gerektiği için rahatsız edici. Sürekli öğrenme bu tür sorunları çözebilir gibi görünüyor

  • Bu davranış OTEL telemetrisi ile de gözlemlenebilir. Ben sık sık headless codex exec kullanıyorum ama yerleşik telemetri desteği yetersiz olduğu için debug zorlaşıyor
    Bu yüzden codex-plus'ı kendim yapıp kullanıyorum. codex exec arayüzünü birebir yansıtıyor, TypeScript SDK üzerine kurulu ve çalıştırma sonrası oturum loglarını uzak bir OpenTelemetry toplayıcısına aktararak codex-plus-log-viewer ile analiz etmeyi sağlıyor

  • Skill'leri açıklayan kısım bana tuhaf geldi
    İlgili kod bağlantısı
    Neden dosyaları doğrudan göstermek yerine modelin onları normal dosyaymış gibi istemesi sağlanmış, merak ediyorum

    • İşte skill'lerin özü bu. Yalnızca ilgili dosyaların açılmasını sağlayarak bağlam penceresi kullanımını azaltan bir yapı
  • Codex CLI'yi ciddi biçimde kullanan biri var mı diye merak ediyordum. VSCode Codex eklentisini, Gemini CLI'ı ve Claude Code CLI'ı kullandım; hepsinin performansı berbattı.
    Ama Rust ile yeniden yapılan Codex CLI'nin performansı inanılmaz. UX de kusursuz; kısayollar gibi küçük ayrıntılar bile iyi düşünülmüş. Theo “CLI optimizasyonu yerine model iyileştirmesine odaklanmalıydılar” dedi ama kullandıktan sonra buna hiç katılamıyorum

    • Bence Codex CLI, Claude Code'dan çok daha iyi. Talimatları doğru izliyor ve istemediğiniz şeyleri yapmıyor. Aylık 20 dolarlık abonelikle 5.2 codex high modeli bolca kullanılabiliyor. Ben SSL biyoakustik modelleriyle çalışıyorum
    • OpenCode da diğer CLI'lara göre daha hızlı ve daha kararlı. Son zamanlarda Codex'i daha çok kullanıyorum ve Claude Pro'yu iptal etmeyi düşünüyorum. OpenAI'nin OpenCode'u resmî olarak desteklemesi çekici. Birden fazla rekabetçi seçeneğin olması güzel
    • Codex çoğu kodlama işinde %95'ten fazla tutarlı sonuç veriyor. Ama yapılandırılmamış işlerde (ör. sohbet veya hikâye yazımı) bazen saçma çıktılar üretebiliyor. Bir keresinde git rebase sırasında döngüye girmişti. Aider'ı denedim ama neredeyse hiç faydası olmadı
    • Codex CLI'nin bellek ve CPU verimliliği çok iyi. Üstelik açık kaynak olduğu için nasıl çalıştığını doğrudan görebiliyorsunuz. Theo'nun yorumu hâlâ canımı sıkıyor
    • Codex'in sorunu, hâlâ hook desteğinin olmaması. Ben hook kullanarak ajan token tüketimini %30 azaltan bir araç yaptım. hook'lar sayesinde ajanın verimsiz davranışlarını gerçek zamanlı düzeltebiliyorsunuz
      İlgili yazı: Scribe Swebench Benchmark