AI Agent Nedir? Tam Teferruatlı İncelemede Bulunalım…
Farkındasınızdır ki, son zamanlarda yazılım uygulamalarının merkezine yapay zekâ oldukça yerleşmiş durumda ve basit uygulamalardan tutun devasa kurumsal sistemlere kadar hemen her ölçüde olan yazılımlarda AI destekli çözümler gündemde ana konu olarak yerini korumaktadır. Çünkü yapay zekâ her sektörde devrim niteliğinde köklü dönüşümlere yol açmakta ve bu dönüşüm süreçlerinde ister istemez hem hayatımızın daha derinlerine işlemekte hem de bu devrimin sessiz kahramanları olan AI Agent kavramını da günlük yaşamın merkezine oturtmaktadır. Bizler bu içeriğimizde, bu dönüşümün tam kalbinde bulunup görünmeyen mimarları olan, kendi başlarına karar verebilen, öğrenebilen, problem çözebilen ve hatta yeni fikirler üreterek yeni hedefler belirleyebilen AI Agent’ları üzerine bir incelemede bulunacak, nedir, ne değildir tam teferruatlı masaya yatırıp, uygulama süreçlerinde hayatımızın bu yeni ve vazgeçilmeyecek parçasını teorik olarak tanımaya çalışacağız. Buyurun başlayalım…
AI Agent Nedir? Ne İşe Yarar?
AI Agent, bağlantı kurduğu yapıları sanki bir çevreymiş/ortammış gibi algılayabilen(perception), bu algılar doğrultusunda kararlar verebilen(decision-making), bu kararları uygulayarak çevresine müdahale edebilen(actuation) ve kullanıcılar adına belirli görevleri yerine getirebilen yazılım sistemidir. Yani AI agent’lar; dış dünyadan veri/girdi alırlar, bunu düşünerek işlerler ve bir hedefe ulaşmak için aksiyon planlayıp uygulamaya koyarlar ve çıktı üretirler.
Çalışma döngüleri kısaca; Girdi → Algılama → Karar Verme → Eylem → Geri Bildirim üzerine kuruludur. Bu döngü sayesinde agent’lar yaptıkları işlere uyum sağlarlar, tekrar ederler ve öğrenim gerçekleştirirler.
AI agent’lar; bizler için zaman alan, karmaşık ya da tekrarlayan işleri hiçbir zaman erişemeyeceğimiz hız ve ölçekte bir efor ile üstlenen yazılımlardır. Günlük hayata dair yapmamız gereken birçok işlevi insan müdahalesine gerek duyulmaksızın tamamlayabilmekte, analizler gerçekleştirip en iyi önerileri sunabilmekte, kullanıcı davranışlarını değerlendirip daha kişisel deneyimler yaratabilmekte ve tüm bunların dışında kendi performansını izleyip zamanla daha iyi sonuçlar üretebilmektedirler.
Bu durumda bir gelecek vizyonu tahmininde bulunursak eğer; AI agent’lar çok yakında bağımsız görev ekipleri gibi davranış sergileyecektirler ve kendi aralarında iş bölümü yapıp şirketler, organizasyonlar ve hatta bireyler için belirlenmiş hedeflere doğru sorumlulukları çerçevesinde koşacak kişisel dijital ekiplere dönüşecektirler.
AI Agent Nasıl Çalışır?
Bir AI agent’ın çalışma prensibi şu adımları içermektedir;
- Algılama (Perception)
Sensörler ya da yazılım inputları üzerinden ortamdan gelen bilgi alınır. - Durum Değerlendirmesi (State Evaluation)
Ortamın ve agent’ın durumu değerlendirilir, hedefle mevcut durum karşılaştırılır. - Karar Verme (Decision-Making)
Hedefe ulaşmak için optimal ya da uygun eylem hesaplanır ve ne yapılması gerektiği belirlenir. - Eylem (Action)
Belirlenen aksiyon uygulanır. - Öğrenme (Learning)
Sonuçlar izlenir ve bir sonraki karar için tekrar değerlendirilir ve değerlendirme sonuçlarına göre sistem kendini günceller.
Bu döngü sürekli tekrar eder.
Ancak kimi zaman bazı agent’lar öğrenmeye kapalı olabilirler. Bunlara reaktif sistemler denmektedir. Reaktif sistemler, dış çevreden gelen girdilere anında ve önceden tanımlanmış kurallar çerçevesinde tepki verdiğinden dolayı model barındırmazlar, geleceğe dönük plan yapmazlar ve haliyle önceki durumlardan bilgi taşımazlar. Misal olarak; bir robot, önüne engel çıktığında yön değiştiriyorsa ama neden bunu yaptığını bilmiyorsa ya da alternatif bir rota öğrenmiyorsa, bu reaktif bir robottur. Bunların aksine bazı agent’larda geçmiş deneyimlerinden öğrenerek daha iyi kararlar alabilirler. Bunlar ise adaptif ya da öğrenen agent’lar olarak nitelendirilmektedir.
AI Agent Türleri Nelerdir?
AI agent türlerini anlamak, sadece bu sistemleri kullanmak değil, aynı zamanda onları tasarlamak ve sorgulamak isteyen biri için altın değerindedir.
Özünde AI agent’lar; yetkilerine, karmaşıklıklarına ve karar alma yöntemlerine göre sınıflandırılmaktadırlar. Ancak bizler farklı yeteneklere sahip farklı agent’lar mevcut olmasından dolayı olayı yetenek kapsamına göre yorumlayacak ve değerlendireceğiz. Bu minvalde aşağıdaki gibi yetenekleri açısından agent’ları beş tür olarak nitelendirebilmekteyiz;
- Basit Tepkisel Agent’lar (Reflex Agents)
En basit agent türüdür.Durum→Eylemeşleşmesi yapar. Yani; eğer bu olursa, şunu yap tarzı if-else mantığında bir çalışmaya sahiptir.Misal olarak; duvara çarpınca yön değiştiren bir robot tipik basit tepkisel agent’a örnektir.
State’i hatırlamaz, çünkü hafızası yoktur. O yüzden hiçbir geçmiş bilgiyi dikkate almamaktadır. Haliyle esneklik açısından oldukça zayıftır.
- Model Tabanlı Agent’lar (Model-Based Agent)
“Ben geçmişte ne yaşadım? Şimdi neredeyim?” sorusunu sorar…
Ortamın iç modeline sahiptir. Burada iç modelden kasıt, agent’ın dış dünyayı kendi zihninde (daha doğrusu veri yapılarında) temsil etmesidir. Eğer bu agent bir robot gibi fiziksel dünyada hareket ediyorsa, iç modeli ortamın fiziksel kurallarını temsil edecektir. Yok eğer simülasyon ortamındaysa çevresinde neler olabileceğini prova misali iç modelde tahayyül edecektir. İşte bu iç model sayesinde agent, olası belirsizliklere karşı davranış sürecindeki bağlamı hatırlayarak ideal aksiyonları sergileyebilir.
Mevcut durumu geçmişe göre değerlendirir ve bundan kaynaklı daha akıllı kararlar verebilir. Bunu da labirentteki robot ile örneklendirebiliriz… Reflex agent; önünde duvar varsa sağa döner, ama nerede olduğunu bilmez. Model-Based agent ise önünde duvar varsa sağa döner ancak nerede olduğunu bilir ve bir daha sağa dönerse bir döngüye girdiğini fark edebilir.
Özetle: Konumunu, nereden geldiğini, nereye gittiğini ve neyle karşılaştığını hatırlayabilir.
- Hedef Tabanlı Agent’lar (Goal-Based Agent)
Artık sadece ‘tepki verme’ değil, ‘bir hedefe ulaşma’ gayesi mevcuttur.
Belirli hedeflere ulaşmaya çalışır ve karar verme sürecinde hedef değerlendirmesinde bulunur. Durumlara göre farklı hedefler arasında seçim yapabilir. Yani planlama yeteneği vardır. Dolayısıyla belirli bir amaca ulaşmak için en uygun yolu seçer.
Bu agent’a navigasyon sistemleri oldukça güzel örnektir.
Hedef tabanlı agent’lar, dinamik hedeflere adaptasyon sağlarlar ve amaçsızca takılmak yerine, hedefe giden akıllı yolları ararlar.
- Fayda Tabanlı Agent’lar (Utility-Based Agent)
“Sadece hedefe ulaşmak yetmez, en iyi şekilde ulaşmak gerek” amacına sahiptir…
Sadece hedefe ulaşmakla kalmaz, en iyi sonucu almaya çalışır. Bundan kaynaklı fayda fonksiyonlarıyla çalışma sergilemektedir. Fayda fonksiyonu(utility function), agent’ın bir durumu ne kadar tercih ettiğini ya da ne kadar iyi bulduğunu sayısal olarak ifade eden matematiksel bir modeldir.
- Bu durumda 80/100 mutluyum
- Şu aksiyon bana -50 zarar getirir
- Şu tercih bana 0.95 başarı şansı sunar
şeklinde her olası durum ya da aksiyon bir sayıyla puanlanmaktadır. Böylece bu sayılar agent’ın karar vermesinde pusula görevi görür.
Her olasılığın sonucunu değerlendirip, en yüksek faydayı hedefler. Risk, maliyet, zaman, güvenlik gibi kriterlerle karar verir.
Örnek olarak otonom araçları verebiliriz; bir yaya aniden yola fırlarsa “durmalı mı, sağa mı kaçmalı?” gibi karmaşık kararları fayda değerlendirmesiyle verebilir.
Gerçek dünyada çoğu durumda sadece hedefe varmak değil, nasıl vardığın daha kritiktir. İşte bundan kaynaklı önemli bir agent modelidir.
- Öğrenen Agent’lar (Learning Agent)
Geçmişten ders çıkarır, kendini geliştirir…
Ortamdan gelen geri bildirimlerle ve edindiği deneyimlerle kendini geliştirir. Bu geliştirme sürecinde yeni kurallar, davranış biçimleri ve hedef yolları öğrenebilir. Böylece de hedef, çevre ya da davranışlar değiştikçe adaptasyon sağlayabilir.
Misal olarak; bir video oyununu oynayan agent’ın oyunu tekrar tekrar oynayarak taktik geliştirmesi öğrenen agent’lara örnektir. Ya da kendi kendine Go oyununu öğrenen AlphaGo’da güzel bir örnek olarak sunulabilir
Özellikle karmaşık, değişken ve bilinmeyen ortamlar için vazgeçilmezdir!
Şimdi aşağıdaki tablo üzerinden tüm bu agent türlerine karşılaştırmalı bir bakış açısıyla genel değerlendirmede bulunalım;
| Tür | Model | Hedef | Fayda | Öğrenme | Karmaşıklık |
|---|---|---|---|---|---|
| Reflex Agent | ❌ | ❌ | ❌ | ❌ | Düşük |
| Model-Based Agent | ✅ | ❌ | ❌ | ❌ | Orta |
| Goal-Based Agent | ✅ | ✅ | ❌ | ❌ | Orta-Yüksek |
| Utility-Based Agent | ✅ | ✅ | ✅ | ❌ | Yüksek |
| Learning Agent | ✅ | ✅ | ✅ | ✅ | En Yüksek |
Peki bu agent türleri hibrit olabilir mi? diye sorduğunuzu duyar gibiyim 🙂 Evet, kesinlikle olabilir. Zaten gerçek alemdeki birçok agent bu türlerin bir kombinasyonu olarak varlık göstermektedirler. Buna da bir örnek vermemiz gerekirse eğer Tesla’nın otonom sürüş sistemini verebiliriz. Bu sistem, hem hedefe ulaşmaya çalışmakta(goal-based), hem en güvenli yol hangisi diye bakmakta(utility-based) hem de yolda öğrendiklerini adapte ederek kendini geliştirmektedir(learning)
AI Agent Mimarileri Nelerdir?
Artık AI agent’larının ne oldukları ve ne yaptıklarına dair temel fikirlere sahip olduğumuza göre bir AI agent’ın nasıl işlem yaptığını konuşmaya başlayabiliriz. Bunun için agent mantığının davranışından ziyade tasarımına ve zihin yapısına odaklanmamız gerekmektedir.
AI agent mimarisi özünde agent’ın beyin yapısıdır. Yani nasıl düşündüğü, nasıl karar verdiği, bilgiyi nasıl işlediği bu mimariyle anatomi kazanmaktadır. Tabi esas olarak agent’ın üstleneceği görevin mahiyetine göre mimarisi şekillenecektir. Yani farklı görevler, farklı mimariler gerektirecektir. Tıpkı klasik yazılımda olduğu gibi; basit bir gereksinim nasıl ki basit bir mimariyle, karmaşık gereksinim ise modüler ve microservice mimarisiyle çözüme götürülüyorsa aynı durum AI agent’lar için de geçerli olacaktır.
Aşağıda gereksinimine göre geçerli olabilecek beş agent mimarisi incelenmektedir;
- Reactive (Reaktif) Mimari
Durumu algıla → Kurala göre tepki ver → Devam et
Reaktif mimaride hafıza ve planlama yoktur. Duyusal bilgiye doğrudan tepki verilir. Bundan kaynaklı hızlı, düşük maliyetli ve gerçek zamanlı işler için avantajlı bir mimaridir. Ancak karmaşık sorunlara karşı amiyane tabirle -aptalca- kalacaktır ve özellikle aynı hataları tekrar ederek kullanıcının şirazesini kaydıracaktır. Adaptasyon sıfırdır.
- Deliberative Mimari
Durumu analiz et → Plan yap → Planı uygula
Ortam hakkında iç model taşıyan mimaridir. Hedefe ulaşmak için adım adım plan oluşturulur,
durum → eylemzinciri kurulur. Uzun vadeli düşünülmesi ve karmaşık kararların alınması gereken durumlarda kullanışlıdır. Ancak yavaş olabilir ve gerçek zamanlı sistemlerde tepki süresi ister istemez kullanıcıya haddinden fazla yansıtılabilir.Satranç oynayan bir AI oluşturmayı düşünüyorsanız bu mimariyi tercih edebilirsiniz.
- Hybrid Mimari
Hem hızlı tepki verir, hem gerektiğinde derin düşünür…
Reaktif ve deliberative mimarilerin birleştirilmiş halidir diyebiliriz. Genelde modüler yapıda inşada bulunulur ve algılama, planlama ve eylem katmanları ayrı modüllerde çalıştırılır.
- BDI Mimari
İnanıyorum ki… Şunu istiyorum… O zaman bunu yapmalıyım…
Bu mimarinin adı özünde Belief-Desire-Intention Architecture‘dan gelmektedir.
- Belief (İnançlar)
Agent’ın dünyaya dair sahip olduğu bilgi ya da inançları temsil etmektedir. Bunlar eksik, hatalı ya da değişebilir olabilir.Misal olarak; bir temizlik robotunun ‘salın şu anda boş’ inancı varsa, bu onun mevcut dünya algısını yansıtır. Dolayısıyla inançlar dinamik yapılardır. Gerçek zamanlı olarak sensör verileriyle güncellenebilir. Hem dış dünyaya dair bilgileri hem de kendisine dair durumları (örneğin pil seviyesi) içerebilir.
- Desire (İstekler/Amaçlar)
Bir agent’ın ulaşmak istediği hedeflerdir. İstekler, agent’ın neyi başarmak istediğini yani ‘ideal durumları’ tanımlarlar.Aynı anda birden fazla istek olabilir, ee haliyle tüm istekler uygulanabilir olmayabilir, olmayacaktır da! Hatta bazıları birbirleriyle de çelişebilir. Bunlar olağan durumlardır.
- Intention (Niyetler/Kararlılıklar)
Agent’ın, mevcut inançları ve istekleri doğrultusunda gerçekleştirmeye karar verdiği eylem planlarıdır. Başka bir deyişle, niyetler isteklerin içinden gerçekleştirilebilir ve öncelikli olanları seçip somut bir plana dönüştürür.Yani planlanmış eylem dizileridir. Dolayısıyla hem agent’ın odaklandığı amacı hem de nasıl ulaşacağını belirler. Süreç içerisinde yeni bilgi edinilirse niyet güncellenebilir veya terk edilebilir.
Bu mimariyle geliştirilen agent, çevresinden veri toplar ve inançlarını günceller(algılama/perception) Güncel inançlara göre yeni istekler(desire) ortaya çıkar(amaç tespiti) Ardından bu isteklere dayalı olarak niyet belirlenir(niyet seçimi) ve bu niyet doğrultusunda bir plan oluşturulur ve uygulanır(planlama ve eylem)
Böylece bu mimari sayesinde, klasik if-else mantığından daha çok esnek, insan benzeri karar verme sistemleri kurmaya imkan tanınmaktadır.
- Belief (İnançlar)
- Layered Mimari
Zekayı seviyelere ayır, her seviye ayrı işi yönetsin…
Layered mimaride; ortamdan veri alınır(algı/perception), anlık kararlar verilir ve uzun vadeli hedefler planlanır(strateji/strategic) Modüler bir yaklaşım sergilendiği için bakımı kolay, geliştirmesi ise rahattır. Ayrıca her katman bir diğerine girdi veya hedef olarak hizmet etmektedir.
Evet, mimarileri tek tek incelediğimize göre aşağıdaki tablo aracılığıyla özet mahiyetinde nihai karşılaştırmayı gerçekleştirelim;
| Mimari Türü | Planlama | Hafıza | Hız | Karmaşıklık | Kullanım Alanı |
|---|---|---|---|---|---|
| Reaktif | ❌ | ❌ | ⚡ | Düşük | Basit robotlar, IoT |
| Deliberative | ✅ | ✅ | 🐢 | Orta-Yüksek | Yol bulma, stranç AI |
| Hybrid | ⚡+🧠 | ✅ | ⚖️ | Yüksek | Otonom sistemler |
| BDI | ✅ | ✅ | ⚡/🐢 | Yüksek | Çok ajanlı, stratejik AI |
| Layered | ✅ | ✅ | ⚡ | Yüksek | Oyun AI, simülasyon sistemleri |
Tüm bu anlatılanlar kapsamında agent’lar belirli bir göreve yalnız başına odaklı olan(single agent), ihtiyaç doğrultusunda farklı agent’larla birlikte çalışabilen(multi agent) ya da işbirliği yapan veya insanla birlikte etkileşim kurabilen(human machine) yazılımlardır.
Anlaşılan o ki, AI agent’lar gelecekte sadece görevleri yerine getiren sistemler olarak kalmayacak; öğrenen, karar veren ve insanlarla stratejik iş birliği yapan dijital varlıklar haline evrilmeye doğru hızla yol alacaktırlar. Tam da bundan dolayı agent yapısını hem teknik hem de stratejik açıdan anlamak ve anlamlandırmak altın değerindedir diye düşünüyorum.
5 Kritik Soru & 5 Kritik Cevap
Şimdi de AI agent’ları daha derin anlamak için belki sizlerin de aklında cereyan eden üst seviyeden bazı soruları kendimizce sorup cevaplandırmaya çalışalım.
Soru 1 | Bu agent’lar gerçekten zeki mi, yoksa sadece iyi bir ezberciler mi?
Günümüzde kullandığımız agent’lar ister LLM olsun isterse de bir özel görev için eğitilmiş yazılım agent’ı olsun esas itibarıyla ‘istatistiksel ezberciler’dir. Yani öğrendikleri şey esasında devasa veri setlerinden dil, mantık, örüntü ilişkilerini yakalamak üzeredir. Yaratıcılık kısımları da yine bu örüntülerin yeni kombinasyonlar üretmesinden ibarettir. Buradan anlayacağınız, agent’ların davranışı bilinçli bir amaç ya da özgün bir ‘anlama’ kapasitesinden kaynaklı şekillenmemektedir!
Kısaca, zeka gibi davranıyorlar ama şu anki formlarıyla gerçek zekaya sahip değildirler.
Bu arada, buradaki ‘ezbercilik’ küçültücü bir tabir olarak anlaşılabilir. Hayır, niyetimiz bu değildir! Hatta aksine, bazı insan yeteneklerini bile aşabilen çok büyük bir ezberlemeyle birlikte genelleme becerisinden bahsediyoruz.
Bildiğim ve anladığım kadarıyla şu anki teknolojik paradigma içerisinde bilinçli bir AI yok varsa da benim haberim yok 🙃 En fazla algoritması daha iyi optimize edilmiş ve gerçeğe daha yakın varlık gösteren farklı sürüm agent’lar var diyebilriiz.
Ufukta ise görünenler için Allah Kerim diyebiliriz…
Soru 2 | Agent’lar hatalı karar verdiğinde sorumluluk kime aittir?
Bu tıpkı, bir silahın değil o silahı kullanan failin suçlu olmasına benzemektedir.
Ama burada şöyle temel bir fark vardır diyebiliriz. Bir silahla işlenen suçla silah üreticisinin herhangi bir ilişiği yoktur lakin, agent’ı tasarlayan yazılım şirketinin ya da geliştiricinin olası hatalar ya da yanlış kararlar neticesinde oluşan zarara karşın sorumlulukları her daim olacaktır. Hatta görece bu sürece agent’ı denetlemekle yükümlü olan yöneticiler ve kullanıcılar da dahil edilebilir.
Elbet bu sorunlara karşın gelecekte ‘AI Sorumluluk Sigortası’ gibi bir endüstri kaçınılmaz olacak gibi gözükmektedir 🤣 Kanı kaynayan genç girişimci arkadaşlara fikir olsun 😉
Soru 3 | Bir agent sorumluluğunu, görevini ve hedefini iradesiyle değiştirebilir mi?
Ama bu değişken hedefli agent’lar oluşturulmayacağı anlamına gelmemektedir. Bazı sistemler ilk hedefleri sabit olmakla birlikte, yeni bilgiler veya durumlar ortaya çıktığında hedeflerini yeniden yorumlayabilecek şekilde tasarlanabilmektedirler. Yazımızın önceki satırlarında hatırlarsanız bu tarz agent’ları adaptif(adaptive) agents olarak nitelendirdik ve hatta hedef tabanlı(goal-based) agent türü altında değerlendirmiştik.
Buna bir örnek vermemiz gerekirse eğer; bir agent başlangıçta ‘ormanı koru’ hedefiyle programlanmış olabilir, lakin zamanla fark eder ki, en iyi koruma yolu ekosistemi kendi doğal evrimsel sürecine bırakmaktır, dolayısıyla ‘doğrudan müdahele etmeme’ hedefini benimseyerek davranışını şekillendirebilir.
İşte bu tarz inisiyatifler agent’ın hangi tür ve modelde tasarlandığıyla doğru orantılı bir şekilde cereyan etmektedir.
Soru 4 | Çoklu agent sistemlerinde nasıl işbirliği veya rekabet oluşur? Ne tarz yaklaşımlardan istifade edilir?
Genellikle bu tarz senaryolar için aşağıdaki gibi bazı tasarımlardan istifade edilebilir;
İşbirliği için;
- Merkezi bir beyin olmaksızın ve ortak bir plan yapmaksızın distributed planning(dağıtık planlama) tasarımı tercih edilebilir.
- Bir grup agent’ın, ortak bir karar vermek için oybirliği yaptığı veya çoğunluğa göre davranış sergilediği consensus algorithms’den istifade edilebilir.
- Agent’ların, güven ve yetkilerine göre nasıl bir hiyerarşide çalışacaklarını belirleyebilecekleri trust models(güven modelleri) temellerinde bir tasarım uygulanabilir.
Rekabet için;
- Agent’ların kendi çıkarlarını maksimize etmek için stratejik davrandığı game theory(oyun teorisi) mantığında bir tasarım uygulanabilir.
- Kaynaklar agent’lar arasında açık artırma usulüyle(auction models) dağıtılabilir.
- Agent’ların kendi aralarında anlaşmazlık durumunda pazarlık yapacakları negotiation protocols(müzakere protokolleri) tarzı bir tasarım uygulanabilir.
Soru 5 | Bir uygulamaya entegre edilmiş herhangi bir AI model’i ile olan etkileşim neticesinde yapılan yazılımla bir AI agent arasındaki farklar nelerdir?
prompt → response mantığında yanıtlar verirler. Haliyle kullanıcı odaklıdırlar ve tetiklenmeyi kullanıcıda beklerler. Oysaki AI agent’lar, bir hedefe ulaşmak için bağımsız çalışmaktadırlar. Yani bir hedefleri vardır! Bundan kaynaklı kendi kararlarını verir, hedefe ulaşmak için adım atar ve aktif bir görev yöneticisi gibi çalışırlar.
Kendi AI Agent’ımızı Nasıl Oluşturabiliriz?
Kendimize göre özelleştirilmiş bir AI agent’ı oluşturmak için belli başlı mantıksal adımları kendimizce doğrulamamız gerektiğini düşünüyorum. Bunun için aşağıdaki adımlar eşliğinde oluşturacağımız AI agent için nedenselliği doğru bir şekilde belirleyebilir ve nasıl bir ihtiyaç olduğuna dair gereksinim değerlendirmesini gerçekleştirebiliriz;
- Hedef Belirlenmesi (Bu agent’ın misyonu ne?)
Öncelikle sorulması ve cevabı aranması gereken soru ‘bu agent kimin içindir ve hangi problemleri çözecektir?’ minvalinde olmalıdır. - Temel Teknolojilerin Belirlenmesi (Altyapı ne olacak?)
Bu agent’ın hangi teknolojiler ve yaklaşımlarla inşa edileceğine karar verilmesi gerekmektedir. - Model Seçilmesi (Beyin olarak hangi AI modeli kullanılacak?)
Yapılacak işe ve gereksinime göre hangi LLM ya da AI modeli ile çalışma sergileyeceği belirlenmelidir. - Hafıza ve Durumsallık Kararı (Bu agent, geçmişi hatırlayacak mı?)
Bu önemlidir! Oluşturulacak agent’ın hangi türden olacağı ve nasıl bir mimariye sahip tasarlanacağı bu soruya verilecek cevapla belirlenecektir. - Tool/Skill Yönetimi (Hangi yetkinliklere sahip olacak?)
Agent’ın sadece konuşması ya da salt bir iş yapması yetmeyecek, gerektiğinde farklı yetenekler sergilemesi de icap edecektir. Haliyle API çağırma, database sorgulama, rapor hazırlama vs. gibi ekstradan yeteneklerin tool ya da plugin olarak devreye sokulması gerekecektir. İşte tüm bunlar iş gereksinimleri doğrultusunda başta analiz edilmeli ve genel tasarıma yerleştirilmelidir. - Planlama ve Görev Yönetimi (Nasıl yol alacak, davranış sergileyecek?)
İyi bir agent; hedefi anlar, küçük adımlara böler ve hangi adımı hangi tool ile çözeceğine karar verebilir. Bunun için doğru yaklaşımlar belirlenmelidir. - Arayüzün Tasarlanması ve Entegrasyonun Sağlanması (Kullanıcıyla nasıl ve nereden etkileşim kurulacak?)
Evet, son olarak bu AI agent nasıl bir ürün olarak son kullanıcıyla buluşturulacağının planlanması gerekmektedir.
Aşağı yukarı bu mantıksal adımları takip edebilir ya da soruların cevaplarını mümkün mertebe verebilirseniz bir AI agent’ın gelişim sürecindesinizdir diyebiliriz…
.NET’te Basit Bir AI Agent Çalışması Yapalım
Yazımızı nihayete erdirmeden, .NET ekosisteminde basit ama temel fikirleri kapsayan bir AI Agent örneğini değerlendirmelerinize bırakmayı faydalı görüyorum. Bu kodsal açıdan basit ama yazılım geliştiricileri için AI agent mantığı açısından yine basit bir örnektir 🙂 Buyurun;
using Basic_AI_Agent_With_Semantic_Kernel_Example.Plugins;
using Basic_AI_Agent_With_Semantic_Kernel_Example.Services;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.SemanticKernel;
using Microsoft.SemanticKernel.ChatCompletion;
using OpenAI;
using System.ClientModel;
Logger.ConsoleLog("AI Agent başlatılıyor...", ConsoleColor.Green);
var builder = Kernel.CreateBuilder();
builder.Services.AddHttpClient();
builder.AddOpenAIChatCompletion(
modelId: "google/gemini-2.0-flash-exp:free",
openAIClient: new OpenAIClient(
credential: new ApiKeyCredential("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"),
options: new OpenAIClientOptions
{
Endpoint = new Uri("https://openrouter.ai/api/v1")
}
)
)
#region Plugin'ler aracılığıyla agent'a farklı yetenekler kazandırılıyor.
.Plugins
.AddFromType<PostPlugin>()
.AddFromType<CommentPlugin>();
#endregion
var kernel = builder.Build();
#region Agent'a davranışını tanımlayan bir sistem prompt'u veriliyor.
var agentSystemPrompt = @"
Sen bir yapay zeka asistanısın.
Kullanıcı postlar ve o postlara yapılan yorumlar üzerinde türlü sorular soracaktır.
Bu soruları en iyi şekilde yanıtla.
Yorumları olumlu ya da olumsuz olmasına göre analiz edip değerlendirebilirsin.
Verileri analiz edebilir, aralarında mantıksal ilişki kurabilirsin.
İhtiyaç gördüğün taktirde farklı görevleri yerine getirebilirsin.
İşte kullanıcının girdisi: {{$input}}
Geçmiş konuşmalar: {{$history}}
Yanıtı aşağıda açık ve yardımcı bir şekilde aşağıda ver:
";
var systemFunction = kernel.CreateFunctionFromPrompt(
promptTemplate: agentSystemPrompt,
executionSettings: new PromptExecutionSettings
{
FunctionChoiceBehavior = FunctionChoiceBehavior.Auto()
});
#endregion
#region Agent çalıştırılıyor.
var chatHistory = new ChatHistory();
Console.WriteLine("AI Agent hazır! Sorunuzu yazın :");
while (true)
{
Console.Write("> ");
var userInput = Console.ReadLine();
chatHistory.AddUserMessage(userInput);
if (string.IsNullOrEmpty(userInput))
continue;
try
{
var agentContext = new KernelArguments()
{
["input"] = userInput,
["history"] = string.Join("\n", chatHistory.Select(h => $"{h.Role}: {h.Content}"))
/*ChatHistory nesnesi InvokeAsync metodunda değil IChatCompletionService'de desteklenmektedir.
Haliyle ChatHistory nesnesini InvokeAsync'de kullanabilmek için ufak bir dönüşüm
operasyonu gerçekleştiriyoruz.*/
};
var result = await systemFunction.InvokeAsync(kernel, agentContext);
chatHistory.AddAssistantMessage(result.GetValue<string>());
Console.WriteLine("\nYanıt : ");
Console.WriteLine(result.GetValue<string>());
}
catch (Exception ex)
{
Console.WriteLine($"Hata oluştu : {ex.Message}");
}
Console.WriteLine();
}
#endregion
Yukarıdaki çalışmaya göz atarsanız, evet bir nebze AI Agent’tan ziyade chatbot’u andıran ama verilen prompt neticesinde de pluginler üzerinden bir AI Agent mantığında temel davranışlar sergileyen basit bir örneklendirmede bulunmuş vaziyetteyiz. Bu çalışmanın tamamına içeriğimizin sonunda paylaştığımız GitHub adresi üzerinden göz atabileceğiniz için plugin ve diğer detaylara burada temas etmiyorum. Ayrıca buradaki mış gibi olan örneğin aksine gerçek bir AI Agent oluşturabilmenin temellerini bu içeriğimizde teorik olarak attığımız gibi sonraki içeriklerimizde pratik bir şekilde inşa ediyor olacağız.
Nihai olarak;
Bu içeriğimizde AI Agent kavramını tam teferruatlı incelemiş ve nasıl çalıştığı, hangi türlerden oluştuğu ve ne gibi mimarisel yaklaşımlara sahip olduğu gibi değerlendirmelerde bulunmuş ve sonraki yapacağımız çalışmalara oldukça geniş kapsamlı teorik bir bilinç oluşturmuş bulunuyoruz.
İlgilenenlerin faydalanması dileğiyle…
Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…
Not : Örnek çalışmaya aşağıdaki GitHub adresinden erişebilirsiniz.
https://github.com/gncyyldz/Basic_AI_Agent_With_Semantic_Kernel_Example

