Editör Notu: Bu makale, OpenAI geliştirici ilişkileri üyesi Dominik Kundel'den gelmektedir ve Codex'in "goal mode / /goal" özelliğine ilişkin deneyimlerini özetlemektedir. Burada bahsedilen, sıradan bir prompt tekniği değil, AI programlama aracının yaşadığı bir rol değişimidir: Codex artık tek seferlik talimatlara yanıt veren bir kod asistanı değil, net bir hedef etrafında ilerleyen bir yürütme agenti haline gelmektedir.
/ goal modunda, gereksinimleri ne kadar uzun ve detaylı yazarsanız yazın, en önemli olan Codex için net ve doğrulanabilir çıkış kriterleri belirlemektir. Örneğin: “Dağıtım süresi %30 azaltılır”, “Test kapsaması %100 uyum seviyesine ulaşır”, “LCP 2,5 saniyenin altına düşer”. Bu metrikler, Codex’in görevin tamamlandığını nasıl anlayacağını belirler ve belirsiz hedeflerde sonsuz deneme-yanılma yapmasını önler. Aynı zamanda kullanıcı, Codex’in ilerlemeyi ölçmesini ve sonuçları doğrulamasını sağlayacak yeterli yön, araç ve gerçek ortam sağlamalıdır; yoksa sadece yerel veya varsayımsal koşullarda görünürde uygun bir çözüm üretir.
Makale özellikle, görsel görevlerin Codex'i detaylar çukuruna çektiğini vurguluyor. “100% piksel düzeyinde tam eşleşme” talep etmek yerine, görsel hedefleri işlev listesi, tasarım sistemi standartları ve değerlendirilebilir metrikler olarak parçalayın. Saatlerce hatta günlerce süren uzun vadeli görevler için, sonunda izlenebilir olmayan değişiklikler kümesi elde etmemek adına commit, taslak PR, ilerleme belgeleri, Slack güncellemeleri veya yan sohbetler aracılığıyla sürekli takip yapılmalıdır.
Bu makalenin özgün katkısı, /goal'u bir "uzun vadeli görev yönetimi mekanizması" olarak yeniden tanımlamasıdır. AI, onlarca hatta yüzlerce saat boyunca sürekli olarak çalışabildiğinde, geliştiricilerin temel becerisi de değişir: AI'ya kod yazdırmak değil, ona hedefler tanımlamak, ölçü sistemleri kurmak, yürütme ortamını yapılandırmak ve nihayetinde inceleme ve değerlendirme yapmak. Başka bir deyişle, AI programlama, "ipucu yazma"dan "sürekli çalışan bir mühendislik yürütücüsünü yönetme" yönüne doğru ilerlemektedir.
Aşağıda orijinal metin yer almaktadır:
Codex'in belirli bir sonuç doğrultusunda ilerlemesine yardımcı olmak için hedef modunu (goal mode ya da /goal) sunduk. Bir hedef belirledikten sonra, Codex hedefe ulaşana kadar — bu birkaç saat ya da birkaç gün sürse bile — çalışmaya devam eder. Zaten bazı kullanıcılar, Codex'in aynı hedef için 120 saatten fazla çalışmasını sağlamıştır.

Hedef modu çok güçlüdür. Bunun tam potansiyelini kullanmak için /goal komutunu kullanırken dikkat edilmesi gereken 7 şey vardır.
Net ve doğrulanabilir kriterler belirleyin
Hedef modunu etkinleştirdiğinizde girdiğiniz ipucu, başlangıç ipucu olarak hizmet ederken, daha önemlisi bu hedefin tamamlanma kriteri haline gelir. Codex, her çalışma döngüsünden sonra bu hedefin tamamlanıp tamamlanmadığını kontrol eder.
Bu nedenle, hedef ipucunuzun uzun yazılması gerekmez; hedefin ne zaman tamamlandığına dair net bir kriter odaklanmalıdır.
Çoğu durumda, iyi bir hedef, modelin tamamlanıp tamamlanmadığını belirlemesi için açık bir sayısal ölçüt içermelidir. Örneğin:
Yapılandırma ve dağıtım süresini %30 azaltın.
Bu özelliği TypeScript'ten Rust'a taşıyın ve %100 test uyumluluğuna ulaşın.
Üretim ortamında En Büyük İçerikli Boyama (Largest Contentful Paint, sayfanın ana içeriğinin yüklenme hızını ölçen bir metrik) değerini 2,5 saniyenin altına indirmek için uygulama iskelesini optimize edin.
Bu ipucu her zaman sayı içermek zorunda değildir, ancak genellikle sayılar sonraki adımların ilerlemesini kolaylaştırır.
Hedefinizi nasıl tanımlayacağınızdan emin değilseniz veya projeyi Codex ile birlikte fikir birliği yapmak istiyorsanız, başlangıçta hedef modunu açmanıza gerek yoktur.
Codex, kendi hedeflerini belirleyebilir. İlk olarak normal bir konuşma başlatın ve Codex'in önceki tartışmaları temel alarak hedef belirlemesini istediğinizde, ona emir verin.
Hedefinizi her zaman düzenleyebilirsiniz: Codex uygulamasında Düzenle butonuna tıklayın veya CLI'da yeniden /goal komutunu kullanın.
Yol göstermeyi mümkün olduğunca sağlayın
“30% kadar yapılandırma ve dağıtım süresini azaltın” gibi ipuçları, harika görünür ve Codex'e yaratıcı çözümler buldurabilir. Ancak sorunun nerede olabileceğini yaklaşık olarak zaten biliyorsanız, bu tür ipuçları Codex'i yanlış yola sürebilir.
Bu nedenle, mümkünse Codex'in nereden başlaması gerektiğini, hedefe ulaşmak için hangi araçları kullanabileceğini veya başka ipuçları vererek, yanlış yöne girmesini önlemeniz en iyisidir.
Örneğin, meslektaşım @reach_vb bir deneyde bunu yaptı: Codex'e Google Colab'a Chrome tarayıcısıyla erişebileceğini ve Codex'in modeli eğitirken kendi veri kümesini oluşturmasına izin verilebileceği gibi bazı kabul edilebilir sınırlamaları belirtti.

Aynı şekilde, inşaat süresini kısaltmak istiyorsanız ve zamanın büyük kısmının hangi aşamada harcandığını biliyorsanız, Codex'i ilk olarak o bölgeye yönlendirmek en iyisidir.
Alternatif olarak, Codex'i öncelikle plan modunda (plan mode) temel araştırmalar yapmaya ve olası çözümleri kaydetmek için bir plan dosyası oluşturmasına izin verebilirsiniz. Daha sonra hedefiniz bu planı referans alabilir.
İlerlemeyi ölçülebilir hale getirin
Hedefiniz çok ambisyonluysa veya Codex'in hedefe ulaşmak için birçok yolu varsa, Codex'e ilerlemeyi ölçmek için araçlar sunmak çok önemlidir.
Bazı görevler için bu doğal olarak geçerli olabilir. Örneğin, inşa süresini optimize etmek veya test kapsama oranını artırmak, çünkü Codex genellikle ilgili araçları zaten kullanır veya bu araçları doğal olarak oluşturur.
Ancak diğer hedefler için, önce Codex ile birlikte beyni kullanın: İlerleme durumunu nasıl değerlendirmek için hangi araçlar yardımcı olur? Veya kendisinin hedefe doğru ilerleyip ilerlemediğini nasıl anlayacağını ona ipuçları verin. Örneğin, iki ekran görüntüsü arasında görsel fark karşılaştırma aracı oluşturun ya da hata ayıkladığınız ajan için bir değerlendirme seti hazırlayın.
Bir videoya dayalı olarak bazı bileşenleri kopyalamak için Codex'i kullandım; o zamanlar Codex, ekran görüntülerini karşılaştırmak ve farkları kontrol etmek için kendi bir aracı oluşturdu. Daha sonra bu aracı sürekli geliştirdi ve farklı fark karşılaştırma modları ekledi.

Göreve göre, ekstra kriterlerin ölçülüp kontrol edilip edilmeyeceğini de dikkate almanız gerekir. Aksi takdirde, Codex görevin tamamlandığını düşünebilir, ancak sizin görüşünüze göre hâlâ eksik olabilir.
Örneğin, Codex bir UI'yi "piksel düzeyinde tam olarak yeniden oluşturmak" için tasarım referans görüntüsünü doğrudan kesip sayfaya gömmüş olabilir; veya test geçme oranını %100'e çıkarmak amacıyla test kapsama alanını azaltmış olabilir. Bunlar, gerçekten istediğiniz tamamlama yöntemleri değildir.
Gerçek bir ortam oluşturun
Codex'in hedefine gerçek bir ilerleme kaydetmesini istiyorsanız, yeterince gerçek bir ortamda çalışması gerekir.
Pratikte bu, dağıtım süresini veya gecikme sorunlarını optimize etmek istiyorsanız, Codex'in dağıtım ve test ortamlarına erişimi olması gerektiği anlamına gelir; bu ortamlar, üretim ortamını mümkün olduğunca benzer şekilde simüle etmelidir. Yani aynı teknoloji yığını, aynı yapılandırma anahtarları ve benzer veritabanları kullanılmalıdır.
Örneğin, developers.openai.com'un inşa ve dağıtım zamanını optimize etmek için hata ayıklama yaptık. O dönemde dağıtım önizlemelerini zaten kullanıyorduk, bu nedenle Codex, bu önizleme ortamlarını kullanarak dağıtım yapabilirdi ve ilgili günlükleri görebilirdi. Ancak sorun, önizleme dağıtımlarımızın tam üretim ortamına kıyasla bazı inşa yollarını devre dışı bıraktığıydı.
Bu nedenle Codex, sorunun tam olarak nerede olduğunu kontrol edebilmek için kodu üretim yapısına daha yakın bir ortama manuel olarak dağıtmak zorunda kaldı.
Benzer şekilde, Codex'i computer use (modelin gerçek uygulama arayüzlerini kontrol etme yeteneği) ile birlikte kullanarak gerçek uygulamaları test edebilirsiniz. iOS'ta bazı performans sorunlarını optimize etmek için @dimillian, en doğru test ortamını elde etmek için fiziksel cihazlar kullandı.

Görsel hedeflerinizi dikkatli şekilde belirleyin
Codex'e "Bu resme göre UI'yi %100 piksel düzeyinde yeniden oluştur" gibi bir görsel hedef vermek gerçekten cazip. Ancak belirli ayarlarla bu sorunlara da yol açabilir.
Uygun yönergeler ve sınırlamalar vermezseniz, Codex bazı detaylarda daha da derine girebilir ve genel hedefi gözden kaçırmış olabilir. Örneğin, referans resimde bazı grafik öğeleri varsa ve bu öğelerin (SVG simgeleri veya resimler) Codex tarafından oluşturulmasını bekliyorsanız, Codex tüm sorunu doğru bir şekilde çözümlemek yerine bu malzemeleri tam olarak kopyalama konusunda büyük çaba harcayabilir.
Ayrıca, Codex'in doğru görsel karşılaştırmalar yapabilmesi için araçlara ihtiyacı vardır. Bu, daha fazla görüntü girişi ve daha yüksek toplam token tüketimi anlamına gelir, ancak Codex'e gerçek değerli iyileştirme fırsatlarını tanımlamanın basit bir yolunu sunmayabilir.
Bu nedenle, resimler genellikle tek tamamlama kriteri yerine hedef bağlamı için daha uygun olur. Codex'in hedefin tamamlandığını nasıl anlayacağını belirlemek için fonksiyon listesi, uygulama spesifikasyonları veya tasarım sistemiyle uyum gibi diğer yolları aramalısınız.
İlerlemeyi izleyin
Codex, arka planda saatlerce hatta günlerce çalışır veya başka bir makinede çalışırsa, tam olarak nereye kadar ilerlediğini ve hangi işleri yaptığını unutmak kolaydır.
Hedeflere göre, aşağıdaki yöntemlerin çok yardımcı olduğunu fark ettim:
Codex'in kritik noktalarda kodu gönderip bir taslak PR oluşturmasını sağlayın. Özellikle bir web sitesi üzerinde çalışıyorsanız ve önizleme dağıtımınız varsa, bu çok faydalı olacaktır.
·Yönetim için bir teslimat ürünü güncellemek için Codex'i kullanın. Bu, uygulama içi tarayıcıda sürekli açık tutabileceğiniz bir HTML dosyası olabilir; Sites üzerinden ekip tarafından görülecek şekilde dağıtılmış bir sayfa olabilir; işlenmiş ilerleme grafiği olabilir ya da sadece basit bir Markdown dosyası olabilir.
Codex'in ilerleme güncellemelerini aktif olarak yayınlamasını sağlayın. Ayrıca hedefe ekleyebilirsiniz: Codex, önemli ilerlemeler kaydettiğinde, güncellemeleri Slack kanalına veya ilerlemeyi kaydetmek istediğiniz başka bir yere göndersin.
Durumu başka bir sohbet penceresinde sorun. Şu anki durumu hızlıca öğrenmek istiyorsanız, /side komutunu çalıştırarak yeni bir yan sohbet başlatın ve orada sorun. Bu, mevcut konu dallanacağından tüm bağlamı içerecek ancak ömrü kısa olacaktır.
Codex uygulamasında başka bir alternatif, yeni bir genel sohbet başlatmak, Codex'e başka bir hedef konu başlığını okutmak ve sorularınıza cevap vermesini sağlamaktır. Codex'e düzenli olarak ilerlemeyi kontrol etmek için bir otomasyon görevi ayarlatırsanız, bu yöntem özellikle güçlü olur.
Temizleyin ve sonucu onaylayın
Harika, hedef nihayet tamamlandı! Şimdi sonuçları doğrudan takıma iletip işi bitirebilir miyiz?
Genellikle, özellikle optimizasyon görevlerinde, Codex'in tamamladığı işi gözden geçirmesini ve incelemesini sağlamak faydalı olur. Önce /review ile yerel kod incelemesi çalıştırabilirsiniz, ancak Codex'in hedefe ulaşmak için hangi yolları denediğini, hangi denemelerin başarılı olduğunu ve hangilerinin başarısız olduğunu daha derinlemesine yansıtmak da değerlidir; ardından bu değerlendirmeye göre kodu temizleyin.
Codex, hedefe ulaşana kadar sürekli çalışacağı için, etkisi yetersiz veya tamamen etkisiz bazı yöntemleri denemiş olabilir ve bu kalıntı değişiklikler son kodda hâlâ kalabilir.
Bir sonraki göreviniz için bir hedef belirleyin
Codex'in hedef fonksiyonu, en anlamlı mühendislik zorluklarını çözmek için size son derece güçlü bir araç sunmaktır. Ancak, doğru ortamı ve talimatları sağladığınızda daha verimli hedefe ulaşır.
/goal ile ne yaptın?
