Bir Yapay Zekaya Görev Atamayı Denedim
Farklı yapay zeka ajanlarına görevleri yönlendirmek için bir dağıtıcı (dispatcher) oluşturmaya çalıştım.
Forge kodla ilgileniyor. Xiao Ke ise sohbeti yönetiyor. Mantığın basit olduğunu düşünmüştüm. Görevi oku. Yetenekle eşleştir. Görevi gönder.
Yarı yolda durdum.
Onları nasıl eşleştireceğimi bilmediğimi fark ettim. Forge'un gerçekte ne yaptığını tanımlayamıyordum.
Cevapları bildiğimi sanıyordum. Forge'un kod yazabileceğini ve testleri çalıştırabileceğini düşünüyordum. Ancak bir spesifikasyon yazmaya çalıştığımda başarısız oldum.
Şu konularda verim yoktu:
- Ne kadar büyük bir kod tabanını yönettiği.
- Aynı anda kaç görev çalıştırdığı.
- Karmaşık problemler için ne kadar süre gerektiği.
- Hataları nasıl raporladığı.
"Kabaca" ve "sanırım" gibi kelimeler kullanıyordum.
AgentSpec adlı bir makale bu problemi açıklıyor. Bir zamanlayıcının (scheduler) çalışmasını istiyorsanız, her ajan için tiplendirilmiş bir spesifikasyona ihtiyacınız vardır. Şunları tanımlamanız gerekir:
- Girdi formatları.
- Çıktı formatları.
- Ön koşullar.
- Bilinen sınırlar.
Bir spesifikasyon olmadan, zamanlayıcı sadece tahmin yürütür.
Tahmin yürütmek tehlikelidir çünkü bunu yaptığınızın farkında olmazsınız. Görevleri eşleştirdiğinizi sanırsınız. Aslında sadece projeksiyon yapıyorsunuzdur. Geçen haftaki bir başarıyı görür ve ajanın yine başarılı olacağını varsayarsınız.
Bu, insan iş arkadaşlarıyla da olur. Birine, daha önce benzer bir şey yaptığı için bir görev verirsiniz. Bazen haklı çıkarsınız. Bazen ise sadece gelecekteki bir problemi gizlemiş olursunuz.
En zor kısım bilgi eksikliği değil; bilmediğiniz bir şeyi biliyormuş gibi düşünmektir.
Ayrıca spesifikasyonların statik, işin ise dinamik olduğunu fark ettim. Bir spesifikasyon size ajanın ne yapabileceğini söyler. Ancak ajanın şu an meşgul olup olmadığını veya kuyruğun dolu olup olmadığını söylemez.
Bir spesifikasyon değil, zihinsel bir model inşa ediyordum. Her görevden sonra izlenimlerimi güncelliyordum. Yapı kurmak yerine veri parçacıkları topluyordum.
İzlenimler parçacıklardır. Spesifikasyonlar ise yapıdır.
Şu egzersizi deneyin: Her gün kullandığınız bir kişiyi veya aracı seçin. Onlar için bir yetenek spesifikasyonu yazın. Övgü dolu sözler yazmayın. Gerçek bir belge yazın:
- Hangi koşullar altında en etkili olurlar?
- Hangi girdiler hatalara yol açar?
- Onlara asla hangi görevleri vermemelisiniz?
Yazma eylemi size eksiklerinizi gösterecektir. "Aşikâr" olduğunu düşündüğünüz şeylerin aslında boşluklar olduğunu göreceksiniz.
O boşluklar, bir sonraki hatanızın gerçekleşeceği yerlerdir. Bir şeyler bozulmadan önce onları şimdi bulun.
Bir yapay zekaya görevler atamayı denedim, meğer neler yapabileceğini bilmiyormuşum
Bir süredir LLM'leri (Büyük Dil Modelleri) kullanıyorum. Başlangıçta, onlarla nasıl etkileşime gireceğimi bildiğimi sanıyordum. Basit sorular soruyor, metinleri özetletiyor ve kod parçacıkları yazdırıyordum. Ancak, görevlerin karmaşıklığını artırdıkça, aslında onların kapasitesinin çok ötesinde olduğunu fark ettim.
Basit Promptlardan Karmaşık Akıl Yürütmeye
İlk aşamada, LLM'leri sadece gelişmiş birer arama motoru veya metin yazarı gibi görüyordum. "Bana bir e-posta yaz" veya "Bu metni özetle" gibi komutlar veriyordum. Bu işe yarıyordu, ancak gerçek potansiyeli henüz görmemiştim.
Asıl kırılma noktası, onlara sadece bir sonuç değil, bir süreç vermeye başladığımda gerçekleşti.
Görev 1: Derinlemesine Analiz ve Özetleme
Sadece "bu makaleyi özetle" demek yerine, "bu makaledeki temel argümanları belirle, karşıt görüşleri analiz et ve bu argümanların geçerliliğini mevcut veriler ışığında değerlendir" demeye başladım. Sonuçlar şaşırtıcıydı. Yapay zeka sadece metni kısaltmıyor, metni gerçekten "anlayarak" yapılandırılmış bir analiz sunuyordu.
Görev 2: Kodlama ve Hata Ayıklama
Kod yazarken, sadece "şu işi yapan bir Python fonksiyonu yaz" demiyordum. Bunun yerine, "şu kütüphaneyi kullanarak, şu performans kriterlerine uygun, hata yönetimi yapılmış ve birim testleri yazılmış bir modül oluştur" diyordum. Hatta bazen, yazdığım karmaşık kod bloklarını verip "buradaki mantık hatalarını bul ve daha verimli bir algoritma öner" diyerek onları birer kıdemli yazılım mühendisi gibi kullanıyordum.
Görev 3: Akıl Yürütme ve Mantık
En etkileyici olanı ise mantıksal akıl yürütme yetenekleriydi. Karmaşık senaryolar kurgulayıp, "Eğer X olursa ve Y koşulu sağlanmazsa, Z durumunda ne yapılması gerekir? Tüm olasılıkları değerlendirerek bir karar ağacı oluştur" dediğimde, sundukları mantıksal çerçeve inanılmaz derecede tutarlıydı.
Chatbot'tan Ajanlara (Agents) Geçiş
İşte asıl "Aha!" anı buradaydı: Yapay zekanın sadece bir sohbet aracı değil, bir ajan olabileceğini fark ettim.
Bir ajan, sadece kendisine sorulan soruya cevap vermez; bir hedefi gerçekleştirmek için araç