Bir itirafla başlayayım: uzun zaman ben de prompta saatler harcayanlardan biriydim. Cümleyi şöyle mi kursam, “sen 20 yıllık kıdemli bir mimarsın” diye mi başlasam, üç paragraf mı yazsam iki paragraf mı derken saatler geçiyordu. Sonuç mu? Model yine bir yerlerde uyduruyordu. Ta ki context’in ne olduğunu, modelin gözünden dünyanın nasıl göründüğünü gerçekten anlayana kadar.
Bu yazıda size şunu anlatacağım: bir modele mesaj gönderdiğinizde arka planda gerçekte ne oluyor, harness dediğimiz şey ne, sizin yazdığınız birkaç yüz kelime modele giden onlarca bin token’ın neden küçük bir kısmı, compaction sırasında model neden birdenbire her şeyi unutuyor ve rol promptu yazmanın artık neden vakit kaybı olduğu. Sonunda da kendi denediğim, aynı görevi iki farklı şekilde yaptırdığım bir karşılaştırmayı paylaşacağım. Fark, laf olsun diye söylemiyorum, gerçekten çarpıcı.
Model sizi hatırlamıyor, her seferinde sıfırdan başlıyor
Şunu kabul etmemiz lazım: model sohbeti “okumuyor”, sizi “hatırlamıyor”. Claude Code’da ya da Codex’te ekranda gördüğünüz o akıcı sohbet hissi bir illüzyon. Her mesaj gönderdiğinizde model, konuşmanın en başından o ana kadarki her şeyi yeniden görüyor: sistem promptu, modelin elindeki tool tanımları, sizin mesajınız, modelin önceki cevapları, hepsi tek bir paket halinde tekrar gidiyor.
Kendi Claude Code session’larımdan birine baktığımda şunu gördüm: ben o mesajda sadece birkaç yüz kelimelik bir şey yazmışım, ama modele giden gerçek veri çok daha kabarık. Sistem promptu, tool tanımları, önceki tur özetleri filan derken benim yazdığım kısmın kat kat üstünde bir hacim oluşuyor. Yani siz “kısa bir şey yazdım” diye düşünürken model devasa bir paketle karşılaşıyor, sizin cümleniz o paketin ufak bir köşesi.

Bunun sonucu şu: modelin “sizi hatırladığı” hissi tamamen harness’ın kurduğu bir numaradan ibaret. Her turda geçmişin tamamı yeniden gönderiliyor, model de sanki devam eden bir hafızası varmış gibi davranıyor. Aslında hafıza yok, her seferinde yeniden okuma var.
Harness dediğimiz şey ne
Harness kelimesini bu videodan sonra çok duyacaksınız, ben de sık kullanıyorum artık. Harness, modelin etrafındaki makine demek. Claude Code, Codex, farklı ajanlı araçlar, hepsi birer harness. Model kendi başına hiçbir şey yapamıyor: internette arama yapamıyor, saati göremiyor, bir dosyayı silemiyor. Bunların hepsini harness yapıyor, model sadece “şunu yap” diye bir metin yazıyor ve harness o metni okuyup gerçek işlemi gerçekleştiriyor.

Bunu anlamak önemli çünkü tool calling dediğimiz o gösterişli mekanizma da bundan ibaret. Model bir tool çağırıyormuş gibi görünen bir metin üretiyor, harness bunu yakalayıp gerçek komutu çalıştırıyor, sonucu tekrar modelin context’ine basıyor. Model o sonucu gerçek zannediyor, çünkü ona öyle sunuluyor. Halüsinasyon dediğimiz şeylerin büyük kısmı da tam burada doğuyor: model elindeki veriyi gerçeklik olarak kabul ediyor, ama o veri eksik ya da yanlış geldiyse model de yanlış bir zemin üstünde ilerliyor.
Skill, MCP, memory gibi kavramlar da modelin gözünde birbirinden farksız. Hepsi context’e basılan token’lardan ibaret. Bir skill dosyası okutmakla bir MCP’den veri çekmek ya da bir hafıza dosyası yüklemek, model için tamamen aynı şey: metin. Aradaki fark bizim onları nasıl adlandırdığımız ve hangi standartla paketlediğimiz. Bu yüzden “prompt önemli değil” demiyorum, ama prompt tek başına sandığınız kadar önemli değil. Asıl mesele modelin context’ine neyin, ne zaman, ne şekilde girdiği.
Compaction: model neden birden unutuyor
Uzun bir oturumda context penceresi doluyor, yüz binlerce token birikiyor. Bir noktadan sonra harness bu birikimi özetleyip sıkıştırıyor, buna compaction deniyor. Sorun da tam burada başlıyor: yüz binlerce token’lık bir geçmiş, birkaç bin kelimelik bir özete indirgeniyor. O özette olmayan her şey, model için artık yokmuş gibi.
Şöyle düşünün: bütün bir toplantının ses kaydını birine dinletmek yerine, birinin tuttuğu üç maddelik nota bakmasını istiyorsunuz. O üç madde ne kadar iyi tutulmuşsa özet o kadar isabetli olur, ama toplantıda konuşulan pek çok ayrıntı zaten o üç maddeye sığmaz. Model de tam olarak bunu yaşıyor. Compaction sonrası bir dosyanın adı özette geçmiyorsa, model o dosyanın var olduğunu bile bilmiyor. Bu yüzden “az önce konuşmuştuk, unuttun mu” diye sinirlenmenin bir anlamı yok, model gerçekten unutmuyor, o bilgi zaten elinde hiç olmadı.
Bunun pratikteki karşılığı şu: bir görev ortasında compaction olduysa, devam etmeden önce modele gerekli verileri yeniden vermeden koda devam ettirmeyin. Modele doğrudan sorabilirsiniz: şu an context’inde ne var, neyin eksik olduğunu düşünüyorsun. Bu basit soru bile bazen büyük bir hatayı önlüyor.
Subagent mantığı: kuryeye zarf vermek gibi
Büyük bir görevde tüm araştırmayı ana konuşmanın içinde yapmak, o pencereyi gereksiz yere şişiriyor. Bunun yerine subagent kullanmak işe yarıyor: ayrı bir pencerede bağımsız bir “araştırmacı” çalıştırıp, sadece sonucu ana pencereye aktarmak.
Buna güzel bir benzetme var: subagent, sizin asistanınızın asistanı değil. Daha çok, elinde mühürlü bir zarfla gelen, binayı hiç görmemiş bir kurye gibi. Zarfın içinde ne olduğunu bilmiyor, sadece görevi tamamlayıp cevabı geri getiriyor. Diyelim ki bir subagent 50 küsur adımda 75 bin token’lık bir araştırma yapıyor, ama ana pencereye döndüğünde bunun sadece bin küsur token’lık bir özetini bırakıyor. Beş tane böyle subagent çalıştırdığınızda, üç yüz dört yüz bin token’lık bir araştırmayı, ana pencerenizi hiç şişirmeden toplamış oluyorsunuz. İşin can alıcı noktası bu: araştırmanın hacmi büyük olsun, ama ana context’e giren kısım küçük ve öz kalsın.
Rol promptu yazmayı bırakın artık
“Sen 20 yıllık deneyimli bir yazılım mimarısın” gibi cümleler kurmak, birkaç yıl öncesinin alışkanlığı. O dönem modeller daha az yetenekliydi, insanlar jailbreak yöntemleriyle modele belirli bir kimlik giydirip farklı davranmasını sağlamaya çalışıyordu. Ama artık modeller bu tarz kimlik cümlelerine eskisi kadar önem vermiyor. Sizin “ben doktorum” demeniz değil, doktorların bildiği terimleri doğru kullanmanız modele bir şey ispatlıyor. Yani model, söylediğinize değil, gösterdiğinize bakıyor.
Aynı mantık uzun promptlar için de geçerli. Her şeyi tek tek yazıp modele “abartarak” anlatmaya çalışmak, context’i gereksiz yere kirletiyor. Model zaten sıfırdan öğrenmiyor, siz sadece onun odağını nereye çevireceğini belirliyorsunuz. Kısa ve öz bir prompt, doğru context eşliğinde geldiğinde, uzun ve süslü bir promptla aynı işi görüyor, hatta genelde daha iyisini.
Çok fazla MCP kurmayın, sohbeti gereğinden uzatmayın
MCP’ler kullanışlı ama bedavaya gelmiyor: her kurduğunuz MCP, modelin context penceresine ekstra bir yük biniyor demek. Skill’ler gibi ihtiyaç anında açılıp kapanmıyorlar, sürekli orada duruyorlar. Bu yüzden elinizdeki her MCP’yi aktif tutmak yerine, gerçekten kullandığınız birkaç taneyle sınırlı kalmak daha mantıklı.
Aynı şekilde tek bir sohbeti saatlerce uzatmak da bir noktadan sonra modelin performansını düşürüyor. Bizim beynimiz ne kadar dolarsa o kadar dağınık düşünüyorsa, model de benzer bir şekilde context’i aşırı dolduğunda tutarlılığını kaybediyor. Bir görev bittiyse yeni bir context’e geçmek, ya da gerekiyorsa compact istemek, uzun vadede zaman kazandırıyor.

Canlı test: detaylı prompt mu, doğru context mi
Bunu laf olsun diye değil, gerçekten denedim. Elimde bir video vardı, o videoya bir kapak görseli (thumbnail) gerekiyordu. İki farklı yol denedim.
Birinci yolda modele klasik bir yaklaşımla gittim: videoda neyi anlattığımı kendi cümlelerimle özetledim, kanalın görsel kimliğini tarif ettim, “profesyonel bir kapak görseli istiyorum” dedim. Yani elimden geldiğince detaylı, elle yazılmış bir prompt.
İkinci yolda ise sadece videonun linkini verdim ve modelin kendi context’ini toplamasına izin verdim. Herhangi bir yönlendirme yapmadım. Model kendi kararıyla transcript’i okudu, videonun ne anlattığını kendi çıkardı, hangi kavramların öne çıkarılması gerektiğine kendi karar verdi ve üç farklı konsept üretti.
Aradaki fark gerçekten göze çarpıyordu. Birinci yoldaki sonuçlar kötü değildi ama tanıdıktı, bugün her yerde gördüğümüz o “yapay zeka kokan” ortalama görsellere benziyordu. İkinci yoldaki sonuçlar ise videonun içeriğine çok daha sadıktı, daha özgün duruyordu, çünkü model kendi topladığı gerçek veriye dayanarak karar veriyordu, benim tahminimden ya da özetimden değil.
Prompt yazmakla context’in modele kendi kendine ulaşmasına izin vermek arasında büyük fark var: prompt sizin tahmininiz, context ise modelin kendi bulduğu gerçek.
Bunu gördükten sonra artık şuna inanıyorum: prompt yazma becerisine değil, modelin doğru context’e ulaşmasını sağlayan sistemler kurmaya odaklanmak lazım. Bu benim de daha önce context ve kalıcı hafıza üzerine yazdığım yazıda değindiğim mantığın bir devamı aslında, sadece bu sefer gözle görülür bir örnekle.
Bu mantık neden kalıcı, araçlar değil
Bugün bir araç öğrenip yarın o araç değiştiğinde bilgi çöpe gidiyor. Bu ay Claude Code kullanıp gelecek ay başka bir araca geçmek, sürekli sıfırdan öğrenmek anlamına geliyor. Ama context’in nasıl çalıştığını, modelin gözünden dünyanın nasıl göründüğünü bir kere kavradığınızda, bu bilgi hangi araca geçerseniz geçin sizinle kalıyor. Çünkü mantık aynı: Claude Code’da da, Codex’te de, farklı bir ajanlı sistemde de model aynı prensiple çalışıyor, sadece paketleme farklı.
Modeller zekileştikçe bu fark daha da büyüyecek gibi görünüyor. Basit işleri zaten herkes yapabilir hale gelecek, ama context’i doğru yöneten kişi bir üst seviyede kalmaya devam edecek.
Toparlayalım
- Model sizi hatırlamıyor; her mesajda geçmişin tamamı yeniden gönderiliyor, hafıza hissi harness’ın yarattığı bir illüzyon.
- Skill, MCP, memory modelin gözünde aynı şey: context’e basılan metin, sadece paketleme farklı.
- Compaction sırasında özete girmeyen her şey model için yokmuş gibi davranılıyor, bu yüzden görev ortasında compaction olduysa gerekli veriyi yeniden vermek gerekiyor.
- Subagent’lar büyük araştırmaları ana pencereyi şişirmeden toplamanın en pratik yolu.
- Rol promptu yazmak artık eski moda; modelin odağını doğru yere çeviren kısa ve net context, uzun ve süslü promptlardan daha işe yarıyor.
Bu konuyu bir kere kavradığınızda araçlar değişse de sizinle kalıyor, ben de bu yüzden değerli buluyorum. Sorularınız olursa yorumlarda buluşalım.
