Codex, alt ajan istemi şifrelemesini başlattı
(github.com/openai)- Codex CLI’nin MultiAgentV2’si
spawn_agent,send_message,followup_taskmesajlarını şifrelediği için, üst rollout’larda, geçmişte ve izlerde devredilen içeriğin insan tarafından okunamaz hâle geldiği bir denetim izi regresyonu ortaya çıktı - 5 Haziran 2026’da birleştirilen PR #26210’dan sonra
InterAgentCommunication.contentboş bırakılıyor, payload yalnızcaencrypted_contentiçinde saklanıyor; alıcı geçmişi ve iletişim günlükleri de şifreli metin kaydediyor - Sorun abonelikten, modelden ve platformdan bağımsız; MultiAgentV2’nin etkin olduğu 0.137.0 sonrası derlemeleri kapsıyor ve şifreleme aracı şemasında istek doğrulama hatasını ele alan #26753’ten ayrı
- Önerilen düzeltme, alıcı model için şifreli
messageile yerel denetim için zorunlu düz metin alanını birlikte saklamak; ancak aktarım eşleştirmesinde şifreli metin veya ID kullanmak ve düz metin denetim verilerine aynı boyut sınırını uygulamak spawn_agentprototipi ayrı bir snapshot commit’inde uygulanmış olsa da aynı sözleşmeninsend_messagevefollowup_taskile geçmiş, yeniden oynatma ve debug ekranlarına uygulanması işi sürüyor; issue hâlâ Open durumunda
Etki kapsamı ve regresyon koşulları
- Şifreleme değişikliği PR #26210 5 Haziran 2026’da birleştirildi; bunu içeren ve MultiAgentV2’yi etkinleştiren 0.137.0 sonrası derlemeler kapsamda
- Etkilenen araçlar
spawn_agent,send_message,followup_task; abonelik, model, işletim sistemi ve terminal ortamından bağımsız - Bu, yerel ortam durumundan değil birleştirilmiş kod davranışından doğrulanan bir regresyon olduğu için Codex doctor raporları geçerli değil
- Yeniden üretme adımları şöyle
- PR #26210’u içeren bir derlemede MultiAgentV2’yi etkinleştirin
- Modelin
spawn_agent,send_message,followup_taskaraçlarından birini çağırmasını sağlayın - Üst rollout’ta, geçmişte veya izde alt ajan görevini kontrol edin
- Görev ya da mesaj gövdesi yerine yalnızca şifreli metin göründüğünü doğrulayın
Kaybolan yerel denetim bilgileri
- Şifreli aktarımın kendisi gizlilik güçlendirmesi olarak anlaşılabilir; ancak mevcut uygulama, yerel rollout geçmişinde, iz özetlemesinde ve üst taraftaki denetim/debug ekranlarında insan tarafından okunabilir içeriği kaldırıyor
- Bunun sonucu olarak rollout sonrası incelemede şu soruları yanıtlamak zorlaşıyor
spawn_agentçocuk ajana hangi görevi verdi?- Alt ajana hangi mesaj gönderildi?
- Belirli bir çocuk thread neden oluşturuldu?
- Issue #26753, şifreleme aracı şemasının istek doğrulama sürecinde 400 hatası döndürmesiyle ilgili; bu issue ise şema onaylandıktan sonraki denetlenebilirlik ve debug edilebilirlik konusunu ele alıyor
- Amaç, şifreli aktarımı mutlaka geri almak değil; şifrelemeyi korurken yerelde devredilen içeriğin okunabilmesini sağlamak
Mevcut koddaki veri akışı
InterAgentCommunication::new_encrypted(),contentdeğerini boş string olarak başlatıyor ve payload’u yalnızcaencrypted_contentiçine kaydediyor- Normal kurucu
new(), düz metnicontentiçine kaydedipencrypted_contentalanını boş bırakıyor - Şifreleme kurucusu ise tersine
contentalanını boş bırakıp değeriencrypted_contentiçine koyuyor
- Normal kurucu
to_model_input_item(),encrypted_contentvarsaResponseItem::AgentMessageiçine yalnızcaNEW_TASKveyaMESSAGEbaşlığını ve şifreli payload’u koyuyor- Bu nedenle runtime’da sadece
contentdoldurulsa bile okunabilirResponseItemotomatik olarak kalıcılaştırılmıyor - Ayrı bir yerel denetim saklama yolu gerekiyor
- Bu nedenle runtime’da sadece
communication_from_tool_message(), aracınmessagedeğerini doğrudannew_encrypted()içine geçirerek düz metincontentiçermeyen bir iletişim nesnesi oluşturuyorsend_messagevefollowup_taskargüman işleme, yalnızcatargetve şifrelimessagealanlarını deserialize ediyor- Boş
messagereddediliyor, ancak ayrı bir eşlik eden düz metin alanı yok - Ortak mesaj aktarım yolu, bu değeri doğrudan
InterAgentCommunicationoluşturmak için kullanıyor
- Boş
Geçmişte ve günlüklerde neden şifreli metin kalıyor
- Alıcı taraf kayıt yolu,
to_model_input_item()tarafından oluşturulan model amaçlıResponseItemdeğerini konuşma geçmişine ve rollout’a kaydediyor- Şifreli iletişimde bu öğe, okunabilir bir denetim metni yerine şifreli aktarım payload’u içeriyor
- Rollout’a
InterAgentCommunicationMetadataile ilgiliResponseItembirlikte kalıcılaştırılıyor
- Yapılandırılmış iletişim günlüğü de
contentboşsa, olayıncontentdeğeri olarakencrypted_contentalanını kullanıyor - Bu yapıda insanın okuyacağı mesaj olarak gösterilen alanlara da şifreli metin girdiği için, aktarım şifrelemesini koruma gereksinimi ile yerel denetim verisini koruma gereksinimi birbirinden ayrılmıyor
Önerilen çift içerik sözleşmesi
- Mevcut şifreli
message, alıcı modele aktarılacak payload olarak korunur - Her MultiAgentV2 iletişim aracına zorunlu bir düz metin denetim alanı eklenir
spawn_agent:task_messagesend_message,followup_task:task_messageveyamessage_textgibi tutarlı bir ad
- Handler sınırında boş düz metin denetim değerleri reddedilir
InterAgentCommunicationiki değeri birlikte saklarencrypted_content: şifrelimessagecontent: insan tarafından okunabilir denetim kopyası
to_model_input_item()değiştirilmez; böylece alıcı modele yerel denetim kopyası değil, yalnızca şifreli metin aktarılır- Üst araç çağrısı ve rollout içinde düz metin alan kalıcılaştırılır; yapılandırılmış izdeki etkileşim kenarlarında ve yerel iletişim günlüklerinde de korunur
- Araç çağrısı ile çocuk aktarım öğesi arasındaki korelasyon, düz metin eşleşmesiyle değil şifreli metin veya ID ile belirlenir
- Düz metin alanı denetim metadatasıdır; şifreli aktarımın tanımlayıcısının yerine geçmez
- Yeni düz metin denetim alanına, karşılık gelen devir mesajıyla aynı zorunlu boyut sınırı uygulanır; böylece rollout veya bağlam öğeleri sınırsız büyümez
spawn_agent prototipi ve kalan işler
ignatremizov@df9a7c4snapshot commit’i,spawn_agentiçin önerilen yapıyı uyguluyor- v2
spawn_agentşeması,task_messagealanını zorunlu alan olarak belirliyor task_messagedoğrulaması yapıldıktan sonra düz metin ve şifreli metin birlikte oluşturuluyorcontentiçine düz metin denetim kopyası konuyorencrypted_contentiçinde alıcı model için şifreli payload korunuyor
- Rollout iz özetlemesinde de denetim içeriği ile aktarım eşleştirme içeriği ayrılıyor ve aktarım şifreli metinle bağlanırken düz metin denetim içeriği uygulanıyor
- Kalan iş, aynı çift içerik sözleşmesini
send_messagevefollowup_taskiçin uygulamak ve kullanıcıya dönük tüm geçmiş, yeniden oynatma ve debug ekranlarının şifreli metin yerine denetim kopyasını okumasını sağlamak
Tamamlanma koşulları ve mevcut durum
- Üst rollout ve geçmişte v2
spawn_agent,send_message,followup_taskdüz metinleri okunabilmeli - Şifreleme etkin olduğunda bile çocuk model yalnızca şifreli aktarım payload’unu almalı
- Yapılandırılmış rollout iz kenarlarında boyutu sınırlandırılmış düz metin
message_contentbulunmalı - İletişim günlükleri, düz metin denetim içeriği varsa bunu kullanmalı ve okunabilir mesaj alanına onun yerine şifreli metin koymamalı
- Devam ettirme ve yeniden oynatma, denetim kopyasını korumalı ancak bunu çocuk model bağlamına enjekte etmemeli
- Mevcut düz metin v1 iletişim davranışı değişmemeli
- Üç v2 aracının tamamı için okunabilir yerel denetim verisi ile şifreli alıcı model girdisini birlikte doğrulayan regresyon testleri gerekli
- Sağlanan sayfada issue Open durumunda; üst depoya bir düzeltmenin birleştirildiğine dair sonuç yok
1 yorum
Hacker News görüşleri
Bu başlık yanlış anlaşılmaya çok açık. Doğru anlamı, Codex’in alt ajan istemlerini şifreleyip kullanıcıdan gizlemeye başladığı
Orijinal başlık “Codex starts encrypting prompts, uses ciphertext for inference instead” idi
ultramodu işi birden fazla alt ajana dağıttığı için devreye alındı. Daha önce bu mod yalnızca web UI’da sunuluyordu ve muhtemelen eski pro moduna karşılık geliyorduEğer ajanların birbiriyle etkileştiği tam pekiştirmeli öğrenme rollout’larıyla eğitildiyse, OpenAI bu istemleri ham akıl yürütme izleri gibi değerlendirip başkalarının doğrudan eğitimde kullanmasını engellemeye çalışıyor olabilir
Özel sıkıştırma endpoint’inin döndürdüğü opak sıkıştırılmış blob da metin değil, konuşmanın gizil uzay temsili olabilir; OpenAI’nin sıkıştırma sadakatinin diğer şirketlerden çok daha yüksek olması da bu tahmini destekliyor. Benzer bir tekniği alt ajan istemlerine de uygulamış olabilirler; ayrıca farklı model türlerinden alt ajanlar üretirken de şifrelenmiş blob kullanıp kullanmadıklarını merak ediyorum
Claude’un alt ajanlarını ve iş akışını incelerken “bu zaten en başta çalıştırılmamalıydı” diye düşündüğüm oldu; Codex kullanıcıları ise orkestratörün alt ajanlara ilettiği şifreli yönlendirmelere ve shell görevlerine token’larını körü körüne harcamak zorunda kalıyor
Biz de şirketlerin tercih ettiği ya da zorunlu tuttuğu AI sağlayıcısını ve kendi API anahtarlarını seçmelerine izin verip basit bir ücretlendirme sunmak istemiştik, ama backend istemlerinin müşteriye sızabileceğini kısa sürede fark ettik. Ayrıntılı yürütme izleri elde edilirse yaptığımız şeyin nispeten kolay biçimde tersine mühendislik edilebileceğini gördüğümüz için sonunda bu fikirden vazgeçtik
Kodlama ajanı oturumlarını denetleyen yerel aracımın bazı durumlarda neden çalışmayı bıraktığını artık anlıyorum
Kullanıcının bilgisayarında çalıştırılacak harici şifreleme komutunu kaç kişinin kabul edeceğini merak ettiğim ilginç bir tasarım kararı
İçeriği şifreleyip kullanıcıdan saklamak, RIAA’nın telif ihlalinden endişe edip DRM’de kullandığı yöntemdi; bunun da kullanıcıya karşı bir tercih olup olmadığını sorguluyorum
Bu tür davranışlar yüzünden hâlâ Chat Completions endpoint kullanıyorum. OpenAI kullanıcıları Chat Completions’tan çıkarıp karartması daha kolay olan Responses API’ye doğru ince ince yönlendiriyor
Chat Completions’ta akıl yürütme sürecini doğrudan kontrol edebiliyorsunuz; deneysel özellikleri açıp biraz karmaşık seçenekler ayarlarsanız mevcut GPT-5.6 modeliyle özel bir Monte Carlo Tree Search (MCTS) ajanı bile kurabilirsiniz
VS Copilot’ta kullanıcı API token’ı ve model ayarlarıyla gpt5.5’e kadar kullanılabiliyor, ama gpt5.6 ailesi şu anda çalışmıyor. Muhtemelen yeni giriş engeli artırma davranışını karşılamak için
reasoning_effortdeğerininoneolmaya zorlamadığı içinBugün çıkan tüm yeni modeller akıl yürütme modeli olduğundan, öneri doğrultusunda Responses API kullanılmalı
GPT aboneliğinin alternatif yürütme araçlarında kullanılmasının engellenip engellenmeyeceği de merak konusu. Bu yapılmazsa büyük bir sorun değil;
codex clinin kendisi şaşırtıcı derecede sıradan bir yürütme aracıapp-serveryapısı zaten tam olarak bu entegrasyonu desteklemek için var, dolayısıyla bunu Codex’ten kaldırmak isterlerse çok büyük parçaları söküp atmaları gerekirBen de
app-serverın RPC API’siyle çok kolay entegre olabildiğim için Codex’i en çok kullanıyorum ve artık herkese açık Codex TUI yerine neredeyse her şeyi kendi yazdığım entegrasyon üzerinden kullanıyorumAma yerel diskteki gerçek çıkarım girdileri olan prompt’lar vb. şifrelenip yalnızca OpenAI backend’inin görebileceği hale getirilirse, entegrasyon kolay olsa bile neler olduğunu anlamak imkansız hale geliyor. Ekibin bunu neden iyi bir tercih gördüğünü anlamak zor
OpenAI de aynı yola girerse tekrar Claude’a dönmeyi ya da bir Spark daha alıp yerelde çalıştırmayı düşünüyorum
https://github.com/openai/codex/blob/main/codex-rs/responses...
Önceki HN başlığı, sanki doğrudan şifreli metin üzerinde çıkarım yapılıyormuş gibi duyuluyordu ve çok yanlış anlaşılmaya yol açtı. Bunun için şu anda bilinen seviyenin çok ötesinde gelişmiş homomorphic encryption gerekir
Eskiden ajan, alt ajana düz metin prompt gönderiyordu ve bu içerik log’larda ve oturum verilerinde de aynen kaldığı için, deneysel alt ajan özelliği kullanılırken bile verileri açıp iç işleyişi incelemek mümkündü
Artık Sol veya Terra kullanıldığında backend’in ürettiği şifreli metin alt ajana iletiliyor ve alt ajan da bunu yeniden OpenAI backend’inin çıkarımında kullanıyor. Luna bundan etkilenmiyor gibi görünüyor; ayrıca tüm oturum değil, yalnızca devredilen ajanlar arasındaki mesajlar şifreleniyor
OpenAI içindeki çıkarım şifreli metin üzerinde yapılmıyor, ama yerel kullanıcı artık düz metin yerine yalnızca şifreli metni görüyor. Bunu netleştirmek için başlığı “Codex starts encrypting sub-agent prompts” olarak değiştirdim
Kısa süre önce Twitter’da GPT-5.6 alt ajanının yanlışlıkla kullanıcının home directory’sini sildiğine dair bir bildirim vardı
Alt ajanın ne yapmaya çalıştığını artık göremediğimiz için, güvenlik önlemlerinin de başarısız olup olmadığını merak ediyorum
https://x.com/mattshumer_/status/2076794038456385546?s=20
Bu, token kullanımını azaltmak için istemci üzerinden cache key iletme yöntemi. Başka alt görev araçları kullanılarak kolayca aşılabildiğinden, model damıtmayı önlemeye yönelik bir savunma olması mümkün değil
Şifrelemenin tam olarak nerede yapıldığını merak ediyorum. Ana ajanın alt ajanı yerelde çağırdığını sanıyordum; Codex’in yapısı, yerel makineye ulaşmadan önce alt ajanı OpenAI sunucularında çağırıyor olabilir mi diye düşünüyorum
Sol veya Terra’da prompt yerine OpenAI backend’inin ürettiği şifreli metin iletiliyor ve alt ajan da bunu yeniden backend çıkarımında kullanıyor. Luna etkilenmiyor gibi görünüyor; ayrıca tüm oturum değil, yalnızca devredilen ajanlar arası mesajlar şifrelendiğinden, artık bu içeriği sadece OpenAI backend’i çözebiliyor
Çin’deki karaborsa yeniden satış servislerinin neden dünden beri çalışmadığını merak ediyordum; muhtemelen sebep bu değişiklik
Asıl amaç, çok sayıda kullanıcı isteği ve yanıtını proxy’leyip rakip modellerin eğitiminde kullanma girişimlerini zorlaştırmak gibi görünüyor
Ama ücretli kullanıcılar için, bir sorun çıktığında nedenini anlamanın hiçbir yolu kalmadığından, çok ajanlı özellikleri düzgün kullanmayı zorlaştıran berbat bir uygulama bu