- Ajanı çalışır kılan model değil, altyapıdır
- Araç katmanı: ajanın elleri nasıl tanımlanır?
- Yetkilendirme ve güvenli yürütme
- Kısa süreli bellek: bağlam penceresini yönetmek
- Uzun süreli bellek: ne saklanır, ne zaman hatırlanır?
- Örnek akış: iade talebi ajanı
- İzleme, dayanıklılık ve sık yapılan hatalar
- Bu becerinin Mindset programlarındaki karşılığı
- Sık sorulan sorular
Ajan belleği ve araç altyapısı: yapay zeka ajanına yetenek kazandırmak
Ajanın araç katmanı, kısa ve uzun süreli belleği ve yetki sınırları nasıl kurulur: tasarım kararları, örnek akış ve sık yapılan hatalar.
Ajanı çalışır kılan model değil, altyapıdır
Bir dil modeli tek başına metin üretir. Ajan olabilmesi için modelin çevresinde şu parçalar gerekir: dış dünyada iş yapmasını sağlayan araçlar, önceki adımları ve kullanıcıyı hatırlamasını sağlayan bellek ve bu ikisini sırayla çağıran bir kontrol döngüsü. Demoda etkileyici görünen bir ajanın üretimde öngörülemez davranmasının sık görülen nedeni modelin yetersizliği değil, bu katmanların özensiz kurulmasıdır: araç açıklaması muğlaktır, bellek ya her şeyi ya da hiçbir şeyi saklar, hata çıktığında ajan aynı çağrıyı tekrar tekrar dener.
Bu yüzden ajana bellek ve araç eklemek istem (prompt) yazmaktan çok yazılım mimarisi işidir. Hangi bilginin nerede duracağına, kimin hangi işlemi çağırabileceğine ve bir şey ters gittiğinde ne olacağına baştan karar verirsiniz. Aşağıdaki başlıklar bu kararların sırasını izler.
Araç katmanı: ajanın elleri nasıl tanımlanır?
Araç, modele açılmış bir işlevdir: bir ad, ne işe yaradığını anlatan bir açıklama, girdi şeması ve bir çıktı. Model hangi aracı çağıracağına açıklamayı okuyarak karar verir, yani açıklama aracın kullanıcı arayüzüdür. Kötü yazılmış bir açıklama, iyi yazılmış bir koddan daha çok sorun üretir.
İyi bir araç tasarımında şu ilkeler öne çıkar: • Tek sorumluluk: 'müşteri bilgisini getir' ve 'müşteri bilgisini güncelle' ayrı araçlardır. Tek araçta birkaç iş toplamak modelin yanlış kipi seçmesine yol açar. • Açık şema: alan adları, türler, zorunlu ve isteğe bağlı alanlar belirtilir. Serbest metin yerine sabit seçenek listesi kullanılabilen yerde liste verilir. • Kod tarafında doğrulama: modelin ürettiği argümana güvenilmez, tür ve değer aralığı araç çalışmadan önce kontrol edilir. • Okunur hata mesajı: 'kayıt bulunamadı, sipariş numarasını kontrol edin' mesajı modelin kendini düzeltmesini sağlar. Ham hata izi ise bağlamı kirletir. • Tekrar çağrıya dayanıklılık: kayıt oluşturan bir araç aynı istekle yeniden çağrılırsa çift kayıt açmamalıdır.
Araç sayısı arttıkça her aracı ajana tek tek elle bağlamak zorlaşır. Bu noktada Model Context Protocol (MCP) gibi ortak bir protokol, araçların kayıt altına alınmasını ve farklı ajanlara kontrollü açılmasını kolaylaştırır. Hangi ajanın hangi araca eriştiğini tutan araç kaydı (registry) da bu katmanın parçasıdır.
Yetkilendirme ve güvenli yürütme
Ajan, kullanıcı adına hareket eden bir yazılımdır; yetkisi kullanıcının yetkisini aşmamalıdır. İlk ayrım okuma ile yazma arasındadır. Sipariş sorgulamak gibi salt okunur araçlar serbestçe çağrılabilir. Kayıt silen, para hareketi başlatan, e-posta gönderen araçlar ise bir onay kapısının arkasında durur: ajan işlemi önerir, bir insan ya da bir kural onaylar, sonra işlem yürür.
Başka bir tehlike dışarıdan gelen metindir. Ajanın okuduğu bir e-posta, web sayfası ya da belge içinde gizlenmiş bir talimat modele komut gibi görünebilir. Bu saldırı türü istem enjeksiyonu (prompt injection) olarak bilinir. Savunmanın temeli, araç çıktısını ve dış içeriği veri olarak işlemek, bu içeriğe dayanarak yazan araçları doğrudan çalıştırmamaktır.
Güvenli yürütmenin diğer unsurları şunlardır: • Her araç için zaman aşımı ve ajan çalışması için toplam çağrı sınırı • Çalışma ortamını yalıtmak: kod çalıştıran araçlar kısıtlı bir kum havuzunda koşar • Denetim kaydı: hangi kullanıcı adına, hangi araç, hangi argümanla çağrıldı ve ne döndü • Gizli bilgilerin (parola, erişim anahtarı) modele hiç gösterilmeden araç tarafında tutulması
Kısa süreli bellek: bağlam penceresini yönetmek
Kısa süreli bellek, modelin o anda gördüğü her şeydir: sistem talimatı, konuşma geçmişi, araç çağrıları ve sonuçları. Bağlam penceresi sınırlıdır ve uzun görevlerde dolar. Dolduğunda ya eski bilgi sessizce atılır ya da model gürültü içinde asıl hedefi kaçırır.
Bu sınırı yönetmenin yolları basittir ama disiplin ister: • Eski konuşma turlarını belirli aralıklarla özetleyip ham metni bağlamdan çıkarmak • Araç çıktısını olduğu gibi değil, yalnızca gereken alanlarla bağlama koymak. Büyük bir API yanıtının tamamı bağlama dökülünce sonraki kararların kalitesi düşer • Ajana bir çalışma notu alanı vermek: plan, tamamlanan adımlar, açık sorular. Bu not her turda güncellenir ve ajan yolunu kaybetmez • Talimatı ve değişmeyen kuralları bağlamın başında sabit tutmak
Kısa süreli bellek oturum bitince kaybolur. Oturumlar arasında kalması gereken her bilgi için uzun süreli bellek gerekir.
Uzun süreli bellek: ne saklanır, ne zaman hatırlanır?
Uzun süreli belleği bilginin türüne göre ayırmak tasarımı kolaylaştırır. Epizodik bellek olayları tutar: geçen görüşmede ne yapıldı, hangi çözüm işe yaradı, hangi araç hata verdi. Anlamsal bellek olguları ve tercihleri tutar: müşteri kısa e-posta istiyor, şirketin iade politikası şöyle işliyor, bu sistemde tarih biçimi şu.
Depo seçimi bilginin türüne göre yapılır. Profil ve tercih gibi yapılı bilgi için ilişkisel tablo ya da anahtar-değer deposu yeterlidir. Serbest metin anılar için ise anlamca benzerliğe göre arama yapan bir vektör deposu kullanılır. Pratikte yaklaşımlar birlikte çalışır: yapılı alanlar kesin sorgulanır, anılar benzerlikle çağrılır.
Bellekte şu kararlar kaliteyi belirler: • Yazma kararı: her konuşma saklanmaz. Gelecekte işe yarayacak olan seçilir, görev sonunda özetlenip yazılır. • Okuma kararı: görev başlarken ilgili kayıtlar çağrılır ve kaynağı ile tarihi etiketiyle bağlama konur. Ajan eski kaydı güncel gerçek sanmasın diye tarih etiketi önemlidir. • Güncelleme ve unutma: yeni bilgi eskisiyle çelişiyorsa eskisi güncellenir ya da geçersiz işaretlenir. Süresi dolmuş kayıtlar silinir. Kişisel veri içeren anılarda saklama süresi ve silme talebi, kişisel verilerin korunması mevzuatına göre baştan planlanır.
Yanlış bir anı bir kez kalıcılaşırsa her seferinde tekrar çağrılır ve hata kendini besler. Bu yüzden anılara güven etiketi ve kaynak bilgisi eklemek ve ara sıra bellek temizliği yapmak gerekir.
Örnek akış: iade talebi ajanı
Örneğin bir çevrim içi mağazanın iade taleplerini karşılayan bir ajan kuralım. Araçlar şunlardır: sipariş sorgula (salt okunur), iade politikasını ara (belge araması), iade kaydı oluştur (yazan araç, onaylı) ve müşteriye yanıt taslağı hazırla.
Akış şöyle ilerler: • Müşteri mesajı gelir ve kısa süreli belleğe girer. • Ajan müşteri bilgisini tutan anlamsal kayıttan tercihleri çağırır, örneğin müşteri resmî olmayan, kısa bir üslup istiyor. • Sipariş sorgula aracı çağrılır; yanıttan yalnızca ürün, teslim durumu ve ödeme yöntemi bağlama alınır. • İade politikası aracı ilgili maddeyi getirir; ajan talebin politikaya uyup uymadığını gerekçeyle yazar. • Uygunsa ajan iade kaydı oluşturmak için onay ister. Sorumlu kişi onayladıktan sonra araç çalışır. • Görev sonunda ajan bir özet yazar: hangi sipariş, hangi gerekçe, hangi sonuç. Bu özet epizodik belleğe kaydedilir.
Aynı müşteri sonraki hafta yeniden yazdığında ajan geçmiş iadeyi görür ve soruyu sıfırdan sormaz. Sınama sırasında en az şu durumlar denenmelidir: aynı talebin yeniden gönderilmesi (çift kayıt açılıyor mu?), araç hatası (ajan nasıl davranıyor?) ve politikaya uymayan talep (ajan reddi doğru gerekçelendiriyor mu?).
İzleme, dayanıklılık ve sık yapılan hatalar
Altyapı çalışır görünse bile ajanın neden o kararı verdiğini göremiyorsanız onu geliştiremezsiniz. Her adımda hangi aracın hangi girdiyle çağrıldığı, ne kadar sürdüğü ve ne döndüğü iz kaydına yazılmalıdır. Bunun üzerine dayanıklılık önlemleri eklenir: geçici hatalar için bekleme süresi artan yeniden deneme, aynı aracı aynı argümanla tekrar tekrar çağırmayı kesen bir döngü kırıcı ve araç çalışmadığında işi bir insana devreden yedek yol.
Sık görülen hatalar: • Ajana gereğinden fazla araç vermek. Seçenek çoğaldıkça yanlış araç seçme olasılığı artar; önce az sayıda iyi tanımlı araçla başlayın. • Belleğe filtresiz yazmak ve sonra gürültüden arama yapmak. • Parola, kimlik numarası gibi hassas bilgileri belleğe kaydetmek. • Yazan araçları onay kapısı olmadan açmak. • Tek bir mutlu senaryoyla yayına çıkmak. Hata, boş sonuç ve çelişkili bilgi senaryoları ayrıca denenmelidir.
Öğrenme yolu basittir: önce tek araçlı ve belleksiz bir ajan yazın, sonra araç tanımlarını iyileştirin, kısa süreli belleği ekleyin, ardından kalıcı belleği ve izlemeyi katın. Çoklu ajan mimarisi en sona kalır, çünkü bu katmanlar sağlam değilse ajan sayısı artınca sorunlar da çoğalır.
Bu becerinin Mindset programlarındaki karşılığı
Yapay Zeka Ajanları için Araç ve Bellek Altyapısı programının modül başlıkları yukarıdaki sırayı izler: Ajan Mimarisi ve Bileşenler, Araç Katmanı Tasarımı, Yetkilendirme ve Güvenli Yürütme, Kısa Süreli Bellek ve Bağlam, Uzun Süreli Bellek Depoları, Gözlemlenebilirlik ve Dayanıklılık. Program, ürün geliştirme ve platform ekiplerinde ajanı üretime taşıyacak yazılımcılar ile yetkilendirme ve denetim gereksinimlerini yöneten güvenlik ve uyum sorumluları için anlamlıdır.
Ajanlara yeni başlıyorsanız Python ile Yapay Zekâ Ajanları (AI Agent) Geliştirme Eğitimi daha geniş bir giriş sunar; modüllerinde 'Ajanları Araçlarla Donatma' ve 'Ajan Sistemlerinde İzleme, Gözlemlenebilirlik ve Değerlendirme' başlıkları yer alır. Araçları ortak bir protokolle kurumsal sistemlere bağlamak isteyen ekipler için Model Context Protocol (MCP) ile Araç Entegrasyonu programı ayrıca incelenebilir.
İlgili Mindset programı
Yapay Zeka Ajanları için Araç ve Bellek Altyapısı
Sık sorulan sorular
Ajan belleği için vektör veritabanı şart mı?
Şart değil. Kullanıcı tercihi, durum bilgisi, sipariş geçmişi gibi yapılı bilgiler ilişkisel tabloda ya da anahtar-değer deposunda daha güvenilir ve ucuz saklanır. Vektör deposu, serbest metin anıları anlamca benzerliğe göre çağırmanız gerektiğinde işe yarar. Olgun tasarımlar yapılı ve serbest bilgiyi birlikte tutar.
Bağlam penceresi büyük bir model kullanırsam ayrı bellek gerekir mi?
Gerekir. Geniş pencere tek oturumun içinde yardımcı olur ama oturum bitince boşalır, uzun bağlamda önemli bilginin gözden kaçma riski vardır ve her turda tüm geçmişi göndermek maliyeti ve gecikmeyi artırır. Kalıcı bilgi için ayrı bir depo ve yalnızca ilgili kısmı çağıran bir okuma adımı daha sağlam bir düzendir.
Ajana çok sayıda araç vermek sorun olur mu?
Olabilir. Araç listesi uzadıkça açıklamalar birbirine benzer, model yanlış aracı seçer ve bağlam gereksiz yere dolar. Başlangıçta görev için gerekli araçları verin, benzer işleri tek araçta gruplayın ve kapsamı büyüttükçe araç seçimi hatalarını izleme kayıtlarından takip edin.
Bellekteki yanlış bilgi nasıl düzeltilir?
Kayıtlara kaynak, tarih ve güven bilgisi eklenirse yanlış kaydı bulmak kolaylaşır. Düzeltme için kaydı güncellemek, geçersiz işaretlemek ya da silmek gerekir. Ayrıca kullanıcıya 'bunu hatırla' ve 'bunu unut' gibi komutlar sunmak, hatalı kalıcılaşmayı erken yakalamaya yardımcı olur.
Ajan altyapısını kurmak için hangi programlama bilgisi gerekir?
Pratikte yaygın seçim Python'dur ve temel düzeyde işlev yazma, API çağırma ve JSON ile çalışma yeterli bir başlangıç sağlar. Daha sonra veri tabanı sorgulama, kimlik doğrulama ve test yazma becerileri gerekir. Bu konular altyapının üretime çıkabilmesi için de önemlidir.