- 29 Eylül'de Anthropic tarafından yayımlanan Effective context engineering for AI agents yazısının özet çevirisidir. Blog yazısında, özgün yazıdaki görseller ve bağlantılar mümkün olduğunca korunmuştur.
Prompt mühendisliği vs bağlam mühendisliği
- Prompt mühendisliği, tekil sorguları daha iyi hale getirmeye odaklanır
- Bağlam mühendisliği ise (özellikle ajanlar için), çeşitli bağlamlar arasından gerçekten gerekli olanları kürate etmeye odaklanır.
Ajan geliştirmede bağlam mühendisliği neden önemlidir
- Günümüz ajanları, 'daha uzun süre ve daha fazla araç' kullanacak şekilde geliştiriliyor.
- Bunun sonucu olarak bağlam kaçınılmaz biçimde uzuyor; LLM'ler de insanlar gibi, bağlam çok fazla veriyle dolduğunda odağını kaybedip istenen bilgiyi çıkarmakta zorlanıyor.
- Bu yüzden bağlamı etkili biçimde kontrol etmek, ajan geliştirmede son derece önemlidir.
Etkili bağlamın anatomisi
İyi bağlam mühendisliği, istenen sonucun olasılığını en üst düzeye çıkaran, mümkün olan en küçük yüksek sinyalli token kümesini bulmak anlamına gelir.
> Smallest possible set of high-signal tokens that maximize the likelihood of some desired outcome
1) Sistem prompt'u
- Sistem prompt'u son derece açık, sade ve doğrudan bir dille, tam kararında bir ayrıntı düzeyinde yazılmalıdır. Fazla spesifik olursa farklı durumlara uyum sağlayamaz; fazla soyut olursa LLM'nin tahmin etmesi gereken şeyler gereğinden fazla olur.
- Beklenen davranışa dair asgari bir tanımla başlayın; ardından yalnızca frontier modellerin başarısız olduğu durumlar için net talimatlar ve örnekler ekleyerek iyileştirin.
- XML veya Markdown benzeri yöntemlerle bölümleri ayırın, ancak aşırı katı bir sözdizimine uymaya çalışmanız gerekmez.
2) Tools
- Tools, bilgiyi token açısından verimli şekilde döndürmeli ve aynı zamanda ajanın da token açısından verimli çalışmasını teşvik etmelidir. LLM'nin kolay anlayabileceği bir yapıda olmalı ve aralarındaki işlev çakışması en aza indirilmelidir.
- En yaygın hata, tek bir aracın çok fazla işlevi kapsaması ya da LLM'nin hangi aracı kullanacağına karar vermekte zorlanacağı bir durum yaratılmasıdır. Bir insan mühendis neyi ne zaman kullanacağına karar vermekte zorlanıyorsa, bu AI ajanı için de zordur.
- Örnek vererek yapılan few-shot prompting her zaman güçlü biçimde tavsiye edilir. Ancak çok fazla edge case eklemek genelliği azaltır. Dikkatle seçilmiş beklenen davranışları gösteren çeşitli örnekler ekleyin.
Bağlam çıkarımı ve agentic arama
- Ajan, hedefe ulaşmak için döngü içinde otonom biçimde araç çalıştıran bir varlıktır. Model güçlendikçe, ajana daha fazla yetki (özerklik) verilebilir.
- Agentic yaklaşım geliştikçe giderek daha sık görülen stratejilerden biri, bağlamı JIT (Just in Time) olarak sağlama yaklaşımıdır. Claude Code bunu çok iyi kullanır. Prompt içindeki dosya yolları ve bağlantıları görüp bunları o anda getirir.
- İyi bağlamı JIT olarak getirebilmek için, bilgiyi en baştan iyi bir yapıyla saklamak gerekir. Buna, çıkarıma yardımcı olacak metadata'nın nasıl tutulacağını düşünmek de dahildir. Klasör yapısı, adlandırma kuralları, timestamp'ler ve insanlar için önemli, anlamlı olan sinyaller; ajanların da bilgiyi kullanmasında büyük fayda sağlar.
Uzun soluklu görevler (long-horizon tasks) için bağlam mühendisliği
Uzun süren görevler çoğu zaman LLM'nin bağlam penceresini rahatlıkla aşar. Bu nedenle, ajanın iyi bir bağlamı koruyarak hedefe doğru istikrarlı biçimde ilerlemesini nasıl sağlayacağınız kritik hale gelir.
Görevin niteliğine göre genel olarak 3 teknik kullanılabilir.
- Sıkıştırma, yoğun çift yönlü iletişim gerektiren işlerde konuşma akışını korumak için uygundur.
- Yapılandırılmış not alma, belirgin kilometre taşları olan işleri iterasyonlarla geliştirmek için uygundur.
- Alt ajan mimarisi, paralel keşfin etkili olduğu karmaşık araştırma ve analizleri yürütmek için uygundur.
1) Sıkıştırma
- Bağlam penceresi sınırına yaklaşıldığında önemli içerikleri özetleyip yeni pencereye aktarma yöntemidir. Claude Code'da mesaj geçmişi geçirilip özetlettirilir. Mimari kararlar, çözülmemiş bug'lar, implementasyon ayrıntıları gibi.
- Sıkıştırmanın püf noktası, neyin tutulup neyin atılacağına karar vermektir. En kolay elenebilecek şeyler araç çağrıları ve sonuçlarıdır. Mesaj geçmişine zaten girdilerse bunları ayrıca tutmaya neredeyse gerek yoktur.
- Sonnet 4.5 ile sunulan memory tool sayesinde Context Editing mümkündür: https://www.anthropic.com/news/context-management
2) Yapılandırılmış not alma
- Buna agentic memory de denir. Düzenli olarak bağlam penceresinin dışına (yani dosya sistemine) notlar bırakıp bunları daha sonra geri getirme tekniğidir.
- Aynı şekilde Sonnet 4.5'tan itibaren memory tool ile bu tekniği kullanmak çok daha kolaylaştı.
3) Alt ajan mimarisi
- Ana ajan büyük resmi gözeterek plan yapar ve koordinasyonu sağlar; alt ajanlar ise derin teknik işleri yapar veya araçları kullanarak ilgili bilgileri bulur.
- Nasıl bir çok ajanlı araştırma sistemi kurduklarını anlatan yazıya bakın.
Sonuç
- Modeller güçlendikçe, yalnızca iyi prompt yazmanın ötesinde, her aşamada hangi bilginin 'dikkat bütçesi' içine gireceğini seçmek önemli bir mesele haline geldi.
- İster uzun vadeli görevler için sıkıştırma uygulayın, ister token açısından verimli araçlar tasarlayın, ister ajanın doğru zamanda ortamı keşfetmesini sağlayın; rehber ilke hep aynıdır: istenen sonucun olasılığını en üst düzeye çıkaran en küçük yüksek sinyalli token kümesini bulmak.
- Bu yazıdaki teknikler model gelişmeleriyle birlikte sürekli evrilip daha otonom hale gelecek olsa da, 'bağlam değerli ve sınırlı bir kaynaktır' bakışı güvenilir ve etkili ajanlar inşa etmenin temelinde kalacaktır.
- Daha fazlası için memory ve context management cookbook incelenebilir.
Henüz yorum yok.