21 puan yazan GN⁺ 2026-02-24 | Henüz yorum yok. | WhatsApp'ta paylaş
  • Codex’in kendi ürününüze entegre edilebilmesi için standartlaştırılmış bir App Server mimarisi ve JSON-RPC protokolü oluşturulup sunuldu
  • Başlangıçta CLI merkezli bir TUI harness’ından yola çıkıldı; ancak JSON-RPC protokolü benimsenerek IDE, web ve yerel uygulamalar gibi farklı istemcilerin aynı ajan döngüsünü paylaşabilmesi sağlandı
  • App Server, Codex çekirdek kütüphanesini barındıran uzun süre çalışan bir süreçtir ve thread yaşam döngüsü yönetimi, yapılandırma/kimlik doğrulama, araç çalıştırma gibi tüm ajan deneyimini istemcilere sunar
  • Item, turn ve thread olmak üzere üç konuşma primitive’i üzerinden ajan döngüsündeki karmaşık etkileşimler yapılandırılabilir ve zengin arayüzler oluşturulabilir
  • VS Code, JetBrains, Xcode, masaüstü uygulaması ve web runtime gibi çeşitli yüzeylerde aynı harness yeniden kullanılır; Go, Python, TypeScript, Swift ve Kotlin dahil çok dilli istemci binding desteği sunulur
  • MCP sunucusu, CLI modu ve TypeScript SDK gibi alternatif entegrasyon yolları da sağlanır; ancak App Server birincil entegrasyon standardı haline gelmiştir
  • OpenAI, App Server’ı Codex entegrasyonu için varsayılan yol olarak sürdürürken, açık kaynak CLI deposu üzerinden herkesin Codex’i kendi iş akışına entegre etmesini destekliyor

App Server’ın temel arka planı

  • Başlangıçta farklı ürünlerde Codex harness’ını yeniden kullanmak için pratik bir yöntemdi, ancak zamanla bir standart protokole dönüştü
  • Codex CLI, bir TUI (terminal kullanıcı arayüzü) olarak başladı; VS Code uzantısı geliştirilirken aynı harness’ın IDE arayüzünde nasıl çalıştırılacağına ihtiyaç duyuldu
    • Workspace gezintisi, akıl yürütme ilerlemesinin akış halinde iletilmesi ve diff çıktısı gibi, istek/yanıtın ötesine geçen çeşitli etkileşim kalıplarının desteklenmesi gerekiyordu
  • İlk aşamada Codex’i bir MCP sunucusu olarak açığa çıkarma denemesi yapıldı, ancak MCP semantiğini VS Code’a uygun biçimde korumak zordu
  • Alternatif olarak TUI döngüsünü yansıtan bir JSON-RPC protokolü benimsendi ve bu, App Server’ın ilk gayriresmî sürümü oldu
    • O dönemde başka istemcilerin buna bağımlı olacağı öngörülmediği için kararlı bir API olarak tasarlanmamıştı
  • Codex kullanımının yaygınlaşmasıyla birlikte iç ekipler ve dış ortaklar (JetBrains, Xcode vb.), harness’ı kendi ürünlerine gömebilme yeteneği talep etti
    • Geriye dönük uyumluluğu koruyarak protokolü geliştirebilecek bir platform yüzeyi tasarlama ihtiyacı doğdu

Codex harness’ının iç yapısı

  • Codex Core, tüm ajan kodunu içeren bir kütüphane olmasının yanı sıra ajan döngüsünü çalıştıran ve tek bir Codex thread’inin (konuşmanın) sürekliliğini yöneten bir runtime’dır
  • Temel ajan döngüsünün yanında üç ana işlev alanı bulunur:
    • Thread yaşam döngüsü ve kalıcılık: thread oluşturma, sürdürme, fork etme ve arşivleme; olay kaydını koruyarak istemcilerin yeniden bağlanıp tutarlı bir zaman çizelgesi render etmesini sağlar
    • Yapılandırma ve kimlik doğrulama: yapılandırma yükleme, varsayılanları yönetme, kimlik bilgisi durumunu izleme ve "ChatGPT ile giriş yap" gibi kimlik doğrulama akışlarını yürütme
    • Araç çalıştırma ve genişletme: sandbox içinde shell/dosya araçlarını çalıştırma; MCP sunucuları ve skill gibi entegrasyonları bağlayarak bunların tutarlı bir politika modeli altında ajan döngüsüne katılmasını sağlama

App Server mimarisi

  • App Server, istemci ile sunucu arasında kullanılan bir JSON-RPC protokolü ve Codex Core thread’lerini barındıran uzun ömürlü bir süreçtir
  • Dört ana bileşenden oluşur:
    • stdio okuyucusu: istemciden gelen girdiyi okur
    • Codex mesaj işleyicisi: her çekirdek oturumla doğrudan iletişim kurarak istemci isteklerini gönderir ve güncellemeleri alır
    • thread yöneticisi: her thread için bir çekirdek oturumu başlatır
    • çekirdek thread: gerçek ajan döngüsünü çalıştırır
  • Tek bir istemci isteği birçok olay güncellemesi üretebilir; bu ayrıntılı olaylar sayesinde zengin arayüzler oluşturmak mümkündür
  • stdio okuyucusu ve Codex mesaj işleyicisi, istemci JSON-RPC isteklerini Codex Core işlemlerine dönüştüren ve dahili olay akışını kararlı, arayüz kullanımına uygun JSON-RPC bildirimlerine çeviren bir dönüşüm katmanı görevi görür
  • İstemci ile App Server arasındaki JSON-RPC protokolü tam çift yönlüdür
    • Ajan, onay gibi bir girdiye ihtiyaç duyduğunda sunucu isteği başlatabilir ve istemci yanıt verene kadar turn’ü duraklatabilir

Konuşma primitive’leri

  • Ajan döngüsü için API tasarımının merkezindeki fikir, kullanıcı ile ajan arasındaki etkileşimin basit bir istek/yanıttan ibaret olmadığı; yapılandırılmış bir dizi iş şeklinde ilerlediğidir
  • Üç temel primitive vardır:
  • Item

    • Codex’te girdi/çıktının temel birimi
    • Türlüdür: kullanıcı mesajı, ajan mesajı, araç çalıştırma, onay isteği, diff vb.
    • Açık bir yaşam döngüsüne sahiptir: item/started → isteğe bağlı item/*/delta (streaming) → item/completed (nihai payload)
    • İstemci started ile hemen render etmeye başlayabilir, delta ile kademeli güncellemeleri akış halinde alabilir, completed ile tamamlayabilir
  • Turn

    • Kullanıcı girdisiyle başlayan tek bir ajan işi birimi
    • Örneğin istemci run tests and summarize failures gönderdiğinde turn başlar; ajan çıktıyı üretmeyi bitirdiğinde turn sona erer
    • Bir turn, ara adımları ve sonuçları temsil eden bir dizi item içerir
  • Thread

    • Kullanıcı ile ajan arasındaki devam eden Codex oturumu için kalıcı kapsayıcı
    • Birden çok turn içerir; oluşturulabilir, devam ettirilebilir, fork edilebilir ve arşivlenebilir
    • Thread geçmişi kalıcı olarak tutulduğu için istemciler yeniden bağlanıp tutarlı bir zaman çizelgesi render edebilir

İstemci-sunucu konuşma akışı

  • Konuşma başlarken istemci ile sunucunun initialize handshake’ini kurması gerekir
    • İstemci, diğer tüm metodlardan önce tek bir initialize isteği gönderir ve sunucu bunu yanıtıyla onaylar
    • Protokol sürümleme, özellik bayrakları ve varsayılanlar konusunda iki taraf anlaşır
  • Yeni bir istek geldiğinde sunucu önce thread’i, ardından turn’ü oluşturur ve thread/started ile turn/started bildirimlerini gönderir
  • Araç çağrıları da item olarak istemciye gönderilir; sunucu işin yürütülmesi için onay isteyebilir
    • Onay istendiğinde, istemci "izin ver" veya "reddet" diye yanıtlayana kadar turn duraklatılır
  • Sunucu ajan mesajını gönderir ve turn/completed ile turn’ü bitirir
    • Ajan mesajı delta olayları mesajın parçalarını akış halinde iletir ve sonunda item/completed ile nihai olarak tamamlanır
  • Bir turn’ün tüm JSON çıktısını görmek için codex debug app-server send-message-v2 "run tests and summarize failures" komutu çalıştırılabilir

İstemcilerle entegrasyon kalıpları

  • Yerel uygulamalar ve IDE’ler

    • Taşıma yöntemi stdio üzerinden JSON-RPC (JSONL)’dir
    • Yerel istemciler, platforma özgü App Server ikilisini paketleyerek ya da indirerek uzun ömürlü bir alt süreç olarak çalıştırır
    • VS Code uzantısı ve masaüstü uygulamasında dağıtım artefaktlarına platforma özgü Codex binary’leri dahil edilir ve test edilmiş sürümlere sabitlenir
    • Go, Python, TypeScript, Swift ve Kotlin dahil farklı dillerde App Server istemci uygulamaları tamamlanmıştır
      • TypeScript: tanımlar doğrudan codex app-server generate-ts komutuyla üretilebilir
      • Diğer diller: codex app-server generate-json-schema komutuyla JSON Schema paketi üretilip kod üreticisine verilebilir
    • Xcode gibi ortaklar, istemciyi kararlı tutup en güncel App Server binary’sini işaretleyerek sürüm döngülerini ayırabilir
      • Böylece istemci sürümünü beklemeden sunucu tarafı iyileştirmeler (geliştirilmiş otomatik sıkıştırma, yeni yapılandırma anahtarları vb.) ve hata düzeltmeleri dağıtılabilir
      • JSON-RPC yüzeyi geriye dönük uyumlu olduğundan eski istemciler de yeni sunucularla güvenle iletişim kurabilir
  • Codex web runtime’ı

    • Konteyner ortamında çalışır
    • Worker, checkout edilmiş workspace ile bir konteyner hazırlar; bunun içinde App Server binary’si çalıştırılır ve stdio kanalı üzerinden JSON-RPC korunur
    • Web uygulaması (kullanıcının tarayıcısı), HTTP ve SSE üzerinden Codex backend’i ile iletişim kurarak iş olaylarını akış halinde alır
    • Böylece tarayıcı tarafı arayüz hafif tutulurken masaüstü ve web genelinde tutarlı bir runtime sunulur
    • Web oturumları kısa ömürlü olduğundan (sekme kapanması, ağ kopması) durum ve ilerleme sunucu tarafında tutulur
      • Sekme kapansa bile iş devam eder; yeni bir oturum kolayca yeniden bağlanıp kaldığı yerden sürdürebilir
  • TUI refactor planı

    • Mevcut TUI, ajan döngüsüyle aynı süreçte çalışan "native" bir istemcidir ve App Server protokolü yerine doğrudan Rust Core türleriyle iletişim kurar
    • TUI’yi, diğer istemciler gibi App Server kullanacak şekilde yeniden düzenleme planı vardır
      • Uzak bir makinede çalışan Codex sunucusuna bağlanabilir
      • Ajan hesaplama altyapısıyla sıkı biçimde entegre olur; dizüstü bilgisayar uyku moduna geçse ya da bağlantı koptuğunda bile iş sürer
      • Yerel tarafta canlı güncellemeler ve kontrol yetenekleri korunur

Doğru protokolü seçmek

  • App Server birincil entegrasyon yoludur, ancak daha sınırlı işlev sunan alternatifler de vardır
  • MCP sunucusu

    • codex mcp-server çalıştırılarak stdio sunucusunu destekleyen tüm MCP istemcilerinden (ör. OpenAI Agents SDK) bağlanılabilir
    • Hâlihazırda MCP tabanlı bir iş akışınız varsa ve Codex’i çağrılabilir bir araç olarak kullanmak istiyorsanız uygundur
    • Dezavantajı: yalnızca MCP’nin sağladıkları kullanılabilir; diff güncellemeleri gibi Codex’e özgü etkileşimler sorunsuz biçimde eşlenmeyebilir
  • Taşınabilir arayüzler

    • Birden çok model sağlayıcısı ve runtime’ı hedefleyen tek bir soyutlama gerektiğinde uygundur
    • Dezavantajı: ortak en düşük özellik kümesine yakınsama riski vardır; bu da zengin etkileşimleri ifade etmeyi zorlaştırabilir
    • Bu alan hızla gelişiyor ve daha fazla ortak standardın ortaya çıkması bekleniyor (ör. agentskills.io)
  • App Server

    • Tüm Codex harness’ını kararlı ve UI dostu bir olay akışı olarak açığa çıkarır
    • Tüm ajan döngüsü işlevlerine ek olarak ChatGPT ile giriş yapma, model keşfi ve yapılandırma yönetimi gibi destekleyici yetenekler de sunar
    • Başlıca maliyet: kullandığınız dilde istemci tarafı JSON-RPC binding’leri kurma gereksinimi
      • JSON Schema ve belgeler sağlandığında Codex karmaşık işlerin çoğunu halledebilir; birçok ekip entegrasyonu hızla uygulayabilmiştir
  • CLI modu

    • Tek seferlik işler ve CI çalıştırmaları için hafif, betik odaklı bir mod
    • Tek bir komutu etkileşimsiz çalıştırır, yapılandırılmış çıktıyı akış halinde verir ve net başarı/başarısızlık sinyaliyle sonlanır
    • Otomasyon ve pipeline’lar için uygundur
  • TypeScript SDK

    • Yerel bir Codex ajanını kendi uygulamanız içinde programatik olarak kontrol etmeyi sağlayan bir TypeScript kütüphanesi
    • Ayrı bir JSON-RPC istemcisi kurmadan native bir kütüphane arayüzüne ihtiyaç duyduğunuzda uygundur
    • App Server’dan daha önce yayımlandığı için desteklediği dil sayısı daha az ve kapsamı daha dardır
    • Geliştirici ilgisine bağlı olarak App Server protokolünü saran ek SDK’ler sunulabilir

Gelecek planları

  • App Server, Codex Core’u açığa çıkarır; istemcilerin tam ajan döngüsünü çalıştırmasına olanak tanır ve TUI, yerel IDE entegrasyonları, web runtime dahil geniş bir yüzey yelpazesini destekler
  • Tüm kaynak kodu Codex CLI açık kaynak deposunda yayımlanmıştır
  • Özellik talepleri ve geri bildirimler memnuniyetle karşılanıyor; ajanları daha erişilebilir hale getirmek için sürekli iyileştirmeler planlanıyor

Henüz yorum yok.

Henüz yorum yok.