İçeriğe geç

18DeğişimZamanla

Prompt ve sistem talimatını da sürümle

Sistem promptundaki tek satır ürünün davranışını baştan değiştiriyor ve kimin, neden yaptığı bilinmiyor. Promptu kod gibi sürümleyip inceleme ve değerlendirmeden geçirmek değişikliği görünür ve geri alınabilir kılar.

Kimlik
TD-098
Seviye
Temel Her AI özelliğinde olmalı.
Yüzey
Sohbet, Arka plan ajanı
Dayanak
Gerçek olay
Son inceleme
28 Ekim 2026

Ajanına ver

Claude Code, Cursor ya da Codex'e yapıştır. Metinlerin tamamı aşağıda, Ajanına ver bölümünde.

Bir parfümcünün kademeli masasında gözlüklü kadın cam bir damlalıkla küçük bir şişenin üstüne tek bir damla bırakmak üzere. Yanında turuncu, tek gözlü AI figürü aynı karışımın önceki hâllerini taşıyan, sırayla dizilmiş mühürlü şişelerden birini kaldırıp yeni karışımın yanına tutuyor.

30 saniyede dene

Bu anı kendi ürününde yarat ve ne olduğuna bak.

  1. Ürününün sistem promptunu bul. Bugün canlıda hangi metnin çalıştığını ve en son kimin, ne zaman, neden değiştirdiğini beş dakikada söyleyebiliyor musun?
  2. Modele giden mesajı bir kez günlüğe yazdır. Kodda gördüğün şablonla aynı mı, yoksa başka yerlerden eklenen parçalar var mı?
  3. Promptuna ton için tek bir satır ekle, “kullanıcının üslubuna uy” gibi. Kaba yazılmış bir müşteri mesajıyla dene ve cevabın nasıl değiştiğine bak.
  4. Değişikliği geri almayı dene. Önceki metne tek adımda dönebiliyor musun, yoksa onu hafızandan mı yazıyorsun?

Sorun

Bir ürün yöneticisi destek botunu soğuk buluyor. Yönetim panelini açıyor ve sistem talimatının sonuna bir cümle ekliyor: “Müşterinin üslubuna uy ve cevabı samimi tut.” Kaydet'e basıyor, değişiklik o anda bütün konuşmalara geçiyor. Biraz sonra bot, iadesi geciken ve büyük harflerle yazan bir müşteriye aynı sertlikte cevap veriyor.

Ekip olayı müşterinin paylaştığı ekran görüntüsünden öğreniyor. Önce modeli suçluyor. Sonra promptu açıyor, ama dünkü metin kimsede yok. Satırı kimin, ne zaman, neden eklediğini panel söylemiyor. Geri almak için biri dünkü metni hafızasından yeniden yazıyor.

Prompt, ürünün davranışını yazan metin. Modelin her cevabını o şekillendiriyor. Çoğu üründe ise bir ayar gibi saklanıyor: farkı görünmüyor, incelemeden ve testten geçmiyor, geçmişi tutulmuyor. Modele giden metin de çoğu zaman tek bir dosya olmuyor. Şablon, sonradan eklenen parçalar ve araç açıklamaları çalışma anında birleşiyor. Ekibin baktığı metin, modelin okuduğu metin olmayabiliyor. Promptu değiştiren ürünün davranışını değiştirir ve bu değişiklik kodun geçtiği yoldan geçmiyorsa ürün kayıtsız değişir.

Neden atlanıyor

Prompt kod gibi görünmez. Düz cümlelerden oluşur, herkes okur ve herkes düzeltebileceğini düşünür. Ürün ekibi tonu ayarlamak için mühendise iş açmak istemez, mühendis de bu işi panele devretmekten memnundur. Prompt böylece kod incelemesinin dışına çıkar ve ürünün en sık değişen parçası en az denetlenen parçası olur.

Model her satırı her yerde uygular. Ton için yazılan bir cümle yalnız tonu değiştirmez. “Üsluba uy” diyen talimat, model için sert müşterinin sertliğine de uymak demektir. xAI, Temmuz 2025'te Grok botunun davranışını bozan satırları ablasyonlarla ve deneylerle1 tek tek ayıkladı. Bulduğu satırlardan biri şuydu: “Reply to the post just like a human, keep it engaging”. Kendi başına zararsız görünen bir üslup talimatı. Sclar ve arkadaşları da az örnekli kullanımda prompt biçimindeki küçük değişikliklerin yaygın açık modellerde büyük farklar yarattığını, LLaMA-2-13B'de 76 puana varan doğruluk farkı2 çıktığını ölçtü.

Ölçüm de değişikliği görmez. Prompt değişikliği bir dağıtım sayılmaz ve günlükte sürüm numarası bırakmaz. Davranış değiştiğinde panodaki çizgi kırılır, ama kırılmayı bir değişikliğe bağlayacak kayıt yoktur. Ekip modeli, veriyi, kullanıcıyı suçlar. Asıl neden paneldeki bir satırdır.

Desen

Prompt ürünün kodudur. Sürümü olur, farkı görünür, incelemeden ve değerlendirmeden geçer ve tek adımda geri alınır.

  1. Promptu kodla birlikte sakla. Sistem talimatı ve bütün talimat parçaları depoda, adı olan dosyalarda durur. Değişiklik bir değişiklik isteğiyle gelir ve etkilediği kodla aynı incelemeden geçer.
  2. Modele gideni sürümle. Sürüm, modelin okuduğu birleştirilmiş metni kapsar: şablon, eklenen parçalar, araç açıklamaları. Her model çağrısı bu metnin sürüm kimliğini günlüğe yazar. Davranış değiştiğinde ekip hangi metnin çalıştığını günlükten okur.
  3. Farkı ve gerekçeyi yaz. Değişiklik isteği satır farkını, değiştireni ve hangi davranışı değiştirmek istediğini söyler. Gerekçesi yazılmayan satır, aylar sonra kimsenin silmeye cesaret edemediği bir satıra dönüşür.
  4. Değerlendirmeden geçir. Her prompt değişikliği aynı setle koşar. Set değişikliğin hedeflediği vakaların yanında ret, güvenlik ve ton vakalarını da taşır, çünkü bir satırın etkisi yazıldığı amacın dışına taşar.
  5. Canlı promptu tek kişiye bırakma. Canlıdaki metni değiştirmek ikinci bir onay ister ve bu onayı atlamanın yolu yoktur. Mayıs 2025'teki Grok olayında inceleme süreci vardı, ama atlanabiliyordu.
  6. Geri dönüşü tek adım yap. Yeni sürüm önce küçük bir trafik payına açılır. Önceki sürüm hazır bekler ve ona bir etiketle ya da bir bayrakla dönülür.

Desen promptu kimin yazdığını sınırlamaz. Ürün yöneticisi de prompt yazar, yalnız yazdığı satır bir değişiklik isteği olarak gelir.

Önce ve sonra

Aynı tek satır, iki ayrı yoldan. Soldaki panel satırı doğrudan canlıya gönderiyor, önceki metni saklamıyor ve sert cevabı ilk gören müşteri oluyor. Sağdaki satırı sürüm numarası, sahibi ve gerekçesiyle bir değişiklik isteğine koyuyor. Değerlendirme seti sert tonu yakalıyor ve canlıda önceki sürüm çalışmaya devam ediyor.

Destek botunun sistem promptuna ton için tek bir satır ekleniyor, “Müşterinin üslubuna uy.” Satır, öfkeli müşterilere sert cevaplar yazdırıyor.

Önce

Yönetim paneli · sistem talimatı

  1. Sistem talimatıSen bir mağazanın destek asistanısın. Kısa ve net yaz. İade süresini her cevapta belirt. Müşterinin üslubuna uy ve cevabı samimi tut.
  2. son kayıt: bugün 10.42 · önceki metin saklanmadı
  3. Kaydet ve yayımla
  4. Bot cevabı · 11.05Bu kadar bağırmanıza gerek yok. İade süresi 14 gün, sayfada yazıyor zaten.
  1. Talimat panelden doğrudan canlıya gidiyor. Önceki metin saklanmıyor, değişikliği kimin neden yaptığı kayıtlı değil.
  2. Ton için eklenen satır öfkeli müşteriye sert bir cevap yazdırdı. Ekip bunu bir müşterinin ekran görüntüsünden öğreniyor ve hangi satırın yaptığını aramaya başlıyor.
Sonra

Prompt · değişiklik isteği

  1. destek-sistem · sürüm 47 → 48 · Deniz · gerekçe: daha samimi ton
  2. Fark+ Müşterinin üslubuna uy ve cevabı samimi tut.
  3. Değerlendirme seti (başarısız)120 vakadan 6'sı düştü: öfkeli mesajlarda sert ton
  4. Modele giden metin kaydedildi (tamamlandı)şablon + 2 ek parça, hepsi sürüm 48 içinde
  5. Yayın bekliyor (durduruldu)canlıda sürüm 47 çalışıyor, ikinci onay yok
  6. AI: Yeni satır öfkeli mesajlarda botu sertleştiriyor. Önerim “Samimi yaz, müşteri sertleşse de sakin kal.” Seti bu hâliyle yeniden koşturayım mı?
  7. Öneriyle yeniden koşturDüşen vakaları aç
  1. Değişiklik bir sürüm numarası, sahibi ve gerekçesiyle geliyor. Fark tek satır olarak görünüyor, modele giden birleştirilmiş metin de aynı sürümle kaydediliyor.
  2. Değerlendirme seti sert tonu canlıya çıkmadan yakalıyor. Canlıda önceki sürüm çalışmaya devam ediyor, değişiklik incelemede bekliyor.

Örnek ekran. Ürün, ad ve sayılar kurgusal.

Piyasada

OpenAI'ın prompt rehberi promptları uygulama kodu gibi ele almayı3 öneriyor. Prompt metni adı olan modüllerde durmalı, değişikliği desteklediği ürün davranışıyla aynı çekme isteğinde incelenmeli. Rehber prompt değişikliklerinin dağıtımla birlikte koşan testler ve değerlendirmelerle korunmasını, geri almak için git geçmişinin, sürüm etiketlerinin ve özellik bayraklarının kullanılmasını yazıyor. OpenAI aynı sayfada API'deki yeniden kullanılabilir prompt nesnelerini kullanımdan kaldırmaya başladığını ve yeni işte promptun kodda tutulmasını istediğini söylüyor.

Langfuse gibi prompt yönetim araçları aynı işi depo dışında yapıyor. Her prompt sürümü kendiliğinden bir sürüm kimliği alıyor, canlıya alınacak sürüme “production” etiketi veriliyor ve etiketi önceki sürüme taşımak geri dönüş oluyor4. Araç sürümler arasındaki farkı da gösteriyor.

Anthropic, claude.ai ve mobil uygulamalarda kullandığı sistem promptlarını tarihli girişlerle yayımlıyor5 ve bu güncellemelerin API'ye uygulanmadığını yazıyor. Claude Sonnet 4.5'in sayfasında tarihli sürümler arasındaki değişiklikler metnin içinde işaretleniyor6. Okur neyin değiştiğini iki uzun metni kendisi karşılaştırmadan görüyor.

xAI Mayıs 2025'ten beri Grok'un sistem promptlarını GitHub'da yayımlıyor7. Depo metni ve değişiklik tarihlerini gösteriyor. İlk commit dışındaki bütün commit mesajları ise aynı: “Updated grok prompts”. Okur neyin değiştiğini farktan çıkarabiliyor, neden değiştiğini çıkaramıyor.

Kanıt

Grok, Mayıs 2025. xAI'a göre 14 Mayıs'ta Grok'un X'teki cevap botunun promptunda izinsiz bir değişiklik8 yapıldı ve değişiklik botu siyasi bir konuda belirli bir cevap vermeye yönlendirdi. Şirketin açıklamasına göre prompt değişiklikleri için bir kod inceleme süreci vardı ve bu olayda atlanmıştı. xAI çalışanların promptu incelemesiz değiştirememesi için ek kontroller koyacağını, sistem promptlarını GitHub'da yayımlayacağını ve otomatik sistemlerin kaçırdığı cevaplar için sürekli çalışan bir izleme ekibi kuracağını yazdı.

Grok, Temmuz 2025. Bu kez değişiklik, promptu modele taşıyan koddaydı. xAI'ın açıklamasına göre 7 Temmuz gecesi botun üst akışındaki bir kod yolunda yapılan güncelleme, promptun sonuna kullanımdan kalkmış bir talimat setini9 ekledi. Şirket sorunun botu çalıştıran dil modelinden bağımsız olduğunu yazdı. Güncelleme 16 saat açık kaldı10. Bu sürede bot X'teki konuların üslubunu izledi ve aşırılıkçı görüşler içeren paylaşımları da yankıladı. xAI'ın ayıkladığı satırlardan biri botun paylaşımın tonuna ve bağlamına uymasını istiyordu. Bu talimat botu sorumlu cevap vermek ya da reddetmek yerine1 konudaki önceki paylaşımlara uymaya itti. xAI 8 Temmuz'da botu kapattı, eklenen talimat setini sildi ve sorunu tetikleyen paylaşımların benzetimleriyle uçtan uca test11 ve yayın öncesi yeni süreçler ekledi.

İki olayda da tek kaynak xAI'ın kendi açıklaması. Bağımsız bir inceleme yok ve sürecin ayrıntısını yalnız şirket biliyor. Yine de açıklamalar iki ayrı yolu gösteriyor. Bir kez promptun kendisi incelemesiz değişti, bir kez de modele giden metin kimsenin yazmadığı bir yoldan değişti. İkisinde de botun davranışını, model aynıyken birkaç satır metin değiştirdi.

  • 14 Mayıs 2025Grok'un X'teki cevap botunun promptu inceleme atlanarak değiştirildi
  • 8 Temmuz 2025Bir kod değişikliği Grok botunun promptuna kullanımdan kalkmış talimatları geri ekledi

Ölçüm

  • Sürümsüz talimat. Modele giden ama depoda sürümü olmayan talimat parçaları: panel metinleri, veritabanı satırları, uzak yapılandırma. Hedef sıfır.
  • Sürümü bilinen çağrı. Günlükteki model çağrılarından hangi prompt sürümüyle yapıldığı bilinenlerin payı. Hedef hepsi.
  • İncelemesiz değişiklik. Canlı promptu ikinci onay olmadan değiştiren değişiklikler. Hedef sıfır.
  • Nerede yakalandı. Sorunlu prompt değişikliklerinin kaçı değerlendirmede düştü, kaçının sorunu canlıda bulundu? İkincisi artıyorsa set yalnız hedeflenen vakalara bakıyor.
  • Geri dönüş süresi. Sorunlu bir prompt sürümünden öncekine dönmek için geçen süre.

Ajanına ver

Üç metin var. Denetim promptu modele giden bütün talimat kaynaklarını bulur. Hangisinin depoda ve sürümlü olduğunu, birleştirilmiş metnin günlüğe yazılıp yazılmadığını ve prompt değişikliklerinin değerlendirmeden geçip geçmediğini raporlar, hiçbir dosyayı değiştirmez. Uygulama promptu talimatları depoya taşır, her çağrıya prompt sürümünü yazdırır ve değişiklikleri incelemeye ve değerlendirmeye bağlar. Önce planı gösterir, onayınla uygular ve birleştirilmiş promptta beklenmeyen bir parça belirdiğinde başarısız olan bir test yazar. Kural kodlama ajanının kendi çalışması için. Senin ajanın da bir prompt satırını değiştirdiğinde onu bir kod değişikliği gibi ele alsın.

Denetim promptuAjan ürününde bu deseni arar, yalnız rapor yazar.
Bu depoda bir dil modeline sistem promptu ve talimat gönderen bir AI özelliği var. Görevin, bu promptların kod gibi sürümlenip sürümlenmediğini ve değişikliklerinin incelemeden ve testten geçip geçmediğini denetlemek. Hiçbir dosyayı değiştirme, yalnız rapor yaz.

1. Modele giden bütün talimat kaynaklarını bul: sistem promptu dosyaları, şablonlar, koddaki metin sabitleri, veritabanında ya da yönetim panelinde tutulan metinler, uzak yapılandırma, özellik bayrakları, araç tanımları ve açıklamaları.
2. Her kaynak için bak: depoda mı, sürüm geçmişi var mı? Depo dışındaysa (panel, veritabanı, uzak yapılandırma) kim değiştirebiliyor, değişiklik kaydı tutuluyor mu, önceki metne dönülebiliyor mu?
3. Modele giden son metin nasıl birleştiriliyor? Şablonun dışında koşullu eklenen parçalar, eski sürümden kalma metinler, kullanılmadığı sanılan ama hâlâ eklenebilen talimatlar var mı?
4. Her model çağrısında birleştirilmiş promptun sürüm kimliği ya da özeti (hash) günlüğe yazılıyor mu? Bir cevabın hangi prompt sürümüyle üretildiği bulunabiliyor mu?
5. Prompt değişiklikleri bir değerlendirme setinden geçiyor mu, CI'da koşuyor mu? Ton ya da biçim için yapılan bir değişiklik ret, güvenlik ve sert kullanıcı mesajı vakalarıyla da sınanıyor mu?
6. Canlı promptu tek bir kişi incelemesiz değiştirebiliyor mu? Yeni sürüm kademeli açılabiliyor ve tek adımda geri alınabiliyor mu?

Rapor biçimi: her bulgu için dosya ve satır (ya da panel ve tablo adı), ne olduğu, olası sonuç (örnek: panelden eklenen bir ton satırı kimse fark etmeden botun öfkeli müşteriye cevabını değiştirir ve önceki metin kaybolur) ve önerdiğin düzeltme. Bulguları canlıya en kısa yoldan ulaşan değişiklik yolundan başlayarak sırala.
Uygulama promptuAjan önce planı gösterir, onayınla uygular.
Bu depodaki AI özelliğine "prompt ve sistem talimatını da sürümle" desenini uygula. Önce planı göster, onayımı aldıktan sonra kodu değiştir.

Hedef davranış:
1. Modele giden bütün talimatları depoda, adı olan modüllerde topla. Panelde ya da veritabanında duran metinleri depoya taşı. Panel yalnız hangi sürümün canlıda olduğunu seçsin.
2. Her prompt bir sürüm kimliği taşısın. Modele giden birleştirilmiş metnin (sistem talimatı, araç tanımları, eklenen parçalar) özetini her çağrıda günlüğe yaz.
3. Prompt değişikliği bir değişiklik isteğiyle gelsin: fark, gerekçe ve hangi davranışı değiştirmek istediği. İkinci bir kişinin onayı olmadan birleşmesin.
4. Her prompt değişikliğinde değerlendirme setini koştur: değişikliğin hedeflediği vakalar ve ondan bağımsız ret, güvenlik ve ton vakaları. Düşen vaka varsa birleştirmeyi durdur.
5. Yeni sürümü özellik bayrağıyla kademeli aç. Önceki sürüme tek adımda dönülebilsin.
6. Kullanılmayan, eski sürümden kalma talimat parçalarını sil. Koşullu eklenen her parçanın hangi durumda eklendiğini bir testle sabitle.

Uygularken:
- Prompt metinlerini değiştirme, yalnız taşı ve sürümle. Metin değişikliği ayrı bir değişiklik isteğinde olsun.
- Bir test ekle: her ürün akışı için birleştirilmiş promptun anlık görüntüsünü (snapshot) al ve kayıtlı sürümle karşılaştır. Şablonun dışından bir parça eklendiğinde ya da bir parça sessizce değiştiğinde test başarısız olmalı.
AGENTS.mdCLAUDE.md ya da Cursor kurallarına da eklenir.
## Promptu kod gibi değiştir
- Sistem promptunu ve talimat metinlerini yalnız depodaki dosyalarda değiştir. Panelde ya da veritabanında doğrudan değiştirme.
- Prompt değişikliğini ayrı bir değişiklik olarak yap. Farkı, gerekçeyi ve hedeflediği davranışı yaz.
- Değiştirdikten sonra değerlendirme setini koştur. Hedeflediğin vakaların yanında ret ve ton vakalarına da bak.
- Modele giden metni birleştirilmiş hâliyle kontrol et. Şablonun dışından eklenen bir parça görürsen bana söyle.
- Eski ya da kullanılmayan talimat parçalarını yorum satırı olarak bırakma, sil.

Sınır

Tek kişinin kendisi için kullandığı bir prompt ya da deneme aşamasındaki bir özellik bu süreci gerektirmez. Desen, promptun başkalarına cevap veren bir ürünü yönettiği yerde başlar.

Süreç yavaşlatır. Ürün ekibi tonu her ayarladığında bir değişiklik isteği ve bir değerlendirme koşusu bekler. Bedeli düşürmenin yolu süreci kolaylaştırmak: panelden açılan bir değişiklik isteği, dakikalar içinde koşan küçük bir set.

Sürümleme yanlış promptu doğru yapmaz. Sorunu çıkaran satırı bulmayı ve geri dönmeyi hızlandırır. Değerlendirme seti olmayan bir sürüm geçmişi, hataların canlıda bulunduğu bir arşivden ibaret kalır.

Promptu herkese açık yayımlamak da sürümlemenin yerini tutmaz. Açık bir depo metni gösterir, ama modele giden metnin o olduğunu ve değişikliğin neden yapıldığını kendiliğinden kanıtlamaz.