Çok zeki bir stajyer işe aldığını hayal et. İki seçeneğin var: ya her tıklamayı sen yönetirsin, "tarayıcıyı aç, şu siteye git, şunu yaz, enter'a bas, şimdi şunu kopyala" diye diye. Ya da sadece "gelecek Cuma'ya İstanbul'a, 300 avronun altında bir uçak bileti ayarla ve onay mailini bana ilet" dersin ve işine dönersin. Birkaç dakika sonra iş bitmiştir. İşte hedefi alıp, adımları kendi kuran, gereken araçları kendi seçen, kendi işini kontrol eden ve gerçekten bittiğinde geri dönen o stajyer, chatbot ile agent (ajan) arasındaki fark tam olarak bu.

Chatbot zaten "yapay zeka" değil mi?

Evet ama chatbot ile agent aynı işi yapmıyor. Derin öğrenme yazımı okuduysan, büyük dil modellerinin özünde bir sonraki kelimeyi tahmin etmek üzere eğitilmiş, çok iyi örüntü tanıma makineleri olduğunu biliyorsun. Baş başa bırakıldığında, sıradan bir chatbot sadece konuşur. Soru sorarsın, cevap verir, konuşma biter. Elleri yoktur. Takvimine bakamaz, kod çalıştıramaz, internette arama yapamaz, bir "onayla" butonuna basamaz. Sadece metin üretir ve işine yaramasını umar.

Bir agent, aynı dil modelini alır ve ona bir bakıma bir "beden" verir. Modeli bir döngünün içine sarar, ona araçlar verir (bir web tarayıcısı, bir kod çalıştırıcı, bir takvim API'si, bir dosya sistemi) ve hangi aracı ne zaman kullanacağına, sonucuyla ne yapacağına kendi karar vermesine izin verir. Sonra bu döngüyü, hedef sadece konuşulmuş değil gerçekten tamamlanmış olana kadar tekrarlar.

Chatbot bir soruyu cevaplar. Agent bir görevi bitirir.

Peki bir agent'ın içinde gerçekte ne oluyor?

Moda kelimeleri bir kenara bırakırsak, çoğu agent şaşırtıcı derecede basit bir döngüyle çalışır:

  • Düşün: model hedefe ve o ana kadar olan duruma bakar, sıradaki adıma karar verir.
  • Uygula: bir araç, bir API çağrısı, bir arama, bir kod parçası seçer ve gerçekten çalıştırır.
  • Gözlemle: geri gelen sonuca bakar, bir hata, bir arama sonucu, bir dosya, ve onu okur.
  • Tekrarla: bu yeni bilgiyle tekrar "düşün" adımına döner, hedefin karşılandığına karar verene kadar.

Bu döngüye genelde ReAct (Reason + Act, yani "Akıl Yürüt + Uygula") denir ve kodlama asistanlarından araştırma botlarına kadar neredeyse her modern agent'ın omurgasıdır. Kimse adımların tam sırasını önceden koda gömmedi. Model, planı ilerledikçe kendi kuruyor ve bir şey işe yaramadığında düzeltiyor, tıpkı makine öğrenmesi yazımda anlattığım gibi, bir modelin sabit bir kural kitabını takip etmek yerine hatalarından öğrenerek kendini düzeltmesi gibi.

Somut bir örnek, çünkü bu konu hızla soyutlaşıyor

Diyelim ki bir agent'a şunu söyledin: "Sitemin bu hafta neden yavaşladığını bul ve elinden geliyorsa düzelt." Kabaca şöyle bir şey olur:

  • Analytics veya logları okur (bir araç çağrısı) ve neyin değiştiğine bakar.
  • Yakın zamanda büyük bir görselin eklendiğini fark eder (gözlem).
  • Muhtemelen sorunun bu olduğuna karar verir ve dosyayı açar (bir başka araç çağrısı).
  • Görseli sıkıştırır ya da kodu, görsel geç yüklensin diye yeniden yazar (bir öneri değil, gerçek bir eylem).
  • Düzeltmenin gerçekten işe yarayıp yaramadığını görmek için yükleme süresini tekrar kontrol eder (kendi kendini doğrulama).
  • Ancak o zaman sana döner ve "düzelttim, işte ne değiştirdim" der.

Neyin olmadığına dikkat et: "şimdi dosyayı aç," "şimdi 12. satırı düzenle," "şimdi işe yarayıp yaramadığını kontrol et" demen gerekmedi. Agent bütün bunları kendisi zincirledi, her adımı bir öncekinden öğrendiğine göre kendisi belirledi.

Peki neden şimdi? Birkaç yıl önce bu yoktu

Üç şeyin aynı anda oturması gerekiyordu:

  • Yeterince iyi akıl yürütme: modeller sonunda bulanık bir hedefi somut adımlara bölmede güvenilir hale geldi, kendinden emin bir şekilde saçmalamak yerine.
  • Araç kullanımı: modeller "lütfen şu fonksiyonu şu argümanlarla çağır" gibi yapılandırılmış istekler üretmeyi öğrendi, böylece etraflarındaki yazılım sadece metin basmak yerine gerçek eylemler gerçekleştirebildi.
  • Daha uzun hafıza / bağlam: agent'ların üç adım önce ne denediğini hatırlaması gerekiyor, yoksa sonsuz döngüye girer ya da aynı hatayı tekrar eder.

Bunların hiçbiri deep learning'in yerini almıyor, tam tersine doğrudan onun üzerine inşa ediliyor. Yukarıdaki döngüdeki "düşün" adımı hâlâ sadece bir sinir ağının en mantıklı sıradaki hamleyi tahmin etmesi, deep learning yazımdaki aynı temel mekanizma. Agent'lar yeni bir yapay zeka türünden çok, var olan bir yapay zekayı gerçek dünyaya bağlamanın yeni bir yolu.

Aslında zaten agent'lara denk geliyorsun

  • Dosyaları açan, testlerini çalıştıran ve hataları kendi düzelten kodlama asistanları
  • Sana sadece iadeyi nasıl alacağını anlatmak yerine iadeyi gerçekten işleme koyan müşteri destek botları
  • Arama yapan, birden fazla kaynağı okuyup çapraz kontrol eden ve özetleyen araştırma araçları, sen tek bir linke tıklamadan
  • Senin adına gerçek bir arayüzde fare hareket ettirip tıklayan "bilgisayar kullanan" agent'lar

İşin can alıcı kısmı (çünkü her zaman bir tanesi vardır)

Bir modele gerçek eller vermek güçlü, ama biraz da ürkütücü. Eylem yapabilen bir agent, yanlış bir varsayıma dayanarak da eylem yapabilir, yanlış dosyayı silebilir, yanlış maili gönderebilir, ya da yanlış anladığı bir görevde döngüye girip bir sürü para ve API çağrısı harcayabilir. "İyi agent'ların" güvenlik önlemlerine ciddi mühendislik emeği harcamasının sebebi tam olarak bu: riskli eylemlerden önce onay istemek, kendi işini kontrol etmek ve tahmin etmek yerine ne zaman durup bir insana soracağını bilmek.

En akıllı agent hiç soru sormayan değil, tam olarak ne zaman sorması gerektiğini bilendir.

Tek cümlelik versiyonu

Biri sana AI agent'ın ne olduğunu sorarsa: "Araç kullanabilen bir döngünün içine sarılmış bir dil modeli. Yani bir görev hakkında sadece konuşmak yerine, kendi işini yolda kontrol ederek o görevi gerçekten yapıp bitiriyor."

Aslında hepsi bu kadar. Bir robot değil, ayrı bir beyin hiç değil, sadece deep learning yazısındaki o örüntü tanıma makinesinin, bir grup araçla ve iş bitene kadar onları kullanma izniyle donatılmış hali.

Kaynaklar ve ileri okuma