# TD-041 · Önceki sürümleri sakla ve karşılaştırt

Yeniden üretilen cevap öncekinin yerine geçince beğenilen sonuç kayboluyor ve model aynısını bir daha üretemiyor. Her üretimi sürüm olarak saklamak, yan yana karşılaştırtmak ve tek adımda geri döndürmek bu kaybı önler.

- Adres: https://tandem.komunite.com.tr/desen/onceki-surumleri-sakla-ve-karsilastirt
- Yer: Çalışırken > Çıktı
- Seviye: Temel. Her AI özelliğinde olmalı.
- Son inceleme: 27 Ekim 2026, Komünite editörlüğü

## 30 saniyede dene

1. Asistanına kısa bir metin yazdır, beğendiğin bir cümleyi not al ve cevabı yeniden üret.
2. İlk cevaba dönmeyi dene. Ekranda hâlâ duruyor mu, yoksa yenisi onun yerine mi geçti? Sayfayı yenileyince ne oluyor?
3. Asistana “ilk yazdığın daha iyiydi, onu geri getir” de. Aynı metni mi veriyor, yoksa benzerini yeniden mi yazıyor?
4. Aynısını bir ajanla dene. Bir dosyayı değiştirt, beğenme ve geri dön. Geri dönüş tek adım mı, yoksa dosyayı elle mi topluyorsun?

## Sorun

Kullanıcı asistana bir menü açıklaması yazdırıyor. İlk cevap neredeyse doğru. Bir cümlesi tam yerinde, yalnız sonu biraz uzun. Daha iyisi var mı diye yeniden üret düğmesine basıyor. Yeni cevap daha kötü ve o iyi cümle gitmiş. Kullanıcı geri dönmek istiyor, dönemiyor. Yeni cevap eskisinin yerine geçmiş.

Asistana “ilk yazdığın daha iyiydi” diyor. Asistanın bağlamında ilk cevap artık yok, o yüzden benzerini yazmaya çalışıyor. Çıkan metin ne ilkine ne ikinciye benziyor. Model aynı isteğe her seferinde biraz farklı cevap verir. Kaybolan cevap bu yüzden bir daha üretilemez, kullanıcı beğendiği cümleyi hafızasından toplamaya çalışır.

Ajanlarda bedel büyür. Ajan bir dosyayı yeniden düzenler, yeni hâli çalışmaz, eskisi de gitmiştir. Kullanıcı ajandan geri almasını ister ve ajan değişikliği tahminle tersine çevirmeye çalışır. Tahmin tutmazsa elde ne eski ne yeni çalışan bir sürüm kalır.

Yeniden üretmek elindekini kaybetme riski taşıdığı sürece kullanıcı ya denemekten vazgeçer ya da her cevabı yeniden üretmeden önce başka bir yere kopyalar.

## Neden atlanıyor

Yeniden üret düğmesi ucuz bir düğme gibi görünür. Arkasında bir veri modeli kararı durur: yeni sonuç ya eskisinin üstüne yazılır ya da yanına eklenir. Üstüne yazmak her zaman daha kolaydır ve ilk sürümde hep o seçilir.

Sürüm saklamanın bir de bedeli var: depolama, yükleme süresi, daha kalabalık bir ekran. OpenAI Mart 2026'da ChatGPT'de düzenlemeyi ve yeniden üretmeyi yalnız son mesaja indirdiğinde gerekçeyi açıkça yazdı. Değişiklik [konuşmaların yüklenme süresini kısaltıyordu](https://web.archive.org/web/20260321024011/https://help.openai.com/en/articles/11909943-gpt-53-and-gpt-54-in-chatgpt). Hız ölçülür ve panoda görünür. Kaybolan sürüm ise hiçbir panoda görünmez.

Model de kaybı örter. Kullanıcı eski cevabı istediğinde bağlamda o cevap yoksa model onu yeniden yazmaya girişir ve sonucu eskisiymiş gibi sunabilir. Kullanıcı aradaki farkı ancak iki metni yan yana koyabilirse görür, o da elinde eski metin varsa mümkün.

Son neden ölçüm. Ekipler yeniden üretme sayısını memnuniyetsizlik işareti olarak sayar. Kullanıcının sonunda hangi sürümü seçtiği kaydedilmez, çünkü seçecek bir şey yoktur. Ürün, kullanıcıların ilk cevabı ne sıklıkla daha iyi bulduğunu hiç öğrenmez.

## Desen

Her üretim bir sürümdür. Yenisi eskisinin yanına eklenir, kullanıcı aralarında gezer, karşılaştırır ve istediğini seçer.

1. **Üstüne yazma, ekle.** Yeniden üretim yeni bir sürüm kaydı açar. Eski sürüm sayfa yenilense de oturum kapansa da yerinde durur.
2. **Sürümün kimliğini göster.** Her sürüm sıra numarası, zaman ve hangi istekle üretildiğini taşır: “2/3 · az önce · daha kısa”. Kullanıcı neyi neyle karşılaştırdığını bilir.
3. **Karşılaştırmayı kolaylaştır.** İki sürüm yan yana ya da fark olarak açılır. Kısa metinde yan yana görünüm, uzun metinde ve kodda fark görünümü daha iyi çalışır.
4. **Geri dönüş tek adım olsun ve hiçbir şeyi silmesin.** Eski bir sürümü seçmek onu geçerli yapar. Sonraki sürümler de saklanır, kullanıcı fikrini yine değiştirebilir.
5. **Ajanda her isteğin önüne bir kontrol noktası koy.** Ajan dosyaları değiştirmeden önce hâllerini kaydeder. Geri dönüş ekranı neyi geri alacağını ve neyi alamayacağını önceden söyler.
6. **Saklama sınırını söyle.** Sürüm sayısı ya da süresi sınırlıysa bu arayüzde yazar. Bir sürüm silinecekse kullanıcı bunu silinmeden önce görür.

Eski sonucu geri getirmek kodun işi. Model aynı metni bir daha üretemez, sürüm kayıttan okunur.

## Önce ve sonra

Aynı menü metni, iki ayrı asistanla. Soldaki yeniden üretilen cevabı eskisinin yerine koyuyor ve “ilk cevabı geri getir” isteğine yeni bir metinle cevap veriyor. Sağdaki iki sürümü de saklıyor, aralarındaki farkı tek satırda söylüyor ve eskisini tek tıkla geri getiriyor.

Örnek ekran (kurgusal): Kullanıcı bir kafenin menüsü için kurabiye açıklaması yazdırıyor. İlk cevabı beğeniyor ama daha iyisi var mı diye bir kez daha üretiyor.

### Önce: Asistan · menü metni

- Kullanıcı: Fıstıklı kurabiye için iki cümlelik menü açıklaması yaz.
- İçerik (Cevap · yeniden üretildi): Ev yapımı kurabiyemiz özenle seçilmiş malzemelerle hazırlanır. Lezzet dolu bir mola için ideal bir seçim.
- Kullanıcı: İlk yazdığın daha iyiydi, onu geri getir.
- AI: Önceki cevaba ulaşamıyorum. Ona benzer bir tane yazmayı deneyeyim.
- İçerik (Cevap): Antep fıstıklı kurabiyemiz hem çıtır hem yumuşak. Kahvenizin yanına harika bir eşlik.
- Düğmeler: Yeniden üret · Kopyala

1. Yeniden üretmek ilk cevabın yerine yenisini koydu. Beğenilen metin hem ekrandan hem modelin bağlamından gitti.
2. Model eskisini hatırlıyormuş gibi yeniden yazmaya çalışıyor. Çıkan metin ikisine de benzemiyor, kullanıcı beğendiği cümleyi bir daha bulamıyor.

### Sonra: Asistan · menü metni

- Kullanıcı: Fıstıklı kurabiye için iki cümlelik menü açıklaması yaz.
- İçerik (Sürüm 2 / 2 · az önce): Ev yapımı kurabiyemiz özenle seçilmiş malzemelerle hazırlanır. Lezzet dolu bir mola için ideal bir seçim.
- İçerik (Sürüm 1 / 2 · 3 dakika önce): Bol Antep fıstığıyla, dışı çıtır içi yumuşak. Sabah kahvesinin yanına tam ölçü.
- Bilgi: fark · iki cümle de değişti · “Antep fıstığı” 2. sürümde yok
- Düğmeler: Sürüm 1'i kullan · Yan yana karşılaştır · Yeniden üret

1. Yeniden üretmek yeni bir sürüm ekliyor, eskisini silmiyor. Kullanıcı iki sürüm arasında geziyor ve beğendiğini tek tıkla seçiyor.
2. Sürümler sıra ve zaman taşıyor, altında kısa bir fark satırı var. Kullanıcı hangisinin neden daha iyi olduğunu okuyarak karar veriyor.

## Piyasada

Claude Code, gönderilen her prompttan önce dosyaların hâlini bir kontrol noktası olarak kaydediyor. Kullanıcı `/rewind` komutuyla ya da boş giriş kutusunda Esc tuşuna iki kez basarak açtığı menüden [kodu, konuşmayı ya da ikisini birlikte](https://code.claude.com/docs/en/checkpointing) seçtiği noktaya geri alıyor. Belge sınırları da yazıyor. Yalnız bash komutlarıyla değiştirilen dosyalar izlenmiyor ve kontrol noktaları sürüm denetiminin yerini tutmuyor.

Visual Studio Code desteklenen sohbet oturumlarında her istekten önce etkilenen dosyaların anlık görüntüsünü alıyor. Kullanıcı bir isteğin kontrol noktasını geri yüklediğinde sonraki istekler konuşmadan çıkıyor ve dosyalar o noktadaki hâline dönüyor. Geri yüklemeden sonra Redo ile geri alınan değişiklikler de kurtarılabiliyor. Belge, kontrol noktasının [tamamlanmış terminal komutlarını, ağ isteklerini ve dış servislerdeki değişiklikleri geri almadığını](https://code.visualstudio.com/docs/agents/run/review-code-edits) ayrıca uyarıyor.

Claude'un sohbet arayüzünde önceki bir mesajı düzenlemek, konuşmanın [kendi artifact'larıyla birlikte ayrı bir sürümünü](https://support.claude.com/en/articles/17153992-what-are-artifacts-and-how-do-i-use-them) açıyor. Yardım sayfası bunu önceki işi kaybetmeden başka bir yön denemenin yolu olarak anlatıyor.

ChatGPT bu desenden geri adım atan bir örnek. Ayrıntısı aşağıda.

## Kanıt

**ChatGPT, Şubat 2026.** Bir kullanıcı OpenAI'ın geliştirici forumunda her cevabın altındaki yeniden üretim sayacının kaybolduğunu ve yeni cevap üretince öncekinin geri gelmediğini yazdı. OpenAI'ın destek hesabı aynı gün cevap verdi. Yeni “Try again” akışı yeni bir cevap üretiyor ama [birden çok sürümü görünür tutmak yerine öncekinin yerine geçiyordu](https://community.openai.com/t/where-are-options-for-choosing-better-answers-in-chatgpt/1375312) ve eski davranışa dönen bir ayar yoktu. Destek ekibinin önerisi, sohbete “regenerate” yazıp yeni cevabı ayrı bir mesaj olarak almaktı. Mart 2026'daki yardım sayfasına göre yalnız son mesaj düzenlenebiliyor ve [yalnız son cevap yeniden üretilebiliyordu](https://web.archive.org/web/20260321024011/https://help.openai.com/en/articles/11909943-gpt-53-and-gpt-54-in-chatgpt). Temmuz 2026'daki sürüm her mesajın düzenlenebildiğini ve [her cevabın yeniden üretilebildiğini](https://web.archive.org/web/20260709021313/https://help.openai.com/en/articles/11909943-gpt-55-in-chatgpt) yazıyor. Önceki cevapların saklanıp saklanmadığını bu sayfa söylemiyor.

Kaybolan cevabı yeniden üretmek neden işe yaramıyor? Thinking Machines Lab açık bir modelden aynı prompt için sıcaklık sıfırda bin cevap aldı ve [80 farklı cevap](https://thinkingmachines.ai/blog/defeating-nondeterminism-in-llm-inference/) saydı. Sıcaklık sıfır, modelin her adımda en olası tokenı seçtiği ayar. Cevaplar ilk 102 token boyunca aynıydı, sonra ayrıştı. Sıcaklığı sıfırdan yüksek bir asistanda ilk cevabı aynen yeniden üretmek daha da zor.

Bu iki kaynak bir kullanıcı araştırması değil. Biri tek bir ürünün tek bir değişikliği, öteki bir laboratuvar deneyi. Yine de birlikte bir şey söylüyorlar: sürümler bir ürün kararıyla kaybolabiliyor ve model kaybolanı geri getiremiyor.

## Ölçüm

- **Eski sürüme dönüş.** Yeniden üretimden sonra kullanıcıların ne kadarı önceki bir sürümü seçiyor? Bu oran yeniden üretimin ne sıklıkla sonucu kötüleştirdiğini söyler. Sürüm saklamayan bir üründe bu sayı ölçülemez.
- **Elle yedekleme.** Kullanıcıların cevabı yeniden üretmeden önce kopyalayıp başka yere yapıştırma sıklığı. Sürümlere güvenildiğinde bu davranış azalır.
- **Sohbetten geri isteme.** “Önceki cevabı geri getir” türünden mesajları say. Desen yerindeyse bu istekler sohbetten sürüm düğmesine taşınır.
- **Geri dönüşün eksiksizliği.** Kontrol noktasına dönülen ajan oturumlarından örneklem al ve dosyaların önceki hâliyle birebir aynı olup olmadığına bak. Fark yalnız önceden söylenen kapsam dışı değişikliklerde kalmalı.
- **Haber verilmeden silinen sürüm.** Saklama sınırı yüzünden kullanıcıya söylenmeden silinen sürüm sayısı. Hedef sıfır.

## Ajanına ver

Üç metin var. Denetim promptu ürünündeki yeniden üretme ve yeniden yazma yollarını bulur, yeni sonucun eskisinin üstüne mi yazıldığını yoksa yeni sürüm olarak mı eklendiğini ve kullanıcının eski sürüme dönüp dönemediğini tarar, yalnız rapor yazar. Uygulama promptu sürüm kaydını, sürümler arasında gezmeyi, karşılaştırmayı ve ajan için kontrol noktalarını ekler. Önce planı gösterir, onayınla uygular ve sayfa yeniden yüklendiğinde ilk cevabın değişmeden geri geldiğini sınayan bir test yazar. Kural kodlama ajanının kendi çalışması için. Bir dosyayı yeniden yazmadan önce geri dönülecek bir nokta bıraksın, eski hâli de hafızasından yazmak yerine kayıttan getirsin.

## Sınır

Tek atımlık ve ucuz çıktılarda, bir arama önerisinde ya da kod tamamlamada sürüm saklamak gerekmez. Bu desen kullanıcının üzerine emek koyduğu ya da beğenip seçtiği çıktılar için.

Sürüm saklamanın bedeli gerçek: depolama, yükleme süresi, kalabalık bir ekran. Sınırsız sürüm kullanıcıyı da boğar. Bir sınır koy, sınırı söyle ve bir sürümü silmeden önce haber ver. Claude Code oturumdaki son yüz kontrol noktasının dosya kopyalarını tutuyor ve bu sınırı belgesinde yazıyor.

Kontrol noktası dünyayı geri almaz. Gönderilmiş bir e-posta, çalıştırılmış bir komut ya da dış bir servise yazılmış bir kayıt sürüme dönünce geri gelmez. Geri dönüş ekranı bu sınırı her seferinde söylemeli, yoksa kullanıcı her şeyin geri alındığını sanar.

Sürümler seçimi mümkün kılar, seçimin yükünü de getirir. Beş benzer sürüm arasında kalan kullanıcıya aralarındaki fark gösterilmeli. Sürümleri karşılaştırmanın en kısa yolu farkı göstermek.

## Promptlar

### Denetim promptu

```
Bu depoda AI'ın aynı istek için yeniden sonuç ürettiği ya da var olan bir sonucu yeniden yazdığı bir özellik var: yeniden üret (regenerate, retry, try again) düğmesi, mesaj düzenleme, bir metni ya da görseli yeniden yazma, dosyaları yeniden düzenleyen bir ajan. Görevin, önceki sonuçların saklanıp saklanmadığını ve kullanıcının onlara dönüp karşılaştırabildiğini denetlemek. Hiçbir dosyayı değiştirme, yalnız rapor yaz.

1. AI çıktısının yeniden üretildiği ya da üzerine yazıldığı her yeri bul: yeniden üret düğmeleri, mesaj düzenleme, "yeniden yaz", "yeniden dene", içeriği güncelleyen fonksiyonlar, dosya yazan araç çağrıları.
2. Her biri için veri modeline bak: yeni sonuç eskisinin üstüne mi yazılıyor (aynı kaydı ya da alanı güncelleme), yoksa yeni bir sürüm kaydı mı ekleniyor? Eski sonuç veritabanında, istemcide ya da günlükte kalıyor mu?
3. Arayüzde önceki sürümlere nasıl ulaşılıyor: sürüm okları ("1/3"), geçmiş listesi, geri al? Sayfa yenilenince, uygulama kapanıp açılınca ya da başka cihazdan girilince sürümler hâlâ orada mı?
4. Kullanıcı iki sürümü yan yana ya da fark olarak karşılaştırabiliyor mu? Sürümler sıra, zaman ve hangi istekle (prompt, ayar, model) üretildiği bilgisini taşıyor mu?
5. Eski bir sürüme dönmek tek adım mı? Dönünce sonraki sürümler siliniyor mu, saklanıyor mu?
6. Kullanıcı sohbette "önceki cevabı geri getir" dediğinde ne oluyor? Model eski cevabı kayıttan mı alıyor, yoksa yeniden mi yazıyor?
7. Ajan dosya ya da veri değiştiriyorsa her istekten önce bir kontrol noktası alınıyor mu? Geri dönüş neyi kapsıyor, neyi kapsamıyor (terminal komutları, dış servisler, veritabanı yazımları)? Bu sınır kullanıcıya söyleniyor mu?
8. Sürümleri sınırlayan bir kural var mı (en çok N sürüm, saklama süresi, performans için kırpma)? Kullanıcı bir sürümün silineceğini önceden görüyor mu?

Rapor biçimi: her bulgu için dosya ve satır, ne olduğu, kullanıcıya etkisi (örnek: kullanıcı cevabı yeniden üretiyor, ilk cevap kalıcı olarak kayboluyor) ve önerdiğin düzeltme. Önce sonucun üzerine yazıldığı ve geri dönüşün hiç olmadığı yerleri yaz.

```

### Uygulama promptu

```
Bu depodaki AI özelliğine "önceki sürümleri sakla ve karşılaştırt" desenini uygula. Önce planı göster, onayımı aldıktan sonra kodu değiştir.

Hedef davranış:
1. Her yeniden üretim yeni bir sürüm kaydı ekler, öncekinin üzerine yazmaz. Sürüm kaydı içeriği, zamanı, sıra numarasını ve hangi istekle (prompt, ayar, model) üretildiğini taşır.
2. Arayüz her çıktının yanında kaç sürüm olduğunu gösterir ("2/3"). Sürümler arasında fareyle ve klavyeyle gezilir. Sayfa yenilense, oturum kapansa da sürümler kalır.
3. Kullanıcı iki sürümü yan yana ya da fark olarak karşılaştırabilir.
4. Kullanıcı herhangi bir sürümü tek adımda geçerli sürüm yapar. Geri dönmek sonraki sürümleri silmez.
5. Kullanıcı sohbette eski bir cevabı geri isterse sistem onu kayıttan getirir ve hangi sürüm olduğunu söyler. Model eski cevabı yeniden yazmaz.
6. Ajan dosya ya da veri değiştiriyorsa her istekten önce kontrol noktası alır. Geri dönüş ekranı neyi geri alacağını (dosyalar, satırlar) ve neyi geri alamayacağını (terminal komutları, dış servisler) önceden söyler.
7. Saklama sınırı varsa (en çok N sürüm, süre) bunu arayüzde yaz ve bir sürüm silinmeden önce kullanıcıya göster.

Uygularken:
- Eski sonucu geri getirmeyi modele bırakma. Model aynı metni bir daha üretemez, sürümü saklamak ve geri getirmek kodun işi.
- Sürüm kayıtlarını değiştirilemez tut, geçerli sürümü ayrı bir işaretçiyle belirle.
- Bir test ekle: bir cevap üret, yeniden üret, sayfayı yeniden yükle ve ilk cevabın içeriğinin değişmeden geri getirilebildiğini, geri dönünce ikinci cevabın silinmediğini doğrula. İkinci test: ajan bir dosyayı değiştirsin, kontrol noktasına dön ve dosyanın önceki hâliyle bayt bayt aynı olduğunu doğrula.

```

### AGENTS.md kuralı

```
## Önceki sürümleri sakla
- Bir dosyayı yeniden yazmadan ya da büyük bir değişiklik yapmadan önce geri dönülecek bir nokta bırak: commit, kopya ya da kontrol noktası.
- Kullanıcı "önceki hâli daha iyiydi" derse eski hâli hafızandan yeniden yazma. Kayıttan geri getir ve aynı olduğunu göster.
- Aynı iş için birden çok deneme yaptıysan denemeleri silme. Hangisinin hangi yaklaşımla yapıldığını ve aralarındaki farkı söyle.
- Geri alamayacağın değişiklikleri (çalıştırılan komutlar, dış servis çağrıları, veritabanı yazımları) yapmadan önce bunu söyle.
- Kullanıcı bir sürüme döndüğünde sonraki sürümleri de sakla, hangisinde kalacağına kullanıcı karar versin.

```

## Kaynaklar

1. [GPT-5.3 and GPT-5.4 in ChatGPT (21 Mart 2026 arşiv kopyası)](https://web.archive.org/web/20260321024011/https://help.openai.com/en/articles/11909943-gpt-53-and-gpt-54-in-chatgpt), OpenAI Help Center, Mart 2026
2. [Checkpointing](https://code.claude.com/docs/en/checkpointing), Anthropic
3. [Review and revert agent changes](https://code.visualstudio.com/docs/agents/run/review-code-edits), Microsoft (Visual Studio Code)
4. [What are artifacts and how do I use them?](https://support.claude.com/en/articles/17153992-what-are-artifacts-and-how-do-i-use-them), Anthropic (Claude Help Center)
5. [Where are options for choosing better answers in ChatGPT? (OpenAI Support yanıtı)](https://community.openai.com/t/where-are-options-for-choosing-better-answers-in-chatgpt/1375312), OpenAI Support, OpenAI Developer Community, 27 Şubat 2026
6. [GPT-5.5 in ChatGPT (9 Temmuz 2026 arşiv kopyası)](https://web.archive.org/web/20260709021313/https://help.openai.com/en/articles/11909943-gpt-55-in-chatgpt), OpenAI Help Center, Temmuz 2026
7. [Defeating Nondeterminism in LLM Inference](https://thinkingmachines.ai/blog/defeating-nondeterminism-in-llm-inference/), Thinking Machines Lab (Horace He), 10 Eylül 2025

---

Kaynak: https://tandem.komunite.com.tr · Metin CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/deed.tr), promptlar ve kural MIT-0 (https://opensource.org/license/mit-0).
