İletişim

Sistem Promptu (System Prompt) Nedir?

Kısa tanım

Sistem promptu (system prompt), bir yapay zekâ uygulamasını geliştiren tarafın dil modeline konuşma başlamadan önce verdiği ve bütün konuşma boyunca geçerli kalan talimatlardır. Modelin rolünü, kapsamını, üslubunu, kullanabileceği araçları ve çıktı biçimini belirler. Son kullanıcı genellikle bu metni görmez. Modeller sistem talimatlarına kullanıcı mesajlarından daha fazla öncelik verecek şekilde eğitilir, ancak sistem promptu bir güvenlik sınırı değildir.

Diğer adları: system prompt, sistem mesajı, sistem talimatı, developer message, system instructions

Uygulamanın verdiği sistem promptunun kullanıcı mesajlarından önce gelip modelin tüm cevaplarını yönlendirdiğini gösteren diyagram

API'de nerede durur?

Sağlayıcılar sistem talimatlarını kullanıcı mesajlarından ayrı bir yerde taşır. Anthropic'in Messages API'sinde bu, mesaj listesinin dışındaki system parametresidir. OpenAI'nin metin üretimi rehberi ise instructions parametresini ve developer rolündeki mesajları tarif eder; developer mesajlarının kullanıcı mesajlarının önünde önceliklendirildiğini belirtir. Yapı kabaca şöyledir:

{
  "system": "Sen Örnek Kargo'nun müşteri destek asistanısın. ...",
  "messages": [
    { "role": "user", "content": "Paketim neden hâlâ dağıtıma çıkmadı?" }
  ]
}

Kullanıcı her mesajında farklı bir şey sorar; sistem promptu ise her istekte aynen tekrar gönderilir ve modelin bütün konuşma boyunca nasıl davranacağının çerçevesini çizer.

İyi bir sistem promptunda neler bulunur?

  • Rol ve muhatap: Model kim adına, kime konuşuyor? Teknik bir ekip mi, son kullanıcı mı?
  • Kapsam: Hangi konularda yardım edecek, hangilerinde kibarca yönlendirecek?
  • Bilgi kaynağı kuralı: Yalnızca verilen belgelere mi dayanacak? Cevap belgelerde yoksa ne diyecek?
  • Araç kullanımı: Hangi aracı ne zaman çağırabilir, hangi işlemler için kullanıcı onayı gerekir? Bu konu fonksiyon çağırma ile birlikte düşünülmelidir.
  • Üslup ve biçim: Sen mi siz mi, uzunluk, liste ya da paragraf tercihi.
  • İnsana devretme: Hangi durumlarda canlı desteğe aktaracağı.

Talimatların gerekçesini yazmak modele genellikle yardımcı olur. “Kısa cevap ver” yerine “Cevaplar mobil ekranda okunuyor, bu yüzden üç cümleyi geçme” demek, modelin benzer durumlarda doğru karar vermesini kolaylaştırır.

Gizli değildir, güvenlik sınırı da değildir

Sistem promptunun kullanıcıdan saklandığını varsaymak yaygın bir hatadır. Kullanıcılar çeşitli yollarla modelden talimatlarını tekrar etmesini isteyebilir; OWASP'ın LLM uygulamaları için hazırladığı Top 10 listesi bu riski “System Prompt Leakage” (LLM07:2025) adıyla ayrı bir madde olarak sayar. Bundan iki pratik sonuç çıkar:

  1. Sistem promptuna gizli bilgi koymayın. API anahtarları, iç sistem adresleri, parola kuralları ve müşteri verileri prompt metninde değil, uygulamanın kendi güvenli katmanında durmalıdır.
  2. Yetkiyi prompta bırakmayın. “Bu kullanıcıya başka müşterilerin siparişlerini gösterme” kuralı bir yetkilendirme kontrolü değildir. Erişim kontrolü kodda uygulanmalı; model hiçbir zaman kullanıcının görmemesi gereken veriye ulaşabilir durumda olmamalıdır.

Dışarıdan gelen metinlerin sistem talimatlarını geçersiz kılmaya çalışması ise prompt enjeksiyonu olarak bilinir. Modeller sistem talimatlarına öncelik verecek şekilde eğitilse de bu öncelik bir garanti değildir.

Kod gibi yönetin

Sistem promptu bir ürün davranışını tanımlar; bu yüzden yazılım koduyla aynı özeni hak eder. Sürüm kontrolünde tutulmalı, her değişiklik gerçek kullanıcı sorularından oluşan bir test setiyle denenmeli ve model sürümü yükseltildiğinde yeniden değerlendirilmelidir. Uzunluğa da dikkat etmek gerekir: sistem promptu her istekte bağlam penceresinden yer kaplar ve maliyete eklenir. Değişmeyen uzun talimatlar için bazı sağlayıcıların sunduğu önbellekleme (prompt caching) özellikleri bu maliyeti azaltabilir. Talimatlar, örnekler ve getirilen bilgilerle birlikte bütün bağlamın tasarlanması daha geniş bir disiplinin, bağlam mühendisliğinin konusudur.

İlgili terimler

← Sözlüğe dön