Yazılım Mimarileri ve Tasarım Desenleri Üzerine

AutoGen Nedir? Derinlemesine Teorik İnceleyelim…

AutoGen

Merhaba,

Bu içeriğimizde Microsoft tarafından yapay zekâ tabanlı kompleks uygulamaların geliştirilmesini kolaylaştırmak amacıyla sunulmuş bir framework olan AutoGen‘i a’dan z’ye inceleyecek ve tüm yeteneklerini nedensellik çerçevesinde kavramaya çalışıyor olacağız. Evet, heyecanlı ve uzun soluklu bir inceleme olacağı için hiç vakit kaybetmeksizin buyurun başlayalım…

AutoGen Nedir? Ne Amaca Hizmet Etmektedir?

AutoGen; Microsoft tarafından yapay zekâ tabanlı uygulamaların geliştirilmesini kolaylaştırmak amacıyla open source olarak sunulan bir framework’dür. Bu framework temelde, birden fazla yapay zekâ ajanının doğal dil üzerinden etkileşerek karmaşık görevleri birlikte çözebildiği bir ortam sunmakta ve böylece çoklu yapay zekâ ajanlarının (multi-agent LLM systems) bir arada çalıştırılmasını sağlayarak daha karmaşık ve dinamik uygulamaların oluşturulmasına imkan tanımaktadır.

AutoGen Nedir?
AutoGen, özellikle LLM’lerin birlikte işbirliği yapabildiği sistemlerin inşasına odaklanarak, tek bir modelin yaptığı işi birden fazla agent/ajan arasında paylaştırabilmektedir. Farklı uzmanlık alanlarına sahip ajanlar tanımlayabilmekte, bunlar arasında görev paylaşımı ve diyalog gerçekleştirilmesini sağlayabilmekte ve geri bildirim döngüleri oluşturabilmektedir. Böylece modellerin kendi başlarına çözmekte zorlandığı karmaşık görevler, bir orkestrasyon mekanizması sayesinde daha başarılı bir şekilde çözüme kavuşturulabilmektedir.

Nitekim araştırmalar, bir LLM’in cevabındaki hataları başka bir LLM’in ya da insanın işaret etmesi durumunda, modelin performansının önemli ölçüde arttığını göstermektedir. AutoGen işte bu etkileşimli geri bildirim döngüsünü otonom şekilde gerçekleştirmeyi hedeflemektedir.

AutoGen’in Amacı Nedir?
AutoGen, geleneksel tek ajanlı ‘soru-cevap’ modellerini aşarak, birden fazla yapay zekâ bileşeninin senkronize şekilde çalıştığı agentic iş akışlarını hedeflemektedir. Haliyle bu amaç doğrultusunda AutoGen’in gayesini aşağıdaki dört maddeyle özetleyebiliriz;

  1. Çoklu Ajan Senaryolarını Kolaylaştırmak
    Kullanıcıların, birden fazla yapay zekâ ajanını bir sistem içinde kolayca tanımlayıp istediği senaryoları oluşturmasını sağlayabilir.
  2. Otomasyon ve Hata Giderme
    Ajanlar birbirlerinin çıktıları üzerine yorum yaparak hataları düzeltebilir ve daha yüksek doğruluk sağlayabilir.
  3. İnsan – Ajan İşbirliği Sağlama
    İnsanlar ile yapay zekâ ajanlarının birlikte çalışmasına imkan tanıyabilir. Yani insan, sistemin parçası gibi rol alabilir.
  4. Geliştirici Dostu API Sunmak
    Özelleştirilmiş ajanlar yaratmayı kolaylaştıran bir yapı sunabilir.

AutoGen Bileşenleri Nelerdir?

AutoGen’in temel bileşenleri arasında görev odaklı yapılandırılabilen ajanlar, bu ajanların etkileşimlerini yöneten konuşma döngüsü, dil modeli entegrasyonu, gerektiğinde kod çalıştırma yeteneği, esnek yapılandırma seçenekleri ve işbirliğine dayalı stratejiler yer almaktadır. Şimdi gelin bu bileşenleri tek tek hususi olarak irdelemeye odaklanalım…

AutoGen Mimarisinin Çalışma Mekanizması Nasıldır?

AutoGen’in .NET sürümünde, tüm ajanlar ortak bir arayüz/interface olan IAgent‘ı uygulamaktadırlar ve ajanlar arasındaki haberleşme mesajlaşma mekanizmasına dayanmaktadır. Geliştirici istediği taktirde ajanlar arasındaki sürece (örneğin, yanıt gelmeden önce ya da sonra) dahil olup müdahale edebilmektedir. Tabi bunun için bir genişletici mekanizma lazımdır. Haliyle bu mekanizma AutoGen’de middleware olarak nitelendirilmektedir. Evet, bir ajana middleware ile özel davranışlar eklenebilmektedir.

AutoGen mimarisinin çalışma mekanizmasını özetlemek gerekirse; geliştirici, projesine uygun ajan tiplerini oluşturur ve gerekiyorsa bunlara middleware’ler veya tool’lar ile özel davranışlar ekleyerek donatır. Ardından ajan(lar) bir görev mesajı alır almaz LLM üzerinden yanıt üretmeye başlar. Geleneksel tekli ajan durumunda cevap doğrudan kullanıcıya döner, lakin çoklu ajan durumunda ise bir ajanın ürettiği yanıt, diğer ajanın girdisi olacak şekilde ajanlar arası mesajlaşma birkaç tur devam edebilir. Bu etkileşim, belirlenen tur sayısına veya “görev tamamlandı” sinyaline ulaşıncaya dek sürebilir.

AutoGen, bu süreçte her mesaj alışverişini bir olay olarak ele alıp, sürecin asenkron ve ölçeklenebilir biçimde çalışabilmesini sağlar. Misal olarak; bir grup sohbetinde ajanlar tek tek sırayla çalışabileceği gibi uygun senaryolarda birden fazla ajanın paralel çalışması da mümkün olabilir. Evet, AutoGen’in tasarımı bu tarz kurumsal ölçekli iş yüklerini de kaldırabilecek esneklik ve güçtedir.

AutoGen’in Semantic Kernel’dan Farkı Nedir?

Bu güne kadar Semantic Kernel aracılığıyla .NET ekosisteminde yapay zekâ entegrasyonları üzerinde çalışmalar yürütmüştük. Haliyle AutoGen ile SK arasındaki farkı tam olarak masaya yatırmakta fayda görmekteyim. AutoGen, neyi farklı kılmakta ve SK’nın çözemediği hangi probleme çözüm getirmektedir? hadi değerlendirelim…

Öncelikle şunu vurgulayalım ki; SK, AutoGen’e göre daha programlama odaklı bir yaklaşımdır ve geliştirici istediği akışı kodla kurmaktadır. AutoGen ise daha ajan odaklıdır ve ajanlar kendi aralarında diyaloglarla planlar yapmaktadır. Buradan yola çıkarak, SK’nın LLM entegrasyonu için araç seti sunduğunu fakat nihai olarak yapılacak işleri geliştiriciden kodlamasını beklediğini amma velakin AutoGen’in ise üst seviye bir çalışma zamanı orkestratörü olduğunu ve birden fazla LLM kullanarak ne yapılacağını dilsel etkileşim yoluyla ajanlar ile saptayıp, yaptığını söyleyebiliriz. Bu yüzden AutoGen, SK’ya kıyasla daha az kodla daha karmaşık etkileşimler kurabilmektedir. Nitekim AutoGen, gerektiği taktirde SK’yı bir araç olarak kullanabilecek bir yapıya da sahiptir (bknz : AutoGen.SemanticKernel) Ee buradan da anlıyoruz ki; AutoGen’in, SK’nın çeşitli AI servislerine bağlanabilmesi, hafıza yönetimi vs. gibi güçlü olduğu yönleri içinde değerlendirebilmesi, esasında rakipten ziyade gerektiği taktirde birbirlerini tamamlayan çözümler olduğuna işarettir. Bu karşılaştırmada söylenebilecek tek husus şudur ki; SK’nın özellikle .NET geliştiricilerine özel olarak aşina gelen bir kod-yazılım yaklaşımı sunduğu, AutoGen’in ise Python dünyasından gelen Agentic AI yaklaşımını .NET’e taşıdığıdır. Bu nedenle AutoGen konsepti, geleneksel .NET uygulama geliştirmeye kıyasla daha deneysel ve araştırma odaklı görülebilmektedir.

Şimdi yukarıdaki soruların cevaplarını vermek için iki yapıyı hem teknolojik hem de amaçsal olarak mukayese edersek farklarını net bir şekilde vurgulamış olacağımızı düşünüyorum.

Teknolojik olarak;
AutoGen, ajan tabanlıdır; SK ise fonksiyon tabanlı. Yani AutoGen LLM ajanları arası etkileşime odaklıyken, SK ise LLM’ler ile geleneksel yazılımlar arasındaki entegrasyona odaklıdır.

Amaçsal olarak;
AutoGen, ajanlar arası işbirliği ve görev otomasyonunu amaç edinirken, SK ise LLM çağrılarını klasik programlara entegre etmeyi ve bu programlarla iletişim kurulabilir hale getirmeyi ya da bir başka deyişle geleneksel yazılımlara yapay zekâ niteliği kazandırmayı amaçlamaktadır.

Bu minvalde AutoGen çok ajanlı sistemleri, ajanlar arası tartışmayı, istişareyi ve işbirliğini hedeflerken, SK ise uygulamaya AI modellerinin yeteneklerini kazandırmayı ve hafıza yönetimini hedeflemektedir.

Şimdi her iki teknolojiyi sundukları hizmetler çerçevesinde aşağıdaki tabloda kıyaslarsak eğer;

AutoGen Ne Sunmaktadır? SK Ne Sunmaktadır?
  • Çoklu Ajan Senaryoları
    Birden fazla aralarında iletişim kurabilen LLM ajanı tanımlanabilir.
  • Dinamik İletişim
    Ajanlar, bir ‘sohbet’ ortamında birbirleriyle mesajlaşır gibi bilgi paylaşabilir.
  • İnsan-Ajan İşbirliği
    İnsan kullanıcısı sistemin içinde doğrudan yer alabilir.
  • Rollere Dayalı Yapı
    Her ajanın rolü farklı olabilir.
  • LLM + Kod İşbirliği
    LLM’leri C#, Python gibi geleneksel dillerle bir araya getirip fonksiyon gibi kullanabilir.
  • ‘Plan + Execute’ Yapısı
    LLM, bir hedef için bir plan oluşturur ve adım adım uygulayabilir.
  • Hafıza, Bağlam ve Prompt Yönetimi
    Uzun süreli hafıza, bağlamsal veri saklama gibi özellikleriyle kapsamlı bir bağlam yönetimi sağlayabilir.
  • Plugin Yapısı
    AI modellerle olan etkileşim sürecine farklı yetenek dahil edilerek iletişim süreci ve çıktı manipüle edilebilir.
Ne Zaman Hangisi?
Senaryo Örneği Tavsiye Edilen
Birden fazla yapay zekâ ajanı arasında fikir alışverişi gerektiren görevler. AutoGen
LLM’in bir API’yi çağırması, veri çekmesi, iş akışında bir adım olarak görev alması Semantic Kernel
Planlama, komut zinciri çalıştırma Semantic Kernel
Takım gibi çalışan “eleştirmen, kodlayıcı, testçi” gibi ajanlardan oluşan sistem AutoGen
AI destekli uygulamaya fonksiyonel hafıza ve bağlam kazandırmak Semantic Kernel
Bir görev, tek bir modelin yeterli olmadığı; fikir üretme, karar verme, değerlendirme ve yürütme gibi çok aşamalı süreçler içeriyor. AutoGen
Modelin çıktısı, başka bir ajan veya kullanıcı tarafından kontrol edilip, iyileştirme isteniyor. AutoGen
İnsan sistemin içinde aktif rol alıyor. Bazı kararları bizzat veriyor ama diğerlerini LLM’lere bırakıyor. AutoGen
Belirli roller üstlenen yapay zekâ ajanlarının bir konuda tartışma yürütmesi, analiz yapması. AutoGen
Birkaç adımdan oluşan ve insan müdahalesi olmadan tamamlanması istenen görev zincirleri AutoGen

AutoGen İle Ne Tarz Agent’lar Oluşturabiliriz?

AutoGen ile oluşturulabilecek ajanlar neredeyse sınırsız çeşitliliğe sahiptir diyebiliriz. Çünkü, her ajan aslında belirli bir rolü, uzmanlığı ve iletişim biçimini temsil etmektedir. AutoGen’in en büyük gücü de burada yatmakta, her ajanı bir takım üyesi gibi özelleştirebilmekte, görevler atayabilmekte ve onları konuşturabilmektedir.

Haliyle tahmini bir bakışla, AutoGen ile oluşturulabilecek ajan türlerini kategorize etmeye çalışırsak eğer şöyle ana başlıklardan oluşan bir özette bulunabiliriz;

Function Call Nedir?

Function call, dil modelinin bir fonksiyonu çağırmak istediğini belirtmesini ve bu fonksiyonun dış sistem tarafından çalıştırılmasını sağlayan arayüz gibi bir mekanizma ya da çok ajanlı sistemlerin bir parçasıdır. AutoGen, OpenAI gibi LLM servislerinin sağladığı function call yeteneğinden faydalanarak ajanların ihtiyaç duydukları anda proje içindeki belirli fonksiyonları(tools) çağırmasına imkan tanımaktadır. Bu mekanizma, FunctionCallMiddleware adı averilen bir middleware ile gerçekleştirilir.

AI modeli, belirli bir kullanıcı komutunu aldıktan sonra bu komuta uygun bir fonksiyon tanımı eşleşirse gerekli parametrelerle birlikte bu fonksiyonu çağırmak istediğini belirtir ve dış uygulama bu çağrıyı gerçekleştirir ve sonucu AI modele iletir. AI model ise bu sonucu bağlama göre yorumlayarak son kullanıcıya anlamlı bir çıktı sunar.

Function call özelliğinin temel amacı, LLM’in dış dünya ile etkileşimini sağlamaktır.

Buna örnek vermemiz gerekirse eğer;

Kullanıcı : “Yarın sabah 9’a bir toplantı ayarla.”
Model : function_call : scheduleMeeting(time="09:00", date="tomorrow")
Arkaplanda Google Calendar API çağrılır ve toplantı eklenir. Netice olarak model şu yanıtı verir :
“Toplantınız yarın sabah 9:00’a başarıyla eklenmiştir.”

8 Kritik Soru & 8 Kritik Cevap

Soru 1 | Neden ajan tabanlı yaklaşımlar fonksiyon tabanlı yaklaşımların ötesine geçiyor?
“Ajanlar, merkezi olmayan ama birlikte karar verebilen yapay zekâ takımlarıdır…”

Fonksiyonel yapılar tekil görevleri yerine getirmek için idealdir. Lakin ajan tabanlı sistemler, karar alabilen, fikir yürütebilen, kendi aralarında iletişim kurarak yeni çözümler doğurabilen yapılar oluştururlar. Bu da LLM’leri yalnızca bir “araç” olmaktan çıkarıp, kümülatif düşünebilen zekâ varlıkları haline getirirler.

Soru 2 | AutoGen ile zincirleme düşünme (chain-of-thought) nasıl daha ileri taşınıyor?
Tek modelle yapılan “chain-of-thought” sadece içsel bir muhakeme zinciridir. AutoGen’de bu zincir çoklu dış sesler ve uzmanlıklarla dışsallaşır. Böylece her adım başka bir ajanın gözetiminden geçerek daha rafine, eleştirilmiş ve kanıtlanmış hale gelir.
Soru 3 | Bir görevin AutoGen ile çözülmesi, çözüm kalitesini nasıl etkiler?
Tabi ki de çözüm kalitesini artıracaktır. Şöyle ki; farklı ajanlar aynı çıktıya farklı perspektiflerle bakacak ve böylece olası hatalar daha erken fark edilebilecek ve düzeltilebilecektir. Ayrıca istendiği taktirde insan müdahalesi yapılabilecek ve geri bildirim mekanizmasıyla sürecin her aşaması kontrol edilebilecektir. Ee bu da özellikle yüksek doğruluk, etik hassasiyet ve çok adımlı planlama isteyen görevlerde kaliteyi doğrudan arttıracaktır.
Soru 4 | AutoGen sayesinde ortaya koyulan yapıyı Microservice mimarisi gibi düşünebilir miyiz?
Biz .NET geliştiricileri için AutoGen ile ajanlar arasında yapılan sistemde her bir ajan farklı bir görev, uzmanlık ve eylem ile varlık gösterdiği için kurgulanan mimari esasında microservice mimarisi gibi düşünülebilir. Bu mimari, bir orkestrasyon katmanı olan GroupChatManager ile yer yer senkronize veya asenkron biçimde birbirleriyle iletişim kurup işlevsellik göstermektedir. Bu da bir nebze Saga‘yı anımsatmıyo değildir 🙂
Soru 5 | Ajanlar arası çatışma veya görüş ayrılığı olması avantaj mı, dezavantaj mı?
Avantajdır. Çünkü fikir çatışması daha güçlü doğrulama döngüsü oluşturur, çözüm önerilerinin çeşitlenmesi yaratıcılığı geliştirir, eleştiri ise çıktı kalitesini oldukça iyileştirir. Bu, insan takımlarında olduğu gibi entelektüel sürtünmeden doğan kalite artışı sağlayacaktır. Buradan geleceğe dair ‘çatışma çözüm ajanları’ için bir vizyonda çizebiliriz 🙂
Soru 6 | 5 yıl içinde AutoGen gibi sistemlerin ulaşabileceği nokta ne olabilir?
Agent-as-a-Service modelinin doğması muhtemeldir diyebiliriz. API çağrısı yerine StratejiAgent.run() gibi çağrılar ile tüm fikir yürütme hedef ajana devredilebilecek ve AutoGen tarzı sistemler ile şirket içi danışmanlık, R&D simülasyonu, pazarlama stratejisi, yazılım geliştirme vs. gibi alanlarda insanlar arası etkileşimlerin yerini kısmen alacaktır.

Ayrıca (yine muhtemelen) özerk ve kendi görev ağını kuran “self-growing agent networks” kavramı da yükselişe geçecektir.

Soru 7 | Birden fazla uzmanlığa sahip ajan, kolektif olarak hata yapmaktan nasıl korunabilir?
AutoGen’de bu risk meta-agent, fact-chacker agent, human-in-the-loop gibi rollerle dengelenmektedir. Bu yapı sayesinde ajanlar hata yaptığında bir başkası onu düzeltmektedir. Bu kolektif yapı, tekil LLM’lerin yaptığı hatalardan daha güvenilir sonuçlar üretir.
Soru 8 | Bir soruya birden fazla ajan ile cevap vermek çoğu zaman yersiz bir maliyet doğurmaz mı?
Evet, birden fazla ajan kullanmak potasiyel olarak faydalı olabilse de, her zaman anlamlı bir yatırım olmayabilir. Bu konuyu birkaç açıdan değerlendirmek gerekmektedir;

▒ Birden fazla ajan demek, genellikle birden fazla LLM çağrısı demektir. Özellikle her ajan birkaç kez düşünüyorsa veya birbirleriyle etkileşime giriyorsa, bu durum ciddi bir token ve latency maliyeti doğurabilir. Dolayısıyla, basit bir soruya 3-4 ajanla yanıt aramak, gereksiz kaynak tüketimi anlamına gelecektir.
▒Haliyle basit bilgi alınan, doğrusal görevlerin işlendiği (örneğin; ‘bir PDF özetinin çıkarılması’ ya da ‘bir SQL sorgusunun yazılması’ vs. gibi) ve tartışma gerektirmeyen tek bir uzmanlık alanının söz konusu olduğu görevlerde birden fazla ajan yersizdir.
▒Birden fazla ajanın söz konusu olacağı çalışmalarda ajan sayısı minimal tutulmalı, her ajan sürece kesinlikle bir katma değer katıyor olmalı ve rolü de net olmalıdır.

AutoGen’de Built-in Message Nedir?

AutoGen’deki ajanlar, görevleri yerine getirirken birbirleriyle structured message objects aracılığıyla iletişim kurmaktadırlar. Bu mesajlar, hem iletişimsel kontrol sağlarlar hem de ajanın hangi adımı uygulayacağını belirlerler.

Başlıca built-in message türleri aşağıdaki gibidir;

AutoGen’in Muadilleri Var mı?

Elbette piyasada AutoGen’in muadili olabilecek, farklı yaklaşımlar ve özelliklerle eşlik edebilecek başka araçlarda mevcuttur. Misal olarak; DeepSeek.ai tarafından geliştirilen ve tamamen yazılım üretimi için optimize edilmiş olan MetaGPT‘yi örnek verebiliriz. Ya da görselleştirilmiş senaryo yahut simülasyon oluşturmanın gerektiği durumlarda tercih edilebilecek olan AgentVerse‘de örnek olarak sunulabilir. Ancak şu bilinmelidir ki; AutoGen, LLM tabanlı ajan sistemleri arasında özgün bir yaklaşım getirmekte ve alanında yenilikçi bir mimari sunmaktadır.

AutoGen’in Sağladığı Avantajlar ve Dezavantajlar Nelerdir?

Bir geliştirici açısından, normalde parçalara bölünüp elle orkestre etmek zorunda kalınacağı bir süreci, ajanların konuşmasıyla otomatik hale getirmek ciddi bir kolaylık olsa gerek. İşte AutoGen, bu tarz çok adımlı ve kompleks görevleri insan müdahalesi olmaksızın çözmeye olanak tanımaktadır. Tabi sağladığı bu kolaylığı teknik açıdan değerlendirdiğimizde, AutoGen’in sunduğu modüler ajan mimarisi sayesinde yoğunluklarına göre ajanlar ölçeklendirilebilmekte ve ihtiyaç dahilinde sisteme yeni bir ajan (yani yetenek) eklenmesi oldukça kolaylaştırılmaktadır. Bunların dışında .NET ekosisteminde AutoGen ile geliştirici deneyimi oldukça rahatlatılmakta ve hazır kütüphaneler ile yüksek seviyeli API’ler sayesinde az kod yazarak çok iş yapılabilmektedir.

AutoGen, bir görevi aldıktan sonra alt adımlara bölme, uygun ajanlara dağıtma ve çıktıları birleştirme işlerini büyük ölçüde kendisi gerçekleştirmektedir. Bu durum, özellikle karmaşık ve çok aşamalı görevlerin çözümünde ciddi bir avantaj sağlamaktadır. Ha, her ne kadar LLM’lerin kararına bırakılan dinamik iş akışları olsa da istenildiği taktirde geliştirici tarafından kontrol edilebilen deterministik akışları da desteklemektedir. Yani istenirse ajanların etkileşimi sıkı bir senaryo doğrultusunda kısıtlanarak yapılacak işin gereksinimine uygun daha özgün bir davranış ortamı sağlanabilir. Haliyle bu ikili opsiyon sayesinde hem güvenilirlik hem de yaratıcılık gerektiren durumlarda aksiyon alınabilir.

AutoGen, çeşitli LLM servislerini ve ek araçları destekleyecek şekilde tasarlanmıştır. Birçok AI modellerini kontrol edebilmekte ve yukarıdaki satırlarda ele aldığımız gibi function call, code executing vs. gibi kabiliyetlerle sürece eşlik edebilmektedir.

Ancak bu güçlü yönlerinin yanında AutoGen’in bazı sınırlamaları ve zorlukları da mevcuttur. Ne gibi? diye sorarsanız biliyorsunuz ki, özellikle birden fazla ajanın olduğu sistemlerde durum(context) yönetimi önem arz etmektedir ve her ajanın sohbet geçmişini, diğer ajanların paylaştığı bilgileri ve genel görev ilerleyişini tutarlı şekilde idame etmek gerekir. Dolayısıyla geliştiricilerin, ajanların paylaştığı ortak bellek veya her bir ajanın kendi belleği konusunda, sorumlulukları üstlenerek özgün ve anlık stratejiler geliştirmesi gerekebilmektedir. Ee hocam, AutoGen her şeyi yapıyor bunu mu yapmıyor! dediğinizi duyar gibiyim… Elbette ki AutoGen temel seviyede mesaj geçmişini takip edebilmekte lakin çok sayıda ajanın ve uzun diyalogların söz konusu olduğu durumlarda ister istemez yetersiz kalabilmektedir.

Bir başka dezavantajlı durum, multi-agent sistemlerin doğal olarak daha fazla hesaplama gereğinden ve bellek tüketiminden kaynaklı tek ajanlı sistemlere nazaran maliyetli olması durumudur. Bundan kaynaklı AutoGen’de optimizasyon önem kazanmakta, özellikle sisteme gereksiz ajan eklenmemesine, yanıtları mümkün olduğunca kısa tutmaya ve paralel işlemleri iyi yönetmeye dikkat edilmelidir. Ayrıca bir ajanın yanıt vermemesi ya da LLM çağrısının başarısız olması gibi hata durumlarını yönetmek multi-agent yapılarda daha karmaşık olabilmektedir. Evet, AutoGen tek tek ajan bazında hata yakalama imkanı sunsa da özellikle ajanlar arası koordineli bir hata düzeltme stratejisini geliştirici tasarlamak mecburiyetindedir. Ee bu da ekstra efor demektir.

Bunların dışında AutoGen ajanları, özellikle araç kullanma ve kod çalıştırma yeteneklerine sahip olduklarında, kötü niyetli çıktılara karşı güvenlik riski söz konusu olabilmektedir. Misal olarak; bir ajan, istemeden zararlı bir komut üretip kod yürüten ajana bunu iletebilir ve böylece her şeyi mahvedecek bir süreci ister istemez kendince tetikleyebilir. İşte böyle bir duruma karşın sınırlandırmalar ve yetkilendirmeler önem kazanmakta ve hatta kişisel veriler, şirket içi bilgiler vs. gibi hassas verilere erişebilen ajanlar sürekli ve yoğun bir şekilde sıkı denetim altında olmalıdırlar.

Nihai olarak;

AutoGen’in, çoklu yapay zekâ ajanlarının bir arada çalışarak karmaşık görevlerin çözülmesi için geliştirilmiş modüler, esnek ve geleceğe dönük bir framework olduğunu gözlemlemiş oluyoruz. İçeriğimiz süresince AutoGen’in, ajanlar arasında yapılandırılmış mesajlar ile iletişim kurulmasını sağlayan, her ajanın belirli bir rol üstlenebilmesine ve gerektiği taktirde dış API’lerle kolayca etkileşime girilebilmesine imkan tanıyan ve klasik LLM çağrılarından ziyade birden çok uzman görüşe sahip ajanı bir araya getirerek, bunların geri bildirim döngüleriyle çıktılarını iyileştirebilen, insan ile makineyi aynı etkileşim çemberine dahil edebilen ve görsel, metinsel, fonksiyonel veri gibi çoklu mesaj türlerini destekleyebilen bir yapay zekâ organizasyonu olduğunu teorik olarak deneyimlemiş ve temellendirmiş bulunuyoruz. Ee hoca! hani pratik dokunuş! diyorsanız eğer merak etmeyin. İçeriği haddinden fazla şişirmemek ve özellikle sizlerin konsantrasyonunu toparlayabilmek için bir sonraki makalenin odağını AutoGen’in pratik kısımlarına yoğunlaştıracak ve AutoGen for .NET ile gerekli kritikleri gerçekleştiriyor olacağız. Haliyle bu süre zarfında sizler bu içeriği okuyup sindirirken, bende diğer içeriği klavyeye alıyor olacağım…

İlgilenenlerin faydalanması dileğiyle…
Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…

Mobil sürümden çık