System + Tools + Few-Shot: İçeride Doğru Sıralama
Prompt'un büyük blokları içindeki sıralama da kritik. System içinde KB ve instructions hangi sırada? Tools nereye? Few-shot examples cache'lenir mi? Bu derste mikro-yapı kararlarını sistematik öğreneceksin.
Şükrü Yusuf KAYA
13 min read
IntermediatePrompt'un İçinde Doğru Sıralama
Modül 4 Ders 24'te "statik üstte, dinamik altta" altın kuralını öğrendik. Şimdi bu kural prompt'un içindeki katmanlar için de geçerli — ama nüanslarla.
Anthropic system Array'i#
Anthropic parametresi bir array olabilir — birden çok text block. Her birinin değişim hızı farklı olabilir:
systempython
system_blocks = [ # 1. Şirket bilgi bankası — ayda 1 değişir (50K token) { "type": "text", "text": COMPANY_KB, "cache_control": {"type": "ephemeral", "ttl": "1h"}, }, # 2. Tool kullanım rehberi — 3 ayda 1 değişir (1K token) { "type": "text", "text": TOOL_USAGE_GUIDE, "cache_control": {"type": "ephemeral", "ttl": "1h"}, }, # 3. Persona & ton — haftada 1 değişir (500 token) { "type": "text", "text": PERSONA_INSTRUCTIONS, "cache_control": {"type": "ephemeral", "ttl": "5m"}, },]Multi-block system: her blok kendi cache_control'üyle
Sıralama mantığı: En statik (KB, 1h TTL) → en sık değişen (Persona, 5m TTL).
Neden? TTL bittiğinde cache yeniden write. Eğer persona üstte ve 5m TTL'i bitince KB de yeniden write etmek zorunda kalır → maliyet patlar.
Breakpoint Bütçesi
Anthropic'in 4 breakpoint limit'i içinde bu blok'lar 2-3 breakpoint kullanır. Geri kalan tools ve conversation history'ye kalır.
Tools Array'inin Yeri#
Anthropic'te tools parametresi system'den sonra geliyor:
Tools'ı nasıl cache'lersin? Tools array'inin son elemanına cache_control:
python
tools = [ {"name": "search_orders", "description": "...", "input_schema": {...}}, {"name": "track_shipment", "description": "...", "input_schema": {...}}, {"name": "lookup_product", "description": "...", "input_schema": {...}}, { "name": "escalate", "description": "...", "input_schema": {...}, "cache_control": {"type": "ephemeral", "ttl": "1h"}, # ← son tool },]Tool array'inin son elemanına cache_control
Bu cache_control "buraya kadar olan tüm tools cache'lensin" demek. Yani 3 tool da otomatik dahil.
Pratik gözlem: Anthropic'te en sık karıştırılan: cache_control'u system'in son block'una koymak ve "tools da cache'leniyor" sanmak. Hayır, tools ayrıca cache_control istemiyor — kendi bloğunda olmalı.
Few-Shot Examples Cache'lenebilir Mi?#
Evet, hatta kuvvetle önerilir. Few-shot örnekler statik (her sorgu için aynı) → ideal cache adayı.
İki yöntem:
system_blocks = [ { "type": "text", "text": f"""Asistan kuralları: ... # Örnekler ## Örnek 1 User: Siparişim nerede? Assistant: Sipariş numarası alabilir miyim? ## Örnek 2 User: İade nasıl yapılır? Assistant: 14 günlük iade hakkınız var... """, "cache_control": {"type": "ephemeral"}, } ]
Hangisini seçmeli?
- System içinde: few-shot'lar gerçek diyalog değil; modele "stil rehberi" gibi düşün
- Messages içinde: few-shot'lar gerçek diyalog formatında; modele "diyaloğun devamı" gibi sunulur
Modern öneri: messages içinde, çünkü çoğu LLM bu formatla daha iyi öğreniyor.
Sıralama Kararı — Sistematik#
Bu prompt blokları için karar matrisi:
| Blok | Değişim Hızı | TTL Önerisi | Sırası |
|---|---|---|---|
| Knowledge Base (50K+) | Ayda 1-2 | 1h | 1 (en üstte) |
| Tool usage guide | 3 ayda 1 | 1h | 2 |
| Persona / instructions | Haftada 1-2 | 5m | 3 |
| Tool definitions | Hafta-3 ay | 1h | 4 (tools array) |
| Few-shot examples (system) | Aylık | 5m veya 1h | system sonunda |
| Few-shot examples (messages) | Aylık | 5m | history başında |
| Conversation history | Her turn | 5m | history sonu |
| User query | Her istek | Cache YOK | messages sonu |
✓ Pekiştir#
Bir Sonraki Derste#
1, 2, 4 breakpoint mimarileri: hangisi ne zaman? Trade-off analizi.
Frequently Asked Questions
Multi-block. Her bloğun değişim hızı farklı olabilir, ayrı cache_control ile kontrol edebilirsin. Tek string verirsen tek bir breakpoint, ya hepsi cache hit ya hepsi miss.
Yorumlar & Soru-Cevap
(0)Yorum yazmak için giriş yap.
Yorumlar yükleniyor...
Related Content
1. Temeller — Context Penceresi Ekonomisi
Bu Eğitim Hakkında ve Prompt Caching Neden Önemli?
Start Learning1. Temeller — Context Penceresi Ekonomisi
Token Ekonomisi 101: Input vs Output Cost Asimetrisi
Start Learning1. Temeller — Context Penceresi Ekonomisi
Context Window Evrimi: 4K'dan 1M'a 5 Yılda Ne Oldu?
Start LearningConnected pillar topics