Nedir bu Context Engineering ?
Prompt Engineering’i tam öğrenmişken nerden çıktı bu Context Engineering ?
Son birkaç yıldır hep beraber LLM’ler dünyasının sürüklediği noktaya doğru evriliyoruz . LLM kapılarının anahtarını Promp Engineering’in açtığını yani doğru biçimde istem yada sorgu yazmak olduğunu önceki makalelerde ifade etmiştim. Prompt Engineering’in çok büyük bir küme olduğunu sanıyorduk ama o da başka bir kümenin alt kümesi imiş meğer: Context Engineering.
Prompt Engineering’i daha yeni öğrenmiştik, şimdi bir de Context Engineering mi çıktı ? diyenleri duyar gibiyim. Peki nedir o zaman bu yeni konsept?
NOT: En alttaki örnekleri okumadan bu yazıyı sonlandırmamanınız tavsiye ediyorum
Context Engineering nedir ?
“Context engineering” veya Türkçe adıyla “bağlam mühendisliği”, bir yapay zekanın (AI) bir işi beklenen ve istenen seviyede yapabilmesi için ona gerekli tüm bilgileri ve araçları önceden hazırlamak anlamına gelir. Yapay zeka modellerinin (özellikle büyük dil modellerinin — LLM’lerin) bir görevi daha iyi anlaması ve daha doğru yanıtlar üretmesi için gerekli tüm çevreyi, bilgileri ve araçları önceden hazırlama sürecidir
Yapay zeka (AI) projelerinde beklenen sonuçların alınamadığı, anlamsız yanıtlar ürettiği veya tutarsız davrandığı durumlara şahit olunabiliyor. Sadece ‘doğru prompt’u yazmakla bu sorunların üstesinden gelemeyeceğinizi fark ettiyseniz, bağlam mühendisliği (context engineering) kavramıyla tanışmanın zamanı gelmiş demektir. Tıpkı kafası karışık, dağınık bir ressamın rastgele fırça darbeleri atması yerine, her şeyi planlanmış, düzenli ve belirli bir amaca hizmet eden bir eser ortaya koyan usta bir sanatçı gibi, context engineering de bir yapay zeka modelinin ‘zihinsel dünyasını’ en baştan tasarlama sanatıdır. Bu, yapay zekaya sadece ne yapması gerektiğini söylemekten çok daha fazlasını içerir: görevini tam anlamıyla anlayabilmesi, halüsinasyonları azaltması, tutarlı ve güvenilir çıktılar üretebilmesi için gerekli tüm bilgiyi, araçları ve kuralları doğru zamanda ve doğru formatta ona sunmaktır. Özellikle karmaşık AI agent’lar ve uzun süreli görevler için, Context Engineering, AI sistemlerinizin gerçek potansiyelini ortaya çıkarmanın anahtarıdır, hatta agent başarısızlıklarının çoğunun model yetersizliğinden değil, bağlam eksikliğinden kaynaklandığı belirtilmektedir. Amacı, modelin farklı kullanıcılar ve oturumlar arasında bile tutarlı ve kaliteli performans göstermesini sağlamaktır. Yapay zeka modellerinin (özellikle büyük dil modellerinin — LLM’lerin) bir görevi daha iyi anlaması ve daha doğru yanıtlar üretmesi için gerekli tüm çevreyi, bilgileri ve araçları önceden hazırlama sürecidir.
Context vs. Prompt Engineering
Daha basit bir örnek ile aktarmaya çalışırsak;
Prompt Engineering açısından bir yaklaşımla, öğretmenin öğrencisine “2 + 2 nedir?” diye çok net bir talimat vermesi örnek verilebilir. Aynı soruyu Context Engineering bağlamında şöyle ele alırız. Öğretmen, öğrencisine bir matematik kitabı verir, toplama işlemini nasıl yapacağını öğretir, sessiz bir yerde çalışmanı sağlar, belki de bir hesap makinesi verir. En son sorusunu sorar. Tüm bu hazırlıklar sayesinde, öğrenci soruyu çok daha kolay ve doğru cevaplayabilir.
Context Engineering, yapay zekanın sadece tek bir talimatı yerine getirmesini değil, daha uzun ve karmaşık görevleri tutarlı ve başarılı bir şekilde yapabilmesini sağlamak için gerekli tüm “zihinsel dünyayı” tasarlamaktır. Bu, yapay zekanın doğru kararlar almasını, saçma veya alakasız şeyler söylemesini engellemesini ve daha güvenilir sonuçlar üretmesini sağlar.
Şimdi Prompt Engineering ve Context Engineering bağlamında farkları ortaya koyan prompt örnekleri verelim:
Software Engineering alanından bir örnek olarak;
Varsayılan prompt:
“CSV dosyasını ayrıştıracak (parse edecek) bir Python fonksiyonu yaz”Context Engineering Tabanlı prompt:
“Fintech (finansal teknoloji) dasboard için Flask tabanlı bir web uygulamasında çalışan kıdemli bir backend mühendisi olarak hareket et. Finansal CSV raporları alacaksın, ancak ayraçlar tutarsız (bazen noktalı virgül, bazen virgül) ve başlıklar biraz farklı olabilir (örneğin, ‘amount’ ya da ‘amt’). Pandas kullanarak bu tür dosyaları standart hale getirecek ve ayrıştıracak sağlam bir Python fonksiyonu yazın. Çıktı, temiz sütunlarla bir DataFrame döndürmelidir: tarih, miktar, açıklama. GUI veya yükleme mantığını göz ardı edin.”
Burada yaptıklarımız:
• Rol (kıdemli backend mühendisi)
• Proje kapsamı (Flask fintech dashboard)
• Gerçek dünya sorunları (tutarsız ayraçlar, başlık farklılıkları)
• Kullanılacak kütüphaneler
• Son çıktı formatı ve beklentiler
Bir asistan örneğini verelim;
Bir yapay zeka asistanından Prompt Engineering bağlamında “basit bir e-postaya dayanarak bir toplantı planlaması istendiğini” düşünelim. LLM’in ilk cevabı muhtemelen şöyle olacaktır:
“Merhaba, yarın kısa bir senkronizasyon için takviminizi kontrol ediyorum.”
Prompt Engineering bağlamı burada yetersiz kaldı. Yalnızca kullanıcının isteğini görüyor, başka hiçbir şey görmüyor. Kodu mükemmel çalışıyor olabilir (bir LLM çağırıyor ve yanıt alıyor), ancak çıktısı çok basit ve robotik kalıyor:
“Mesajınız için teşekkür ederim. Yarın benim için uygun. Düşündüğünüz saati öğrenebilir miyim?”
Halbuki context engineering daha zengin bir bağlamla desteklenir. Kodun temel görevi nasıl yanıt vereceğini bulmak değil, LLM’nin hedefine ulaşması için ihtiyaç duyduğu bilgileri toplamaktır . LLM’yi çağırmadan önce, bağlamı şunları içerecek şekilde genişletir:
- Takvim bilgileriniz (tüm rezervasyonlarınızın dolu olup olmadığını gösterir).
- Bu kişiyle daha önce yaptığınız e-postalar (uygun resmi yazışma tonunu belirlemek için).
- İletişim listeniz (onları kritik ortak olarak tanımlamak için).
- send_invite veya send_email için araçlar.
Daha sonra bir yanıt üretecektir:
“Selam X! Yarın benim takvimim bütün gün peş peşe dolu. Perşembe sabahı müsait misin? Davetiye gönderdim, uygunsa haber ver.”
Tıp alanından bir örnek olarak;
Varsayılan prompt:
“Şeker hastalığının belirtileri nelerdir?”Context Engineering Tabanlı prompt:
“Bir aile doktoru gibi davran ve biraz endişeli olan 45 yaşında, çok fazla Google araştırması yapan birine açıklama yap. Tip 2 diyabetin erken belirtilerini basit, korkutucu olmayan bir dille açıkla. Gerektiğinde rahatlatıcı benzetmeler kullan. Bunları bir liste gibi sunmadan daha çok bir hikaye şeklinde anlat. Ayrıca, hangi belirtilerin endişe oluşturmadığını ama sürekli devam etmesi halinde doktora başvurulması gerektiğini de belirt. Son olarak: ne zaman beklemek, ne zaman doktora gitmek gerektiğini söyleyin.”
Burada Yaptıklarımız:
• Ton seçimi (korkutucu olmayan, benzetme dostu)
• Hedef kitle (endişeli, fazla araştırma yapan hasta)
• Çıktı (liste değil, daha çok anlatı tarzı)
• Net çağrı (ne zaman endişelenmeli, ne zaman endişelenmemeli)
Genel promptlardan contexte’ e geçiş; “sadece sormak” dan “gerçekten anlamaya” geçmek gibidir. Bu şekilde, yapay zeka sadece bir “kod yazıcı” olmaktan çıkar, adeta projenin amacını, kurallarını ve stilini bilen akıllı bir yardımcıya dönüşür. Bu, onun hatalarını azaltır, zaman kazandırır ve çok daha güvenilir sonuçlar üretmesini sağlar.
Prompt engineering, yapay zekaya bir yemek tarifini tek bir cümleyle vermek gibiyken, context mühendisliği ise o yemeği yapabileceği tam donanımlı bir mutfak kurmak gibidir; tüm malzemeleri, araçları ve hatta mutfak kurallarını hazırlarsın, böylece her zaman harika yemekler ortaya çıkar. Bağlam mühendisliği, yapay zekanın işini tam olarak yapabilmesi için her şeyi önceden hazırlamak gibidir; ona sadece ne yapması gerektiğini değil, neyi neden ve nasıl yapması gerektiğini de anlatmaktır. Bu yüzden Prompt Engineering, Context engineering’in alt kümesidir denilebilir.
Yazıyı buraya kadar okuyanlar aslında daha iyi prompt veya etraflıca prompt yazınca Context oluyormuş diye düşünebilirler ama tam olarak öyle değil. İlerleyen satırlarda bu kapsama uygun bir örneği bulacaksınız.
Context Engineering Neden Önemlidir?
Yapay Zeka Hatalarını Azaltır : Çoğu agent hatası model hatası değil, bağlam hatasıdır
Tutarlılığı Sağlar : Yapay zeka projenizin kalıplarını ve kurallarını takip eder
Karmaşık Özellikleri Etkinleştirir : Yapay zeka, uygun bağlamla çok adımlı uygulamaları işleyebilir
Kendi Kendini Düzeltme : Doğrulama döngüleri, yapay zekanın kendi hatalarını düzeltmesine olanak tanır
Context Engineering ile Agent yapıları arasındaki ilişki
Etkili yapay zeka ajanları oluşturmanın sırrı, yazdığınız kodun karmaşıklığıyla değil, sağladığınız bağlamın kalitesiyle ilgilidir. Context engineering, AI agent’larının karmaşık görevleri başarıyla yerine getirmesi için bağlamın optimize edilmesi sanatıdır. Agent’lar, birden fazla adım içeren özerk sistemler olarak çalışır; örneğin, bir müşteri destek botu geçmiş konuşmaları hatırlayarak kişiselleştirilmiş yanıtlar verebilir. Context engineering, bu agent’ların ihtiyaç duyduğu talimatlar, uzun vadeli bellek, harici bilgiler (RAG) ve araçlar gibi geniş bir bağlamı sağlayarak tutarlılık ve performanslarını artırır. Araştırmalar, agent başarısızlıklarının genellikle model yetersizliğinden değil, bağlam eksikliğinden kaynaklandığını gösteriyor. Bir Aracının başarılı olup olmayacağını belirleyen temel unsurun, ona verdiğiniz bağlamın kalitesi olduğu görülmektedir.
Bu bağlamda, context engineering, agent’ların “sihirli” bir ürün haline gelmesini sağlar. Örneğin, bir uçuş rezervasyonu agent’i, context engineering sayesinde kullanıcı tercihlerine, uçuş API’lerine ve geçmiş etkileşimlere erişerek doğru ve hızlı yanıtlar sunar. Bu, agent’ların sadece tek bir prompt ile değil, tüm çevresel verilerle çalışmasını sağlayarak ölçeklenebilir ve etkili çözümler sunar. Böylece agent’lar, tutarlı, güvenilir ve kişiselleştirilmiş yanıtlar verebilir, halüsinasyon riskini azaltır ve daha karmaşık problemlerde ölçeklenebilir bir şekilde çalışabilirler. Context engineering, AI agent’larının geleceğinde merkezi bir rol oynayarak, onların daha akıllı, tutarlı ve kullanıcı odaklı olmasını garanti eder. Kısacası, prompt engineering tekil etkileşimleri optimize ederken, context engineering, yapay zeka agent’larının gerçek potansiyelini ortaya çıkaran ve onları “ucuz bir demodan” “büyülü bir ürüne” dönüştüren bütünsel bir yaklaşımdır.
Context Engineering Kavramının Geleceğe Yönelik Etkileri
Gelecekte, context engineering, AI sistemlerinin uzun vadeli bellek, harici veri kaynakları (RAG) ve araç entegrasyonlarıyla daha akıllı ve kişiselleştirilmiş yanıtlar üretmesini sağlayacak. Örneğin, bir müşteri destek botu, geçmiş konuşmaları ve veritabanı erişimiyle kullanıcıya özel çözümler sunarken, context engineering bu bağlamı yapılandırarak tutarlılık ve ölçeklenebilirlik sağlayacak. Bu, AI’nın sadece bireysel görevlerde değil, karmaşık ve çok adımlı süreçlerde de devrim yapmasını mümkün kılacak.
Bu kavram, AI’nın endüstrilerdeki etkisini derinleştirecek; sağlıkta hasta geçmişine dayalı teşhislerden, eğitimde kişiselleştirilmiş öğrenme deneyimlerine kadar geniş bir yelpazede kullanılacak. Context Engineering, AI agent’larının “sihirli” bir deneyim sunmasını sağlayarak, statik prompt’lardan dinamik ve bağlama duyarlı sistemlere geçişi hızlandıracak. Ancak, doğru bağlamı tanımlamanın zorluğu gibi tartışmalar, bu alanın gelişimini şekillendirecek. Gelecekte, context engineering, AI sistemlerinin daha özerk, kullanıcı odaklı ve etik bir şekilde çalışmasını sağlayarak, teknolojinin insan yaşamındaki rolünü yeniden tanımlayacak. Sonuç olarak, AI’ın gerçek potansiyelini ortaya koymak ve güvenilir sistemler inşa etmek için her bir bağlamın dikkatle tasarlanması merkezi bir rol oynayacaktır.
Bağlam mühendisliği, tek bir talimat tasarlamaya odaklanan prompt mühendisliğinden farklı olarak, bilgi, araçlar ve bellek gibi geniş bir çevreyi düzenler.
Örnek Uygulama
Örnek-1
Context Engineering bağlamında bir yönerge oluşturmak için alttaki gibi bir dosya planı oluşturmalısınız. Yukarda ifade ettiğim gibi context engineering sadece promptu bir miktar genişletmek değil altta gördüğünüz gibi ciddi bir klasör yapısı içinde tüm talimatları vermektir. Bu amaçla bir başlangıç md dosyası oluşturabilirsiniz (Referans).
Etkili INITIAL.md Klasörleri
Ana Bölümler
ÖZELLİK : Spesifik ve kapsamlı olun
❌ “Bir web kazıyıcı oluşturun” (Yanlış prompt girişi)
✅ “E-ticaret sitelerinden ürün verilerini çıkaran, hız sınırlamasını yöneten ve sonuçları PostgreSQL’de depolayan BeautifulSoup kullanarak eşzamansız bir web kazıyıcı oluşturun”
- Yapay zekanın tercihlerinizi bildiğini varsaymayın
- Belirli gereksinimleri ve kısıtlamaları ekleyin
- Referans örneklerine bolca yer verin
ÖRNEKLER : examples/ klasörü oluşturun
- İlgili kod kalıplarını örneklerle oluşturun
- Takip edilecek belirli dosyalara ve kalıplara başvurun
- Hangi yönlerin taklit edilmesi gerektiğini açıklayın
- Daha fazla örnek = daha iyi uygulamalar ekleyin
- Hem ne yapması gerektiğini hem de ne yapmaması gerektiğini gösterin
-Hata işleme modellerini dahil edin
ÜRÜN GEREKSİNİMLERİ: PRP (Product Requirements Prompts — Ürün Gereksinimleri prompts) dosyası oluşturun
- Tam bağlam ve dokümantasyon
- Doğrulama ile uygulama adımları
- Hata işleme kalıpları
- Test gereksinimleri
DOKÜMANTASYON : İlgili tüm kaynakları ekleyin
- API dokümantasyon URL’leri
- Kütüphane rehberleri
- MCP sunucu belgeleri
- Veritabanı şemaları
DİĞER HUSUSLAR : Önemli ayrıntıları ifade edin
- Kimlik doğrulama gereksinimleri
- Oran sınırlamaları veya kotalar
- Yaygın tuzaklar
- Performans gereksinimleri
- Sözleşmelerinizi ekleyin
- Proje özel kurallarını ekleyin
- Kodlama standartlarını tanımlayın
Örnek-2
Context Engineering yani bağlam mühendisliğini nasıl uygulayacağınızı adım adım açıklayan başka bir dokuman önerisi de altta verilmiştir (Refererans). Bu GitHub deposu, bu süreci pratikte uygulamanız için yapılandırılmış bir çerçeve sunuyor. Prompt mühendisliğinden farklı olarak, bağlam mühendisliği sadece talimatları değil, bellek, harici veriler ve araç entegrasyonları gibi geniş bir bağlamı düzenler.
Adım Adım Uygulama Rehberi
- Temelleri Anlayın: Bağlamın Yapı Taşları
Depodaki 00_foundations dizini, bağlam mühendisliğinin temel bileşenlerini açıklıyor. 01_atoms_prompting.md dosyası, basit talimatlarla başlamayı öğretir. Örneğin, bir müşteri destek botu için “Müşteriye sipariş durumu hakkında bilgi ver” gibi net bir talimat yazabilirsiniz. Ardından, 02_molecules_context.md ile bağlamı genişletmeyi öğrenin: Kullanıcı geçmişi, veritabanı erişimi veya API entegrasyonları gibi ek bilgiler ekleyin.
Nasıl Uygulanır? Bir JSON dosyası (örneğin, context.json) oluşturun ve içine şu bilgileri ekleyin: sistem talimatları (botun rolü), kullanıcı girdisi ve varsa geçmiş konuşmalar. - Bağlamı Genişletin: RAG ve Araç Entegrasyonları
Depodaki 10_guides_zero_to_hero dizininde, 02_expand_context.py ve 04_rag_recipes.py gibi rehberler, bağlamı zenginleştirmek için pratik yöntemler sunar. Retrieval-Augmented Generation (RAG), harici veri kaynaklarından bilgi çekerek AI’ın daha güncel ve doğru yanıtlar vermesini sağlar. Örneğin, bir uçuş rezervasyon botu için context_v3.json dosyasını kullanarak uçuş API’sine erişim sağlayabilirsiniz.
Nasıl Uygulanır? Bir Python script’i ile RAG’yi entegre edin.
Ayrıca, 05_cognitive_tools.md dosyasını okuyarak, AI’ın takvim veya e-posta gibi araçlarla entegrasyonunu nasıl sağlayacağınızı öğrenin. Örneğin, bir takvim API’si bağlayarak toplantı planlama yeteneği ekleyebilirsiniz.
3. İleri Teknikler: Sembolik Akıl Yürütme ve Kontrol Döngüleri
Depodaki context_v3.5.json dosyası, sembolik akıl yürütme gibi ileri teknikleri içerir. Bu, AI’ın mantıksal problemleri çözmesini sağlar (örneğin, matematiksel bir problemi adım adım çözmek). 03_control_loops.py ise çok adımlı görevler için döngüsel geri bildirim sistemleri kurmayı öğretir.
Nasıl Uygulanır? Bir agent’in karmaşık bir görevi (örneğin, bir proje planı oluşturma) tamamlaması için bağlamı şu şekilde yapılandırın:
- Sistem Talimatı: “Proje planlayıcısı olarak, görevleri önceliklendir ve takvime yerleştir.”
- Bellek: Geçmiş projelerden öğrenilen bilgiler.
- Araçlar: Takvim API’si ve görev yönetimi yazılımı.
- Kontrol Döngüsü: Her adımda AI’ın çıktısını kontrol edin ve gerekirse bağlamı güncelleyin.
4. Yapıyı Optimize Edin: Biyolojik Metafor
Depo, bağlam mühendisliğini biyolojik bir metaforla (atomlar, moleküller, hücreler, organlar) açıklar. structure.md ve STRUCTURE_v2.md dosyaları, bağlamı modüler bir şekilde nasıl organize edeceğinizi gösterir. Örneğin, “atomlar” basit talimatlar, “moleküller” ise talimatlar ve bellek kombinasyonudur.
Nasıl Uygulanır? Bağlamınızı modüler tutun: ayrı JSON dosyalarıyla talimatları, belleği ve araçları yönetin.
5. Test Edin ve İyileştirin
Depodaki rehberler, bağlamın sürekli test edilmesi gerektiğini vurgular. 10_guides_zero_to_hero dizinindeki örneklerle, bağlamınızı test edin ve sonuçları analiz edin. Örneğin, bir müşteri destek botu için farklı bağlam versiyonlarını (context_v2.json vs. context_v3.json) karşılaştırarak hangi yapılandırmanın daha iyi çalıştığını görün. Nasıl Uygulanır? A/B testi yapın.
- Bir bağlamda sadece sistem talimatı kullanın.
- Diğerinde bellek ve RAG ekleyin, ardından kullanıcı geri bildirimlerini karşılaştırın.
Pratik İpuçları ve Öneriler
- Başlangıç Noktası: 00_foundations dizinindeki markdown dosyalarını okuyarak temel kavramları öğrenin.
- Araç Kullanımı: LangChain veya LlamaIndex gibi kütüphaneleri kullanarak RAG ve araç entegrasyonlarını kolaylaştırın
- Modülerlik: Bağlamınızı küçük, yeniden kullanılabilir parçalara ayırarak (örneğin, ayrı JSON dosyaları) ölçeklenebilirlik sağlayın.
- Hata Analizi: Agent başarısızlıklarını analiz edin; sorun genellikle modelde değil, bağlamdadır
Sonuç
Context Engineering, yapay zeka sistemlerinin performansını ve güvenilirliğini artırmak için doğru bilgiyi doğru zamanda ve biçimde sunma sanatıdır; bu, AI dünyasında yalnızca bir trend değil, aynı zamanda bir zorunluluktur. Prompt engineering, bu bağlamın bir “konteyneri” içinde işler; ne kadar mükemmel bir prompt yazsanız da, alakasız bilgilerle dolu bir bağlam penceresi onu anlamsız kılabilir. Gelecekte, AI’ın gerçek potansiyelini açığa çıkararak güvenilir ve ölçeklenebilir sistemler inşa etmek için context engineering, vazgeçilmez bir temel beceri haline gelecektir.
Faydalı olması dileklerimle…
