﻿
{"id":27846,"date":"2025-05-12T05:16:42","date_gmt":"2025-05-12T05:16:42","guid":{"rendered":"https:\/\/www.gencayyildiz.com\/blog\/?p=27846"},"modified":"2025-05-12T05:16:42","modified_gmt":"2025-05-12T05:16:42","slug":"autogen-nedir-derinlemesine-teorik-inceleyelim","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/autogen-nedir-derinlemesine-teorik-inceleyelim\/","title":{"rendered":"AutoGen Nedir? Derinlemesine Teorik \u0130nceleyelim&#8230;"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Bu i\u00e7eri\u011fimizde Microsoft taraf\u0131ndan yapay zek\u00e2 tabanl\u0131 kompleks uygulamalar\u0131n geli\u015ftirilmesini kolayla\u015ft\u0131rmak amac\u0131yla sunulmu\u015f bir framework olan <em>AutoGen<\/em>&#8216;i a&#8217;dan z&#8217;ye inceleyecek ve t\u00fcm yeteneklerini nedensellik \u00e7er\u00e7evesinde kavramaya \u00e7al\u0131\u015f\u0131yor olaca\u011f\u0131z. Evet, heyecanl\u0131 ve uzun soluklu bir inceleme olaca\u011f\u0131 i\u00e7in hi\u00e7 vakit kaybetmeksizin buyurun ba\u015flayal\u0131m&#8230;<\/p>\n<h4>AutoGen Nedir? Ne Amaca Hizmet Etmektedir?<\/h4>\n<p>AutoGen; Microsoft taraf\u0131ndan yapay zek\u00e2 tabanl\u0131 uygulamalar\u0131n geli\u015ftirilmesini kolayla\u015ft\u0131rmak amac\u0131yla open source olarak sunulan bir framework&#8217;d\u00fcr. Bu framework temelde, birden fazla yapay zek\u00e2 ajan\u0131n\u0131n do\u011fal dil \u00fczerinden etkile\u015ferek karma\u015f\u0131k g\u00f6revleri birlikte \u00e7\u00f6zebildi\u011fi bir ortam sunmakta ve b\u00f6ylece \u00e7oklu yapay zek\u00e2 ajanlar\u0131n\u0131n <em>(multi-agent LLM systems)<\/em> bir arada \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131n\u0131 sa\u011flayarak daha karma\u015f\u0131k ve dinamik uygulamalar\u0131n olu\u015fturulmas\u0131na imkan tan\u0131maktad\u0131r. <\/p>\n<p><strong>AutoGen Nedir?<\/strong><br \/>\nAutoGen, \u00f6zellikle LLM&#8217;lerin birlikte i\u015fbirli\u011fi yapabildi\u011fi sistemlerin in\u015fas\u0131na odaklanarak, tek bir modelin yapt\u0131\u011f\u0131 i\u015fi birden fazla agent\/ajan aras\u0131nda payla\u015ft\u0131rabilmektedir. Farkl\u0131 uzmanl\u0131k alanlar\u0131na sahip ajanlar tan\u0131mlayabilmekte, bunlar aras\u0131nda g\u00f6rev payla\u015f\u0131m\u0131 ve diyalog ger\u00e7ekle\u015ftirilmesini sa\u011flayabilmekte ve geri bildirim d\u00f6ng\u00fcleri olu\u015fturabilmektedir. B\u00f6ylece modellerin kendi ba\u015flar\u0131na \u00e7\u00f6zmekte zorland\u0131\u011f\u0131 karma\u015f\u0131k g\u00f6revler, bir orkestrasyon mekanizmas\u0131 sayesinde daha ba\u015far\u0131l\u0131 bir \u015fekilde \u00e7\u00f6z\u00fcme kavu\u015fturulabilmektedir.<\/p>\n<blockquote><p><em>Nitekim ara\u015ft\u0131rmalar, bir LLM&#8217;in cevab\u0131ndaki hatalar\u0131 ba\u015fka bir LLM&#8217;in ya da insan\u0131n i\u015faret etmesi durumunda, modelin performans\u0131n\u0131n \u00f6nemli \u00f6l\u00e7\u00fcde artt\u0131\u011f\u0131n\u0131 g\u00f6stermektedir. AutoGen i\u015fte bu etkile\u015fimli geri bildirim d\u00f6ng\u00fcs\u00fcn\u00fc otonom \u015fekilde ger\u00e7ekle\u015ftirmeyi hedeflemektedir.<\/em><\/p><\/blockquote>\n<p><strong>AutoGen&#8217;in Amac\u0131 Nedir?<\/strong><br \/>\nAutoGen, geleneksel tek ajanl\u0131 &#8216;soru-cevap&#8217; modellerini a\u015farak, birden fazla yapay zek\u00e2 bile\u015feninin senkronize \u015fekilde \u00e7al\u0131\u015ft\u0131\u011f\u0131 <a href=\"https:\/\/www.gencayyildiz.com\/blog\/agentic-ai-nedir\/\" target=\"_blank\">agentic<\/a> i\u015f ak\u0131\u015flar\u0131n\u0131 hedeflemektedir. Haliyle bu ama\u00e7 do\u011frultusunda AutoGen&#8217;in gayesini a\u015fa\u011f\u0131daki d\u00f6rt maddeyle \u00f6zetleyebiliriz;<\/p>\n<ol style=\"font-size: 12px;\">\n<li><u><em>\u00c7oklu Ajan Senaryolar\u0131n\u0131 Kolayla\u015ft\u0131rmak<\/em><\/u><br \/>\nKullan\u0131c\u0131lar\u0131n, birden fazla yapay zek\u00e2 ajan\u0131n\u0131 bir sistem i\u00e7inde kolayca tan\u0131mlay\u0131p istedi\u011fi senaryolar\u0131 olu\u015fturmas\u0131n\u0131 sa\u011flayabilir.<\/li>\n<li><u><em>Otomasyon ve Hata Giderme<\/em><\/u><br \/>\nAjanlar birbirlerinin \u00e7\u0131kt\u0131lar\u0131 \u00fczerine yorum yaparak hatalar\u0131 d\u00fczeltebilir ve daha y\u00fcksek do\u011fruluk sa\u011flayabilir.<\/li>\n<li><u><em>\u0130nsan &#8211; Ajan \u0130\u015fbirli\u011fi Sa\u011flama<\/em><\/u><br \/>\n\u0130nsanlar ile yapay zek\u00e2 ajanlar\u0131n\u0131n birlikte \u00e7al\u0131\u015fmas\u0131na imkan tan\u0131yabilir. Yani insan, sistemin par\u00e7as\u0131 gibi rol alabilir.<\/li>\n<li><u><em>Geli\u015ftirici Dostu API Sunmak<\/em><\/u><br \/>\n\u00d6zelle\u015ftirilmi\u015f ajanlar yaratmay\u0131 kolayla\u015ft\u0131ran bir yap\u0131 sunabilir.<\/li>\n<\/ol>\n<h4>AutoGen Bile\u015fenleri Nelerdir?<\/h4>\n<p>AutoGen&#8217;in temel bile\u015fenleri aras\u0131nda g\u00f6rev odakl\u0131 yap\u0131land\u0131r\u0131labilen ajanlar, bu ajanlar\u0131n etkile\u015fimlerini y\u00f6neten konu\u015fma d\u00f6ng\u00fcs\u00fc, dil modeli entegrasyonu, gerekti\u011finde kod \u00e7al\u0131\u015ft\u0131rma yetene\u011fi, esnek yap\u0131land\u0131rma se\u00e7enekleri ve i\u015fbirli\u011fine dayal\u0131 stratejiler yer almaktad\u0131r. \u015eimdi gelin bu bile\u015fenleri tek tek hususi olarak irdelemeye odaklanal\u0131m&#8230;<\/p>\n<ul style=\"font-size: 12px;\">\n<li><em><strong style=\"color: #6f9fcb;\">Agent (Temsilciler)<\/strong><\/em><br \/>\nAutoGen sistemi bir multi-agent communication framework olarak tasarland\u0131\u011f\u0131 i\u00e7in sitemin t\u00fcm i\u015fleyi\u015fi asl\u0131nda ajanlar\u0131n birbirleriyle mesaj al\u0131\u015fveri\u015fi yapmas\u0131 \u00fczerine kuruludur. Bu y\u00fczden ajanlar AutoGen&#8217;in merkezinde yer alan ana bile\u015fenlerdir ve \u00f6zel olu\u015fturulabildikleri gibi farkl\u0131 g\u00f6revler i\u00e7in \u00f6nceden tan\u0131mlanm\u0131\u015f rolleri ve yetenekleri kapsayan <code>AssistantAgent<\/code>, <code>UserProxyAgent<\/code>, <code>ConversableAgent<\/code>, <code>GroupChatManager<\/code> vs. gibi \u00f6n tan\u0131ml\u0131 olarak varl\u0131k g\u00f6steren ajanlarda mevcuttur. Bu belirttiklerimiz yayg\u0131n olarak kullan\u0131ld\u0131\u011f\u0131 i\u00e7in bunlar\u0131n g\u00f6revlerini izah etmekte fayda g\u00f6rmekteyim;<\/p>\n<ul>\n<li><em><u>AssistantAgent<\/u><\/em><br \/>\nLLM destekli bir yard\u0131mc\u0131d\u0131r ve kod yazma, analiz yapma, g\u00f6rev \u00e7\u00f6zme gibi i\u015fleri \u00fcstlenmektedir. \u00c7o\u011funlukla bilgi \u00fcretir ve kullan\u0131c\u0131ya yard\u0131mc\u0131 olur.<\/li>\n<li><em><u>UserProxyAgent<\/u><\/em><br \/>\n\u0130nsan kullan\u0131c\u0131s\u0131n\u0131 temsil etmektedir. Yani bir ba\u015fka deyi\u015fle insan kullan\u0131c\u0131 gibi davran\u0131\u015f sergilemektedir. Kullan\u0131c\u0131n\u0131n verdi\u011fi girdileri al\u0131r, di\u011fer ajanlarla etkile\u015fime ge\u00e7er. Ve bazen kullan\u0131c\u0131 onay\u0131 gerektiren durumlarda araya girerek s\u00fcrece m\u00fcdahale edilebilirlik kazand\u0131r\u0131r.<\/li>\n<li><em><u>ConversableAgent<\/u><\/em><br \/>\n<blockquote><p>T\u00fcm ajanlar <code>ConversableAgent<\/code> (sohbet edilebilir ajan) base class&#8217;\u0131ndan t\u00fcretilir. Bu base class<\/p><\/blockquote>\n<p>Konu\u015fabilmekte ve yeni mesaj al\u0131p verebilmektedir. \u00d6zellikle bu ajanlar kendi aralar\u0131nda konu\u015farak problem \u00e7\u00f6zebilmekte, bilgi al\u0131\u015fveri\u015fi yapabilmekte veya belirli g\u00f6revleri yerine getirebilmektedir.<\/li>\n<li><em><u>GroupChatManager<\/u><\/em><br \/>\nBirden \u00e7ok ajan aras\u0131nda diyalog ve koordinasyonu sa\u011flamakta ve y\u00f6netmektedir. \u00d6zellikle kompleks g\u00f6revlerde birden fazla ajan\u0131n kendi aralar\u0131nda uygun veriyle konu\u015fmas\u0131n\u0131 sa\u011flamaktad\u0131r.<\/p>\n<p>AutoGen&#8217;in en g\u00fc\u00e7l\u00fc y\u00f6nlerinden biri, birden fazla ajan\u0131n tek bir oturumda grup sohbeti (group chat) halinde \u00e7al\u0131\u015fabilmesidir. GroupChat yap\u0131s\u0131, belirli ajanlar\u0131 bir araya toplayarak ortak bir ba\u011flamda mesajla\u015fmalar\u0131n\u0131 sa\u011flar. A\u015fa\u011f\u0131daki gibi <em>SequentialGroupChat<\/em> ve <em>GroupChat<\/em> olmak iki temel grup sohbeti modeli bulur;<\/p>\n<ul>\n<li><em><u>SequentialGroupChat<\/u> (S\u0131ral\u0131 Grup Sohbeti)<\/em><br \/>\nAjanlar\u0131n sabit bir s\u0131rayla yani s\u0131ras\u0131yla konu\u015ftuklar\u0131 deterministik i\u015f ak\u0131\u015flar\u0131 sa\u011flar.\n<\/li>\n<li><em><u>GroupChat<\/u> (Dinamik Grup Sohbeti)<\/em><br \/>\nHangi ajan\u0131n ne zaman konu\u015faca\u011f\u0131na dinamik olarak karar verilen daha esnek bir yakla\u015f\u0131m sa\u011flar.\n<\/li>\n<\/ul>\n<p>Ayr\u0131ca <em>GroupChatManager<\/em>, \u00e7oklu ajan etkile\u015fimini koordine eden bile\u015fen olmas\u0131ndan dolay\u0131 genellikle insan girdisi gerektirmeden arka planda \u00e7al\u0131\u015fmaktad\u0131r ve grup sohbeti sayesinde, tek bir g\u00f6revi alt g\u00f6revlere b\u00f6l\u00fcp farkl\u0131 uzman ajanlara payla\u015ft\u0131rarak sonu\u00e7lar\u0131 birle\u015ftirebilir.\n<\/li>\n<li><em><u>Di\u011fer Ajan Tipleri<\/u><\/em><br \/>\nAutoGen k\u00fct\u00fcphanesi, .NET ekosisteminde belirli platform ve kullan\u0131m durumlar\u0131 i\u00e7in de a\u015fa\u011f\u0131daki gibi haz\u0131r ajan s\u0131n\u0131flar\u0131 sunmaktad\u0131r.<\/p>\n<ul>\n<li><em><u>OpenAIChatAgent<\/u><\/em><br \/>\nOpenAI&#8217;\u0131n chat model API&#8217;lerini kullanmam\u0131z\u0131 sa\u011flayan bir ajan s\u0131n\u0131f\u0131d\u0131r.\n<\/li>\n<li><em><u>SemanticKernelAgent<\/u><\/em><br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/semantic-kernel-nedir-deepseek-r1-esliginde-net-acisindan-derinlemesine-degerlendirelim\/\" target=\"_blank\">Semantic Kernel<\/a> ile entegre \u00e7al\u0131\u015fabilen bir ajand\u0131r.\n<\/li>\n<li><em><u>LMStudioAgent<\/u><\/em><br \/>\nLocal LM Studio arac\u0131yla ba\u011flan\u0131p local modelleri kullanabilen ajand\u0131r.\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li><em><strong style=\"color: #6f9fcb;\">Conversation \/ Message System<\/strong><\/em><br \/>\nAjanlar aras\u0131nda ge\u00e7en mesajlar bir ChatHistory veya GroupChat nesnesinde tutulmakta ve bu sayede diyalog ge\u00e7mi\u015fi korunarak, hat\u0131rlama ve ba\u011flam y\u00f6netimi yap\u0131labilmektedir.<\/li>\n<li><em><strong style=\"color: #6f9fcb;\">Code Executor<\/strong><\/em><br \/>\nBaz\u0131 senaryolarda LLM&#8217;lerin \u00fcretti\u011fi kodlar\u0131 \u00e7al\u0131\u015ft\u0131rmak gerekebilmektedir. AutoGen, g\u00fcvenli bir ortamda bu kodlar\u0131n y\u00fcr\u00fct\u00fclmesini sa\u011flayan bir code execution backend i\u00e7ermektedir.<\/li>\n<li><em><strong style=\"color: #6f9fcb;\">LLM Interfaces<\/strong><\/em><br \/>\nAutoGen, OpenAI API ve Azure OpenAI LLM aray\u00fczlerini do\u011frudan desteklemektedir. Lakin HuggingFace, OpenRouter gibi platformlarla yahut Ollama gibi lokal LLM sunucular\u0131yla kolayca entegre edilebilmektedir.<\/li>\n<li><em><strong style=\"color: #6f9fcb;\">Function Calling ve Tooling<\/strong><\/em><br \/>\nAutoGen, ajanlar\u0131n d\u0131\u015f fonksiyonlar\u0131 \u00e7a\u011f\u0131rabilmesini sa\u011flamakta ve b\u00f6ylece veri \u00e7ekme, hesaplama yapma ve API \u00e7a\u011fr\u0131s\u0131 gibi g\u00f6revleri birer tool olarak ajanlara kazand\u0131rabilmektedir. Bu \u00f6zellik, Semantic Kernel&#8217;daki plugin deste\u011fine benzerlik g\u00f6stermektedir.\n<\/li>\n<li><em><strong style=\"color: #6f9fcb;\">Multi-Agent Workflow (Workflow Engine)<\/strong><\/em><br \/>\nMulti-Agent Workflow, birden fazla ajan\u0131n belirli rolleri \u00fcstlenerek i\u015f birli\u011fi yapt\u0131\u011f\u0131, s\u0131rayla ya da paralel bir \u015fekilde \u00e7al\u0131\u015ft\u0131\u011f\u0131 bir g\u00f6rev y\u00fcr\u00fctme mimarisidir. AutoGen&#8217;de bu \u00f6zellik, birden \u00e7ok yapay zek\u00e2 ajan\u0131n\u0131n, birlikte konu\u015farak bir problemi \u00e7\u00f6zece\u011fi anlam\u0131na gelmektedir.<\/p>\n<p>Her ajan, belirli bir rol, ama\u00e7 ve yetenek seti ile olu\u015fturulmakta, haliyle bu rollere dayal\u0131 \u00e7al\u0131\u015fma neticesinde i\u015f ak\u0131\u015f\u0131, bu rollerin do\u011fal bir diyalo\u011fu e\u015fli\u011finde ilerlemesiyle ger\u00e7ekle\u015fmektedir.<\/p>\n<p>Misal olarak a\u015fa\u011f\u0131daki gibi bir \u00f6rnek verilebilir;<\/p>\n<ul style=\"color:#c2b4af;\">\n<li><em>UserProxyAgent<\/em> : Giri\u015f noktas\u0131d\u0131r. Kullan\u0131c\u0131dan gelen talebi iletir.<\/li>\n<li><em>PlannerAgent<\/em> : G\u00f6revi alt ad\u0131mlara b\u00f6ler.<\/li>\n<li><em>ExecutorAgent<\/em> : Kod yazar veya \u00e7al\u0131\u015ft\u0131r\u0131r.<\/li>\n<li><em>ReviewerAgent<\/em> : \u00dcretilen i\u00e7eri\u011fi g\u00f6zden ge\u00e7irir.<\/li>\n<li><em>CriticAgent<\/em> : Ele\u015ftirel analiz yapar.<\/li>\n<li><em>GroupChatManager<\/em> : T\u00fcm s\u00fcreci koordine eder.<\/li>\n<\/ul>\n<p>Multi-Agent Workflow&#8217;da ajanlar aras\u0131 ileti\u015fim bir sohbet misali a\u015fa\u011f\u0131daki gibi i\u015fler;<\/p>\n<ul style=\"color:#c2b4af;\">\n<li><em>UserProxyAgent<\/em> : &#8216;Bana veri g\u00f6rselle\u015ftirme yapan bir Python kodu yaz&#8217;<\/li>\n<li><em>PlannerAgent<\/em> : &#8216;Bunun i\u00e7in 3 ad\u0131ma ihtiyac\u0131m\u0131z var: veri okuma, analiz, g\u00f6rselle\u015ftirme<\/li>\n<li><em>ExecutorAgent<\/em> : &#8216;Kod k\u0131sm\u0131n\u0131 ben yazay\u0131m&#8217;<\/li>\n<li><em>ReviewerAgent<\/em> : &#8216;Kodda eksik grafik tan\u0131m\u0131 var, d\u00fczeltelim&#8217;<\/li>\n<li><em>ExecutorAgent<\/em> : G\u00fcncellenmi\u015f kodu g\u00f6nderir<\/li>\n<li><em>UserProxyAgent<\/em> : Sonucu kullan\u0131c\u0131ya sunar<\/li>\n<\/ul>\n<p>Dikkat ederseniz, insanlar yerine ajanlar -insanm\u0131\u015f gibi- kendi aralar\u0131nda konu\u015fmaktad\u0131r. Tabi t\u00fcm bu konu\u015fmalar <code>GroupChat<\/code> veya <code>GroupChatManager<\/code> \u00fczerinden y\u00fcr\u00fct\u00fclmektedir.<\/p>\n<p>Multi-Agent Workflow \u00f6zelli\u011fi sayesinde yeni roller kolayca eklenebilece\u011fi i\u00e7in mod\u00fcler olan ve ba\u015ftan sona kendi ba\u015f\u0131na \u00e7al\u0131\u015fabilecek otonom sistemler yaratabilir ve ayr\u0131ca bu sistemleri farkl\u0131 domain&#8217;ler i\u00e7in uzman ajanlar yaratarak geni\u015fletebilir bir altyap\u0131da \u015fekillendirebilir ve b\u00f6ylece ger\u00e7ek d\u00fcnya g\u00f6revleri i\u00e7in \u00e7ok daha yak\u0131n modelleme ortaya koyabiliriz.\n<\/li>\n<li><em><strong style=\"color: #6f9fcb;\">Logging ve Debugging Ara\u00e7lar\u0131<\/strong><\/em><br \/>\nHer mesaj, \u00e7\u0131kt\u0131 ve i\u015flem izlenebilir \u015fekilde kaydedilir. Bu \u00f6zellik, \u00f6zellikle otonom sistemlerin denetlenmesi ve test edilmesi a\u00e7\u0131s\u0131ndan \u00e7ok de\u011ferlidir.\n<\/li>\n<\/ul>\n<h4>AutoGen Mimarisinin \u00c7al\u0131\u015fma Mekanizmas\u0131 Nas\u0131ld\u0131r?<\/h4>\n<p>AutoGen&#8217;in .NET s\u00fcr\u00fcm\u00fcnde, t\u00fcm ajanlar ortak bir aray\u00fcz\/interface olan <code>IAgent<\/code>&#8216;\u0131 uygulamaktad\u0131rlar ve ajanlar aras\u0131ndaki haberle\u015fme mesajla\u015fma mekanizmas\u0131na dayanmaktad\u0131r. Geli\u015ftirici istedi\u011fi taktirde ajanlar aras\u0131ndaki s\u00fcrece (\u00f6rne\u011fin, yan\u0131t gelmeden \u00f6nce ya da sonra) dahil olup m\u00fcdahale edebilmektedir. Tabi bunun i\u00e7in bir geni\u015fletici mekanizma laz\u0131md\u0131r. Haliyle bu mekanizma AutoGen&#8217;de middleware olarak nitelendirilmektedir. Evet, bir ajana middleware ile \u00f6zel davran\u0131\u015flar eklenebilmektedir.<\/p>\n<p>AutoGen mimarisinin \u00e7al\u0131\u015fma mekanizmas\u0131n\u0131 \u00f6zetlemek gerekirse; geli\u015ftirici, projesine uygun ajan tiplerini olu\u015fturur ve gerekiyorsa bunlara middleware&#8217;ler veya tool&#8217;lar ile \u00f6zel davran\u0131\u015flar ekleyerek donat\u0131r. Ard\u0131ndan ajan(lar) bir g\u00f6rev mesaj\u0131 al\u0131r almaz LLM \u00fczerinden yan\u0131t \u00fcretmeye ba\u015flar. Geleneksel tekli ajan durumunda cevap do\u011frudan kullan\u0131c\u0131ya d\u00f6ner, lakin \u00e7oklu ajan durumunda ise bir ajan\u0131n \u00fcretti\u011fi yan\u0131t, di\u011fer ajan\u0131n girdisi olacak \u015fekilde ajanlar aras\u0131 mesajla\u015fma birka\u00e7 tur devam edebilir. Bu etkile\u015fim, belirlenen tur say\u0131s\u0131na veya &#8220;g\u00f6rev tamamland\u0131&#8221; sinyaline ula\u015f\u0131ncaya dek s\u00fcrebilir.<\/p>\n<p>AutoGen, bu s\u00fcre\u00e7te her mesaj al\u0131\u015fveri\u015fini bir olay olarak ele al\u0131p, s\u00fcrecin asenkron ve \u00f6l\u00e7eklenebilir bi\u00e7imde \u00e7al\u0131\u015fabilmesini sa\u011flar. Misal olarak; bir grup sohbetinde ajanlar tek tek s\u0131rayla \u00e7al\u0131\u015fabilece\u011fi gibi uygun senaryolarda birden fazla ajan\u0131n paralel \u00e7al\u0131\u015fmas\u0131 da m\u00fcmk\u00fcn olabilir. Evet, <u>AutoGen&#8217;in tasar\u0131m\u0131 bu tarz kurumsal \u00f6l\u00e7ekli i\u015f y\u00fcklerini de kald\u0131rabilecek esneklik ve g\u00fc\u00e7tedir.<\/u><\/p>\n<h4>AutoGen&#8217;in Semantic Kernel&#8217;dan Fark\u0131 Nedir?<\/h4>\n<p>Bu g\u00fcne kadar <a href=\"https:\/\/www.gencayyildiz.com\/blog\/semantic-kernel-nedir-deepseek-r1-esliginde-net-acisindan-derinlemesine-degerlendirelim\/\" target=\"_blank\">Semantic Kernel<\/a> arac\u0131l\u0131\u011f\u0131yla .NET ekosisteminde yapay zek\u00e2 entegrasyonlar\u0131 \u00fczerinde \u00e7al\u0131\u015fmalar y\u00fcr\u00fctm\u00fc\u015ft\u00fck. Haliyle AutoGen ile SK aras\u0131ndaki fark\u0131 tam olarak masaya yat\u0131rmakta fayda g\u00f6rmekteyim. <em>AutoGen, neyi farkl\u0131 k\u0131lmakta<\/em> ve <em>SK&#8217;n\u0131n \u00e7\u00f6zemedi\u011fi hangi probleme \u00e7\u00f6z\u00fcm getirmektedir?<\/em> hadi de\u011ferlendirelim&#8230;<\/p>\n<p>\u00d6ncelikle \u015funu vurgulayal\u0131m ki; SK, AutoGen&#8217;e g\u00f6re daha programlama odakl\u0131 bir yakla\u015f\u0131md\u0131r ve geli\u015ftirici istedi\u011fi ak\u0131\u015f\u0131 kodla kurmaktad\u0131r. AutoGen ise daha ajan odakl\u0131d\u0131r ve ajanlar kendi aralar\u0131nda diyaloglarla planlar yapmaktad\u0131r. Buradan yola \u00e7\u0131karak, SK&#8217;n\u0131n LLM entegrasyonu i\u00e7in ara\u00e7 seti sundu\u011funu fakat nihai olarak yap\u0131lacak i\u015fleri geli\u015ftiriciden kodlamas\u0131n\u0131 bekledi\u011fini amma velakin AutoGen&#8217;in ise \u00fcst seviye bir \u00e7al\u0131\u015fma zaman\u0131 orkestrat\u00f6r\u00fc oldu\u011funu ve birden fazla LLM kullanarak ne yap\u0131laca\u011f\u0131n\u0131 dilsel etkile\u015fim yoluyla ajanlar ile saptay\u0131p, yapt\u0131\u011f\u0131n\u0131 s\u00f6yleyebiliriz. Bu y\u00fczden AutoGen, SK&#8217;ya k\u0131yasla daha az kodla daha karma\u015f\u0131k etkile\u015fimler kurabilmektedir. Nitekim AutoGen, gerekti\u011fi taktirde SK&#8217;y\u0131 bir ara\u00e7 olarak kullanabilecek bir yap\u0131ya da sahiptir <span style=\"font-size:12px;\">(bknz : <a href=\"https:\/\/www.nuget.org\/packages\/AutoGen.SemanticKernel\" target=\"_blank\">AutoGen.SemanticKernel<\/a>)<\/span> Ee buradan da anl\u0131yoruz ki; AutoGen&#8217;in, SK&#8217;n\u0131n \u00e7e\u015fitli AI servislerine ba\u011flanabilmesi, haf\u0131za y\u00f6netimi vs. gibi g\u00fc\u00e7l\u00fc oldu\u011fu y\u00f6nleri i\u00e7inde de\u011ferlendirebilmesi, esas\u0131nda rakipten ziyade gerekti\u011fi taktirde birbirlerini tamamlayan \u00e7\u00f6z\u00fcmler oldu\u011funa i\u015farettir. Bu kar\u015f\u0131la\u015ft\u0131rmada s\u00f6ylenebilecek tek husus \u015fudur ki; SK&#8217;n\u0131n \u00f6zellikle .NET geli\u015ftiricilerine \u00f6zel olarak a\u015fina gelen bir kod-yaz\u0131l\u0131m yakla\u015f\u0131m\u0131 sundu\u011fu, AutoGen&#8217;in ise Python d\u00fcnyas\u0131ndan gelen <a href=\"https:\/\/www.gencayyildiz.com\/blog\/agentic-ai-nedir\/\" target=\"_blank\">Agentic AI<\/a> yakla\u015f\u0131m\u0131n\u0131 .NET&#8217;e ta\u015f\u0131d\u0131\u011f\u0131d\u0131r. Bu nedenle AutoGen konsepti, geleneksel .NET uygulama geli\u015ftirmeye k\u0131yasla daha deneysel ve ara\u015ft\u0131rma odakl\u0131 g\u00f6r\u00fclebilmektedir.<\/p>\n<p>\u015eimdi yukar\u0131daki sorular\u0131n cevaplar\u0131n\u0131 vermek i\u00e7in iki yap\u0131y\u0131 hem teknolojik hem de ama\u00e7sal olarak mukayese edersek farklar\u0131n\u0131 net bir \u015fekilde vurgulam\u0131\u015f olaca\u011f\u0131m\u0131z\u0131 d\u00fc\u015f\u00fcn\u00fcyorum.<\/p>\n<p>Teknolojik olarak;<br \/>\nAutoGen, ajan tabanl\u0131d\u0131r; SK ise fonksiyon tabanl\u0131. Yani AutoGen LLM ajanlar\u0131 aras\u0131 etkile\u015fime odakl\u0131yken, SK ise LLM&#8217;ler ile geleneksel yaz\u0131l\u0131mlar aras\u0131ndaki entegrasyona odakl\u0131d\u0131r.<\/p>\n<p>Ama\u00e7sal olarak;<br \/>\nAutoGen, ajanlar aras\u0131 i\u015fbirli\u011fi ve g\u00f6rev otomasyonunu ama\u00e7 edinirken, SK ise LLM \u00e7a\u011fr\u0131lar\u0131n\u0131 klasik programlara entegre etmeyi ve bu programlarla ileti\u015fim kurulabilir hale getirmeyi ya da bir ba\u015fka deyi\u015fle geleneksel yaz\u0131l\u0131mlara yapay zek\u00e2 niteli\u011fi kazand\u0131rmay\u0131 ama\u00e7lamaktad\u0131r.<\/p>\n<p>Bu minvalde AutoGen \u00e7ok ajanl\u0131 sistemleri, ajanlar aras\u0131 tart\u0131\u015fmay\u0131, isti\u015fareyi ve i\u015fbirli\u011fini hedeflerken, SK ise uygulamaya AI modellerinin yeteneklerini kazand\u0131rmay\u0131 ve haf\u0131za y\u00f6netimini hedeflemektedir.<\/p>\n<p>\u015eimdi her iki teknolojiyi sunduklar\u0131 hizmetler \u00e7er\u00e7evesinde a\u015fa\u011f\u0131daki tabloda k\u0131yaslarsak e\u011fer;<\/p>\n<table style=\"font-size:12px;\">\n<thead>\n<tr>\n<th style=\"width:50%;\">AutoGen Ne Sunmaktad\u0131r?<\/th>\n<th>SK Ne Sunmaktad\u0131r?<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align:left;vertical-align: text-top;\">\n<ul>\n<li><em>\u00c7oklu Ajan Senaryolar\u0131<\/em><br \/>\nBirden fazla aralar\u0131nda ileti\u015fim kurabilen LLM ajan\u0131 tan\u0131mlanabilir.\n<\/li>\n<li><em>Dinamik \u0130leti\u015fim<\/em><br \/>\nAjanlar, bir &#8216;sohbet&#8217; ortam\u0131nda birbirleriyle mesajla\u015f\u0131r gibi bilgi payla\u015fabilir.\n<\/li>\n<li><em>\u0130nsan-Ajan \u0130\u015fbirli\u011fi<\/em><br \/>\n\u0130nsan kullan\u0131c\u0131s\u0131 sistemin i\u00e7inde do\u011frudan yer alabilir.\n<\/li>\n<li><em>Rollere Dayal\u0131 Yap\u0131<\/em><br \/>\nHer ajan\u0131n rol\u00fc farkl\u0131 olabilir.\n<\/li>\n<\/ul>\n<\/td>\n<td style=\"text-align:left;vertical-align: text-top;\">\n<ul>\n<li><em>LLM + Kod \u0130\u015fbirli\u011fi<\/em><br \/>\nLLM&#8217;leri C#, Python gibi geleneksel dillerle bir araya getirip fonksiyon gibi kullanabilir.\n<\/li>\n<li><em>&#8216;Plan + Execute&#8217; Yap\u0131s\u0131<\/em><br \/>\nLLM, bir hedef i\u00e7in bir plan olu\u015fturur ve ad\u0131m ad\u0131m uygulayabilir.\n<\/li>\n<li><em>Haf\u0131za, Ba\u011flam ve Prompt Y\u00f6netimi<\/em><br \/>\nUzun s\u00fcreli haf\u0131za, ba\u011flamsal veri saklama gibi \u00f6zellikleriyle kapsaml\u0131 bir ba\u011flam y\u00f6netimi sa\u011flayabilir.\n<\/li>\n<li><em>Plugin Yap\u0131s\u0131<\/em><br \/>\nAI modellerle olan etkile\u015fim s\u00fcrecine farkl\u0131 yetenek dahil edilerek ileti\u015fim s\u00fcreci ve \u00e7\u0131kt\u0131 manip\u00fcle edilebilir.\n<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h5 style=\"text-align:center;\">Ne Zaman Hangisi?<\/h5>\n<table style=\"width:100%;border-collapse:collapse;font-size:12px;\">\n<thead>\n<tr>\n<th style=\"font-style:italic;font-size:18px;color:#a67c00;border-bottom:1px solid #d9b36f;width:79%;\">Senaryo \u00d6rne\u011fi<\/th>\n<th style=\"font-style:italic;font-size:18px;color:#a67c00;border-bottom:1px solid #d9b36f;\">Tavsiye Edilen<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"font-style:italic;font-size:12px;color:#8b6c00;text-align:right;\">Birden fazla yapay zek\u00e2 ajan\u0131 aras\u0131nda fikir al\u0131\u015fveri\u015fi gerektiren g\u00f6revler.<\/td>\n<td style=\"font-weight:bold;color:#d29000;text-align:right;\">AutoGen<\/td>\n<\/tr>\n<tr>\n<td style=\"font-style:italic;font-size:12px;color:#8b6c00;text-align:right;background-color:#fff3d8;\">LLM\u2019in bir API\u2019yi \u00e7a\u011f\u0131rmas\u0131, veri \u00e7ekmesi, i\u015f ak\u0131\u015f\u0131nda bir ad\u0131m olarak g\u00f6rev almas\u0131<\/td>\n<td style=\"font-weight:bold;color:#d29000;text-align:right;background-color:#fff3d8;\">Semantic Kernel<\/td>\n<\/tr>\n<tr>\n<td style=\"font-style:italic;font-size:12px;color:#8b6c00;text-align:right;\">Planlama, komut zinciri \u00e7al\u0131\u015ft\u0131rma<\/td>\n<td style=\"font-weight:bold;color:#d29000;text-align:right;\">Semantic Kernel<\/td>\n<\/tr>\n<tr>\n<td style=\"font-style:italic;font-size:12px;color:#8b6c00;text-align:right;background-color:#fff3d8;\">Tak\u0131m gibi \u00e7al\u0131\u015fan \u201cele\u015ftirmen, kodlay\u0131c\u0131, test\u00e7i\u201d gibi ajanlardan olu\u015fan sistem<\/td>\n<td style=\"font-weight:bold;color:#d29000;text-align:right;background-color:#fff3d8;\">AutoGen<\/td>\n<\/tr>\n<tr>\n<td style=\"font-style:italic;font-size:12px;color:#8b6c00;text-align:right;\">AI destekli uygulamaya fonksiyonel haf\u0131za ve ba\u011flam kazand\u0131rmak<\/td>\n<td style=\"font-weight:bold;color:#d29000;text-align:right;\">Semantic Kernel<\/td>\n<\/tr>\n<tr>\n<td style=\"font-style:italic;font-size:12px;color:#8b6c00;text-align:right;background-color:#fff3d8;\">Bir g\u00f6rev, tek bir modelin yeterli olmad\u0131\u011f\u0131; fikir \u00fcretme, karar verme, de\u011ferlendirme ve y\u00fcr\u00fctme gibi \u00e7ok a\u015famal\u0131 s\u00fcre\u00e7ler i\u00e7eriyor.<\/td>\n<td style=\"font-weight:bold;color:#d29000;text-align:right;background-color:#fff3d8;\">AutoGen<\/td>\n<\/tr>\n<tr>\n<td style=\"font-style:italic;font-size:12px;color:#8b6c00;text-align:right;\">Modelin \u00e7\u0131kt\u0131s\u0131, ba\u015fka bir ajan veya kullan\u0131c\u0131 taraf\u0131ndan kontrol edilip, iyile\u015ftirme isteniyor.<\/td>\n<td style=\"font-weight:bold;color:#d29000;text-align:right;\">AutoGen<\/td>\n<\/tr>\n<tr>\n<td style=\"font-style:italic;font-size:12px;color:#8b6c00;text-align:right;background-color:#fff3d8;\">\u0130nsan sistemin i\u00e7inde aktif rol al\u0131yor. Baz\u0131 kararlar\u0131 bizzat veriyor ama di\u011ferlerini LLM\u2019lere b\u0131rak\u0131yor.<\/td>\n<td style=\"font-weight:bold;color:#d29000;text-align:right;background-color:#fff3d8;\">AutoGen<\/td>\n<\/tr>\n<tr>\n<td style=\"font-style:italic;font-size:12px;color:#8b6c00;text-align:right;\">Belirli roller \u00fcstlenen yapay zek\u00e2 ajanlar\u0131n\u0131n bir konuda tart\u0131\u015fma y\u00fcr\u00fctmesi, analiz yapmas\u0131.<\/td>\n<td style=\"font-weight:bold;color:#d29000;text-align:right;\">AutoGen<\/td>\n<\/tr>\n<tr>\n<td style=\"font-style:italic;font-size:12px;color:#8b6c00;text-align:right;background-color:#fff3d8;\">Birka\u00e7 ad\u0131mdan olu\u015fan ve insan m\u00fcdahalesi olmadan tamamlanmas\u0131 istenen g\u00f6rev zincirleri<\/td>\n<td style=\"font-weight:bold;color:#d29000;text-align:right;background-color:#fff3d8;\">AutoGen<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4>AutoGen \u0130le Ne Tarz Agent&#8217;lar Olu\u015fturabiliriz?<\/h4>\n<p>AutoGen ile olu\u015fturulabilecek ajanlar neredeyse s\u0131n\u0131rs\u0131z \u00e7e\u015fitlili\u011fe sahiptir diyebiliriz. \u00c7\u00fcnk\u00fc, her ajan asl\u0131nda belirli bir rol\u00fc, uzmanl\u0131\u011f\u0131 ve ileti\u015fim bi\u00e7imini temsil etmektedir. AutoGen&#8217;in en b\u00fcy\u00fck g\u00fcc\u00fc de burada yatmakta, her ajan\u0131 bir tak\u0131m \u00fcyesi gibi \u00f6zelle\u015ftirebilmekte, g\u00f6revler atayabilmekte ve onlar\u0131 konu\u015fturabilmektedir.<\/p>\n<p>Haliyle tahmini bir bak\u0131\u015fla, AutoGen ile olu\u015fturulabilecek ajan t\u00fcrlerini kategorize etmeye \u00e7al\u0131\u015f\u0131rsak e\u011fer \u015f\u00f6yle ana ba\u015fl\u0131klardan olu\u015fan bir \u00f6zette bulunabiliriz;<\/p>\n<ul style=\"font-size:12px;\">\n<li><em>Tekli Sohbet Ajanlar\u0131<\/em><br \/>\nLLM destekli kullan\u0131c\u0131 taleplerini yan\u0131tlayan klasik ChatGPT benzeri asistan ajanlar\u0131 olu\u015fturulabilir.\n<\/li>\n<li><em>Uzmanl\u0131k Temelli Ajanlar<\/em><br \/>\nHer biri tekil bir g\u00f6reve odaklanm\u0131\u015f belirli bir konuda uzmanla\u015fm\u0131\u015f ajanlar olu\u015fturulabilir.\n<\/li>\n<li><em>\u0130leti\u015fim ve Ele\u015ftiri Ajanlar\u0131<\/em><br \/>\nKendi aralar\u0131nda ileti\u015fim kuran, birbirlerinin \u00e7\u0131kt\u0131lar\u0131 \u00fczerinde \u00e7al\u0131\u015fan, yorum yapan, geli\u015ftiren ve onaylayan ajanlar olu\u015fturulabilir.\n<\/li>\n<li><em>Koordinat\u00f6r ve Planlay\u0131c\u0131 Ajanlar<\/em><br \/>\nDi\u011fer ajanlar aras\u0131nda g\u00f6rev da\u011f\u0131l\u0131m\u0131 yapan, y\u00f6nlendiren ve karar veren koordinat\u00f6r ve planlay\u0131c\u0131 ajanlar olu\u015fturulabilir.\n<\/li>\n<li><em>Kullan\u0131c\u0131 Temsili Ajanlar<\/em><br \/>\n\u0130nsan kullan\u0131c\u0131s\u0131n\u0131 temsil eden, ger\u00e7ek kullan\u0131c\u0131dan bilgi alabilen ve insan gibi davranan ajanlar olu\u015fturulabilir.\n<\/li>\n<li><em>Veri ve Bilgi Ajanlar\u0131<\/em><br \/>\nBilgiye dayal\u0131, belgelere eri\u015febilen, analiz eden ve cevap \u00fcreten ajanlar olu\u015fturulabilir.\n<\/li>\n<\/ul>\n<h4>Function Call Nedir?<\/h4>\n<p>Function call, dil modelinin bir fonksiyonu \u00e7a\u011f\u0131rmak istedi\u011fini belirtmesini ve bu fonksiyonun d\u0131\u015f sistem taraf\u0131ndan \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131n\u0131 sa\u011flayan aray\u00fcz gibi bir mekanizma ya da \u00e7ok ajanl\u0131 sistemlerin bir par\u00e7as\u0131d\u0131r. AutoGen, OpenAI gibi LLM servislerinin sa\u011flad\u0131\u011f\u0131 function call yetene\u011finden faydalanarak ajanlar\u0131n ihtiya\u00e7 duyduklar\u0131 anda proje i\u00e7indeki belirli fonksiyonlar\u0131(tools) \u00e7a\u011f\u0131rmas\u0131na imkan tan\u0131maktad\u0131r. Bu mekanizma, <em>FunctionCallMiddleware<\/em> ad\u0131 averilen bir middleware ile ger\u00e7ekle\u015ftirilir.<\/p>\n<p>AI modeli, belirli bir kullan\u0131c\u0131 komutunu ald\u0131ktan sonra bu komuta uygun bir fonksiyon tan\u0131m\u0131 e\u015fle\u015firse gerekli parametrelerle birlikte bu fonksiyonu \u00e7a\u011f\u0131rmak istedi\u011fini belirtir ve d\u0131\u015f uygulama bu \u00e7a\u011fr\u0131y\u0131 ger\u00e7ekle\u015ftirir ve sonucu AI modele iletir. AI model ise bu sonucu ba\u011flama g\u00f6re yorumlayarak son kullan\u0131c\u0131ya anlaml\u0131 bir \u00e7\u0131kt\u0131 sunar.<\/p>\n<blockquote><p><em>Function call \u00f6zelli\u011finin temel amac\u0131, LLM&#8217;in d\u0131\u015f d\u00fcnya ile etkile\u015fimini sa\u011flamakt\u0131r.<\/em><\/p><\/blockquote>\n<p>Buna \u00f6rnek vermemiz gerekirse e\u011fer;<\/p>\n<div style=\"font-size:12px;\">\nKullan\u0131c\u0131 : &#8220;Yar\u0131n sabah 9&#8217;a bir toplant\u0131 ayarla.&#8221;<br \/>\nModel : <code>function_call : scheduleMeeting(time=\"09:00\", date=\"tomorrow\")<\/code><br \/>\nArkaplanda Google Calendar API \u00e7a\u011fr\u0131l\u0131r ve toplant\u0131 eklenir. Netice olarak model \u015fu yan\u0131t\u0131 verir :<br \/>\n&#8220;Toplant\u0131n\u0131z yar\u0131n sabah 9:00&#8217;a ba\u015far\u0131yla eklenmi\u015ftir.&#8221;\n<\/div>\n<h4>8 Kritik Soru &#038; 8 Kritik Cevap<\/h4>\n<details style=\"border:1px;border-style:dotted\">\n<summary><em>Soru 1<\/em> | Neden ajan tabanl\u0131 yakla\u015f\u0131mlar fonksiyon tabanl\u0131 yakla\u015f\u0131mlar\u0131n \u00f6tesine ge\u00e7iyor?<\/summary>\n<div style=\"font-size:12px;\">\n<div style=\"font-size:10px;text-align:right;\"><em>&#8220;Ajanlar, merkezi olmayan ama birlikte karar verebilen yapay zek\u00e2 tak\u0131mlar\u0131d\u0131r&#8230;&#8221;<\/em><\/div>\n<p>Fonksiyonel yap\u0131lar tekil g\u00f6revleri yerine getirmek i\u00e7in idealdir. Lakin ajan tabanl\u0131 sistemler, karar alabilen, fikir y\u00fcr\u00fctebilen, kendi aralar\u0131nda ileti\u015fim kurarak yeni \u00e7\u00f6z\u00fcmler do\u011furabilen yap\u0131lar olu\u015ftururlar. Bu da LLM&#8217;leri yaln\u0131zca bir &#8220;ara\u00e7&#8221; olmaktan \u00e7\u0131kar\u0131p, k\u00fcm\u00fclatif d\u00fc\u015f\u00fcnebilen zek\u00e2 varl\u0131klar\u0131 haline getirirler.\n<\/p><\/div>\n<\/details>\n<details style=\"border:1px;border-style:dotted\">\n<summary><em>Soru 2<\/em> | AutoGen ile zincirleme d\u00fc\u015f\u00fcnme (chain-of-thought) nas\u0131l daha ileri ta\u015f\u0131n\u0131yor?<\/summary>\n<div style=\"font-size:12px;\">\nTek modelle yap\u0131lan &#8220;chain-of-thought&#8221; sadece i\u00e7sel bir muhakeme zinciridir.  AutoGen&#8217;de bu zincir \u00e7oklu d\u0131\u015f sesler ve uzmanl\u0131klarla d\u0131\u015fsalla\u015f\u0131r. B\u00f6ylece her ad\u0131m ba\u015fka bir ajan\u0131n g\u00f6zetiminden ge\u00e7erek daha rafine, ele\u015ftirilmi\u015f ve kan\u0131tlanm\u0131\u015f hale gelir.\n<\/div>\n<\/details>\n<details style=\"border:1px;border-style:dotted\">\n<summary><em>Soru 3<\/em> | Bir g\u00f6revin AutoGen ile \u00e7\u00f6z\u00fclmesi, \u00e7\u00f6z\u00fcm kalitesini nas\u0131l etkiler?<\/summary>\n<div style=\"font-size:12px;\">\nTabi ki de \u00e7\u00f6z\u00fcm kalitesini art\u0131racakt\u0131r. \u015e\u00f6yle ki; farkl\u0131 ajanlar ayn\u0131 \u00e7\u0131kt\u0131ya farkl\u0131 perspektiflerle bakacak ve b\u00f6ylece olas\u0131 hatalar daha erken fark edilebilecek ve d\u00fczeltilebilecektir. Ayr\u0131ca istendi\u011fi taktirde insan m\u00fcdahalesi yap\u0131labilecek ve geri bildirim mekanizmas\u0131yla s\u00fcrecin her a\u015famas\u0131 kontrol edilebilecektir. Ee bu da \u00f6zellikle y\u00fcksek do\u011fruluk, etik hassasiyet ve \u00e7ok ad\u0131ml\u0131 planlama isteyen g\u00f6revlerde kaliteyi do\u011frudan artt\u0131racakt\u0131r.\n<\/div>\n<\/details>\n<details style=\"border:1px;border-style:dotted\">\n<summary><em>Soru 4<\/em> | AutoGen sayesinde ortaya koyulan yap\u0131y\u0131 Microservice mimarisi gibi d\u00fc\u015f\u00fcnebilir miyiz?<\/summary>\n<div style=\"font-size:12px;\">\nBiz .NET geli\u015ftiricileri i\u00e7in AutoGen ile ajanlar aras\u0131nda yap\u0131lan sistemde her bir ajan farkl\u0131 bir g\u00f6rev, uzmanl\u0131k ve eylem ile varl\u0131k g\u00f6sterdi\u011fi i\u00e7in kurgulanan mimari esas\u0131nda microservice mimarisi gibi d\u00fc\u015f\u00fcn\u00fclebilir. Bu mimari, bir orkestrasyon katman\u0131 olan <em>GroupChatManager<\/em> ile yer yer senkronize veya asenkron bi\u00e7imde birbirleriyle ileti\u015fim kurup i\u015flevsellik g\u00f6stermektedir. Bu da bir nebze <a href=\"https:\/\/www.gencayyildiz.com\/blog\/tag\/saga\/\" target=\"_blank\">Saga<\/a>&#8216;y\u0131 an\u0131msatm\u0131yo de\u011fildir \ud83d\ude42\n<\/div>\n<\/details>\n<details style=\"border:1px;border-style:dotted\">\n<summary><em>Soru 5<\/em> | Ajanlar aras\u0131 \u00e7at\u0131\u015fma veya g\u00f6r\u00fc\u015f ayr\u0131l\u0131\u011f\u0131 olmas\u0131 avantaj m\u0131, dezavantaj m\u0131?<\/summary>\n<div style=\"font-size:12px;\">\nAvantajd\u0131r. \u00c7\u00fcnk\u00fc fikir \u00e7at\u0131\u015fmas\u0131 daha g\u00fc\u00e7l\u00fc do\u011frulama d\u00f6ng\u00fcs\u00fc olu\u015fturur, \u00e7\u00f6z\u00fcm \u00f6nerilerinin \u00e7e\u015fitlenmesi yarat\u0131c\u0131l\u0131\u011f\u0131 geli\u015ftirir, ele\u015ftiri ise \u00e7\u0131kt\u0131 kalitesini olduk\u00e7a iyile\u015ftirir. Bu, insan tak\u0131mlar\u0131nda oldu\u011fu gibi entelekt\u00fcel s\u00fcrt\u00fcnmeden do\u011fan kalite art\u0131\u015f\u0131 sa\u011flayacakt\u0131r. Buradan gelece\u011fe dair &#8216;\u00e7at\u0131\u015fma \u00e7\u00f6z\u00fcm ajanlar\u0131&#8217; i\u00e7in bir vizyonda \u00e7izebiliriz \ud83d\ude42\n<\/div>\n<\/details>\n<details style=\"border:1px;border-style:dotted\">\n<summary><em>Soru 6<\/em> | 5 y\u0131l i\u00e7inde AutoGen gibi sistemlerin ula\u015fabilece\u011fi nokta ne olabilir?<\/summary>\n<div style=\"font-size:12px;\">\n<em>Agent-as-a-Service<\/em> modelinin do\u011fmas\u0131 muhtemeldir diyebiliriz. API \u00e7a\u011fr\u0131s\u0131 yerine <code>StratejiAgent.run()<\/code> gibi \u00e7a\u011fr\u0131lar ile t\u00fcm fikir y\u00fcr\u00fctme hedef ajana devredilebilecek ve AutoGen tarz\u0131 sistemler ile \u015firket i\u00e7i dan\u0131\u015fmanl\u0131k, R&#038;D sim\u00fclasyonu, pazarlama stratejisi, yaz\u0131l\u0131m geli\u015ftirme vs. gibi alanlarda insanlar aras\u0131 etkile\u015fimlerin yerini k\u0131smen alacakt\u0131r.<\/p>\n<p>Ayr\u0131ca (yine muhtemelen) \u00f6zerk ve kendi g\u00f6rev a\u011f\u0131n\u0131 kuran &#8220;self-growing agent networks&#8221; kavram\u0131 da y\u00fckseli\u015fe ge\u00e7ecektir.\n<\/p><\/div>\n<\/details>\n<details style=\"border:1px;border-style:dotted\">\n<summary><em>Soru 7<\/em> | Birden fazla uzmanl\u0131\u011fa sahip ajan, kolektif olarak hata yapmaktan nas\u0131l korunabilir?<\/summary>\n<div style=\"font-size:12px;\">\nAutoGen&#8217;de bu risk <em>meta-agent<\/em>, <em>fact-chacker agent<\/em>, <em>human-in-the-loop<\/em> gibi rollerle dengelenmektedir. Bu yap\u0131 sayesinde ajanlar hata yapt\u0131\u011f\u0131nda bir ba\u015fkas\u0131 onu d\u00fczeltmektedir. Bu kolektif yap\u0131, tekil LLM&#8217;lerin yapt\u0131\u011f\u0131 hatalardan daha g\u00fcvenilir sonu\u00e7lar \u00fcretir.\n<\/div>\n<\/details>\n<details style=\"border:1px;border-style:dotted\">\n<summary><em>Soru 8<\/em> | Bir soruya birden fazla ajan ile cevap vermek \u00e7o\u011fu zaman yersiz bir maliyet do\u011furmaz m\u0131?<\/summary>\n<div style=\"font-size:12px;\">\nEvet, birden fazla ajan kullanmak potasiyel olarak faydal\u0131 olabilse de, her zaman anlaml\u0131 bir yat\u0131r\u0131m olmayabilir. Bu konuyu birka\u00e7 a\u00e7\u0131dan de\u011ferlendirmek gerekmektedir;<\/p>\n<p>\u2592 Birden fazla ajan demek, genellikle birden fazla LLM \u00e7a\u011fr\u0131s\u0131 demektir. \u00d6zellikle her ajan birka\u00e7 kez d\u00fc\u015f\u00fcn\u00fcyorsa veya birbirleriyle etkile\u015fime giriyorsa, bu durum ciddi bir token ve latency maliyeti do\u011furabilir. Dolay\u0131s\u0131yla, basit bir soruya 3-4 ajanla yan\u0131t aramak, gereksiz kaynak t\u00fcketimi anlam\u0131na gelecektir.<br \/>\n\u2592Haliyle basit bilgi al\u0131nan, do\u011frusal g\u00f6revlerin i\u015flendi\u011fi (\u00f6rne\u011fin; &#8216;bir PDF \u00f6zetinin \u00e7\u0131kar\u0131lmas\u0131&#8217; ya da &#8216;bir SQL sorgusunun yaz\u0131lmas\u0131&#8217; vs. gibi) ve tart\u0131\u015fma gerektirmeyen tek bir uzmanl\u0131k alan\u0131n\u0131n s\u00f6z konusu oldu\u011fu g\u00f6revlerde birden fazla ajan yersizdir.<br \/>\n\u2592Birden fazla ajan\u0131n s\u00f6z konusu olaca\u011f\u0131 \u00e7al\u0131\u015fmalarda ajan say\u0131s\u0131 minimal tutulmal\u0131, her ajan s\u00fcrece kesinlikle bir katma de\u011fer kat\u0131yor olmal\u0131 ve rol\u00fc de net olmal\u0131d\u0131r.\n<\/p><\/div>\n<\/details>\n<h4>AutoGen&#8217;de Built-in Message Nedir?<\/h4>\n<p>AutoGen&#8217;deki ajanlar, g\u00f6revleri yerine getirirken birbirleriyle <em>structured message objects<\/em> arac\u0131l\u0131\u011f\u0131yla ileti\u015fim kurmaktad\u0131rlar. Bu mesajlar, hem ileti\u015fimsel kontrol sa\u011flarlar hem de ajan\u0131n hangi ad\u0131m\u0131 uygulayaca\u011f\u0131n\u0131 belirlerler.<\/p>\n<p>Ba\u015fl\u0131ca built-in message t\u00fcrleri a\u015fa\u011f\u0131daki gibidir;<\/p>\n<ul style=\"font-size:12px;\">\n<li><em><strong>TextMessage<\/strong><\/em><br \/>\nAutoGen&#8217;deki en yayg\u0131n ve temel mesaj t\u00fcr\u00fcd\u00fcr. Ajan\u0131n konu\u015ftu\u011fu, \u00f6neri sundu\u011fu, fikir beyan etti\u011fi mesajlard\u0131r. Herhangi bir g\u00f6revde bir ajan fikir sundu\u011funda, \u00e7\u00f6z\u00fcm \u00f6nerdi\u011finde, a\u00e7\u0131klama yapt\u0131\u011f\u0131nda veya sadece sohbet etti\u011finde bu mesaj tipi kullan\u0131l\u0131r.<\/p>\n<p><i style=\"color:gray;font-size:11px;\">Ne zaman kullan\u0131l\u0131r? : Kod \u00fcretiminde, \u00f6neri sunmada, normal diyaloglarda<\/i>\n<\/li>\n<li><em><strong>ImageMessage<\/strong><\/em><br \/>\nAjanlar aras\u0131 g\u00f6rsel i\u00e7erik ta\u015f\u0131yan mesaj t\u00fcr\u00fcd\u00fcr. \u00d6zellikle multi-modal LLM&#8217;lerle kullan\u0131lmak \u00fczere tasarlanm\u0131\u015ft\u0131r.<\/p>\n<p><i style=\"color:gray;font-size:11px;\">Ne zaman kullan\u0131l\u0131r? : Aray\u00fcz tasar\u0131mlar\u0131nda, g\u00f6rsel analizlerde, g\u00f6r\u00fcnt\u00fcye dayal\u0131 g\u00f6revlerde<\/i>\n<\/li>\n<li><em><strong>MultiModalMessage<\/strong><\/em><br \/>\nBirden fazla medya t\u00fcr\u00fcn\u00fc (\u00f6rne\u011fin metin + g\u00f6rsel) ayn\u0131 anda ta\u015f\u0131yan mesaj t\u00fcr\u00fcd\u00fcr. LLM&#8217;lere ba\u011flamsal ve zenginle\u015ftirilmi\u015f i\u00e7erik sa\u011flamak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<p><i style=\"color:gray;font-size:11px;\">Ne zaman kullan\u0131l\u0131r? : G\u00f6rsel destekli a\u00e7\u0131klamalar, \u00f6zet + g\u00f6rsel g\u00f6sterimi, e\u011fitim i\u00e7erikleri, interaktif diyaloglar<\/i>\n<\/li>\n<li><em><strong>ToolCallMessage<\/strong><\/em><br \/>\nLLM&#8217;in bir tool\/function \u00e7a\u011fr\u0131s\u0131 yapmak istedi\u011fi mesajlard\u0131r. Bu, function calling \u00f6zelli\u011finin AutoGen&#8217;e entegre \u015feklidir ve model bir i\u015f yapmak istedi\u011fi ama bunun d\u0131\u015f bir tool taraf\u0131ndan yap\u0131lmas\u0131 gerekti\u011fi durumalarda kullan\u0131lmaktad\u0131r.<\/p>\n<p><i style=\"color:gray;font-size:11px;\">Ne zaman kullan\u0131l\u0131r? : API \u00e7a\u011fr\u0131s\u0131 durumlar\u0131nda, d\u0131\u015f fonksiyon tetiklenmesi gerekti\u011finde<\/i>\n<\/li>\n<li><em><strong>ToolCallResultMessage<\/strong><\/em><br \/>\n<em>ToolCallMessage<\/em>&#8216;a kar\u015f\u0131l\u0131k gelen cevab\u0131 temsil etmektedir. Yani tool\/function \u00e7al\u0131\u015ft\u0131r\u0131lm\u0131\u015f, sonucu elde edilmi\u015f ve bu t\u00fcrde geri bildirilmi\u015ftir.<\/p>\n<p><i style=\"color:gray;font-size:11px;\">Ne zaman kullan\u0131l\u0131r? : Tool \u00e7a\u011fr\u0131s\u0131 sonras\u0131 bilgi geri verme durumlar\u0131nda, karar verme i\u00e7in veri sa\u011flama durumlar\u0131nda, ajanlar\u0131n s\u00fcre\u00e7 devam\u0131nda karar vermesi durumlar\u0131nda<\/i>\n<\/li>\n<li><em><strong>ToolCallAggregateMessage<\/strong><\/em><br \/>\nBirden fazla <em>ToolCallResultMessage<\/em>&#8216;\u0131n toplu \u00e7\u0131kt\u0131s\u0131na kar\u015f\u0131l\u0131k gelmektedir. Yani birden fazla tool \u00e7a\u011fr\u0131s\u0131 ayn\u0131 anda yap\u0131lm\u0131\u015f ve sonu\u00e7lar tek bir mesajla topluca d\u00f6n\u00fclmek istenmi\u015ftir. \u0130\u015fte bu durumda da bu mesaj t\u00fcr\u00fcnden istifade edilmektedir.<\/p>\n<p><i style=\"color:gray;font-size:11px;\">Ne zaman kullan\u0131l\u0131r? : \u00c7oklu tool \u00e7a\u011fr\u0131s\u0131 sonucunun y\u00f6netim s\u00fcre\u00e7lerinde, birden fazla veri kayna\u011f\u0131n\u0131 tek seferde i\u015flemede, ajan\u0131n toplu veri \u00fczerinden analiz yapabilmesi gerekti\u011fi durumlarda<\/i>\n<\/li>\n<li><em><strong>MessageEnvelope&lt;T&gt;<\/strong><\/em><br \/>\nT\u00fcm mesajlar\u0131 ta\u015f\u0131yan ve sarmalayan \u00fcst yap\u0131d\u0131r. Generic yap\u0131s\u0131 sayesinde herhangi bir mesaj s\u0131n\u0131f\u0131n\u0131 ta\u015f\u0131yabilir ve b\u00f6ylece sistemin t\u00fcm mesajlar\u0131 standart bir \u015fekilde izlenmesini ve y\u00f6nlendirmesini sa\u011flar.<\/p>\n<p><i style=\"color:gray;font-size:11px;\">Ne zaman kullan\u0131l\u0131r? : Mesajlar\u0131n sistemsel izlenmesi gerekti\u011finde; denetleme, loglama, debugging s\u00fcre\u00e7lerinde, ajanlar aras\u0131 g\u00fcvenli ve kontroll\u00fc mesajla\u015fmada<\/i>\n<\/li>\n<\/ul>\n<h4>AutoGen&#8217;in Muadilleri Var m\u0131?<\/h4>\n<p>Elbette piyasada AutoGen&#8217;in muadili olabilecek, farkl\u0131 yakla\u015f\u0131mlar ve \u00f6zelliklerle e\u015flik edebilecek ba\u015fka ara\u00e7larda mevcuttur. Misal olarak; DeepSeek.ai taraf\u0131ndan geli\u015ftirilen ve tamamen yaz\u0131l\u0131m \u00fcretimi i\u00e7in optimize edilmi\u015f olan <em>MetaGPT<\/em>&#8216;yi \u00f6rnek verebiliriz. Ya da g\u00f6rselle\u015ftirilmi\u015f senaryo yahut sim\u00fclasyon olu\u015fturman\u0131n gerekti\u011fi durumlarda tercih edilebilecek olan <em>AgentVerse<\/em>&#8216;de \u00f6rnek olarak sunulabilir. Ancak \u015fu bilinmelidir ki; AutoGen, LLM tabanl\u0131 ajan sistemleri aras\u0131nda \u00f6zg\u00fcn bir yakla\u015f\u0131m getirmekte ve alan\u0131nda yenilik\u00e7i bir mimari sunmaktad\u0131r.<\/p>\n<h4>AutoGen&#8217;in Sa\u011flad\u0131\u011f\u0131 Avantajlar ve Dezavantajlar Nelerdir?<\/h4>\n<p>Bir geli\u015ftirici a\u00e7\u0131s\u0131ndan, normalde par\u00e7alara b\u00f6l\u00fcn\u00fcp elle orkestre etmek zorunda kal\u0131naca\u011f\u0131 bir s\u00fcreci, ajanlar\u0131n konu\u015fmas\u0131yla otomatik hale getirmek ciddi bir kolayl\u0131k olsa gerek. \u0130\u015fte AutoGen, bu tarz \u00e7ok ad\u0131ml\u0131 ve kompleks g\u00f6revleri insan m\u00fcdahalesi olmaks\u0131z\u0131n \u00e7\u00f6zmeye olanak tan\u0131maktad\u0131r. Tabi sa\u011flad\u0131\u011f\u0131 bu kolayl\u0131\u011f\u0131 teknik a\u00e7\u0131dan de\u011ferlendirdi\u011fimizde, AutoGen&#8217;in sundu\u011fu mod\u00fcler ajan mimarisi sayesinde yo\u011funluklar\u0131na g\u00f6re ajanlar \u00f6l\u00e7eklendirilebilmekte ve ihtiya\u00e7 dahilinde sisteme yeni bir ajan (yani yetenek) eklenmesi olduk\u00e7a kolayla\u015ft\u0131r\u0131lmaktad\u0131r. Bunlar\u0131n d\u0131\u015f\u0131nda .NET ekosisteminde AutoGen ile geli\u015ftirici deneyimi olduk\u00e7a rahatlat\u0131lmakta ve haz\u0131r k\u00fct\u00fcphaneler ile y\u00fcksek seviyeli API&#8217;ler sayesinde az kod yazarak \u00e7ok i\u015f yap\u0131labilmektedir.<\/p>\n<p>AutoGen, bir g\u00f6revi ald\u0131ktan sonra alt ad\u0131mlara b\u00f6lme, uygun ajanlara da\u011f\u0131tma ve \u00e7\u0131kt\u0131lar\u0131 birle\u015ftirme i\u015flerini b\u00fcy\u00fck \u00f6l\u00e7\u00fcde kendisi ger\u00e7ekle\u015ftirmektedir. Bu durum, \u00f6zellikle karma\u015f\u0131k ve \u00e7ok a\u015famal\u0131 g\u00f6revlerin \u00e7\u00f6z\u00fcm\u00fcnde ciddi bir avantaj sa\u011flamaktad\u0131r. Ha, her ne kadar LLM&#8217;lerin karar\u0131na b\u0131rak\u0131lan dinamik i\u015f ak\u0131\u015flar\u0131 olsa da istenildi\u011fi taktirde geli\u015ftirici taraf\u0131ndan kontrol edilebilen deterministik ak\u0131\u015flar\u0131 da desteklemektedir. Yani istenirse ajanlar\u0131n etkile\u015fimi s\u0131k\u0131 bir senaryo do\u011frultusunda k\u0131s\u0131tlanarak yap\u0131lacak i\u015fin gereksinimine uygun daha \u00f6zg\u00fcn bir davran\u0131\u015f ortam\u0131 sa\u011flanabilir. Haliyle bu ikili opsiyon sayesinde hem g\u00fcvenilirlik hem de yarat\u0131c\u0131l\u0131k gerektiren durumlarda aksiyon al\u0131nabilir.<\/p>\n<p>AutoGen, \u00e7e\u015fitli LLM servislerini ve ek ara\u00e7lar\u0131 destekleyecek \u015fekilde tasarlanm\u0131\u015ft\u0131r. Bir\u00e7ok AI modellerini kontrol edebilmekte ve yukar\u0131daki sat\u0131rlarda ele ald\u0131\u011f\u0131m\u0131z gibi function call, code executing vs. gibi kabiliyetlerle s\u00fcrece e\u015flik edebilmektedir.<\/p>\n<p>Ancak bu g\u00fc\u00e7l\u00fc y\u00f6nlerinin yan\u0131nda AutoGen&#8217;in baz\u0131 s\u0131n\u0131rlamalar\u0131 ve zorluklar\u0131 da mevcuttur. <strong><em>Ne gibi?<\/em><\/strong> diye sorarsan\u0131z biliyorsunuz ki, \u00f6zellikle birden fazla ajan\u0131n oldu\u011fu sistemlerde durum(context) y\u00f6netimi \u00f6nem arz etmektedir ve her ajan\u0131n sohbet ge\u00e7mi\u015fini, di\u011fer ajanlar\u0131n payla\u015ft\u0131\u011f\u0131 bilgileri ve genel g\u00f6rev ilerleyi\u015fini tutarl\u0131 \u015fekilde idame etmek gerekir. Dolay\u0131s\u0131yla geli\u015ftiricilerin, ajanlar\u0131n payla\u015ft\u0131\u011f\u0131 ortak bellek veya her bir ajan\u0131n kendi belle\u011fi konusunda, sorumluluklar\u0131 \u00fcstlenerek \u00f6zg\u00fcn ve anl\u0131k stratejiler geli\u015ftirmesi gerekebilmektedir. <strong><em>Ee hocam, AutoGen her \u015feyi yap\u0131yor bunu mu yapm\u0131yor!<\/em><\/strong> dedi\u011finizi duyar gibiyim&#8230; Elbette ki AutoGen temel seviyede mesaj ge\u00e7mi\u015fini takip edebilmekte lakin \u00e7ok say\u0131da ajan\u0131n ve uzun diyaloglar\u0131n s\u00f6z konusu oldu\u011fu durumlarda ister istemez yetersiz kalabilmektedir.<\/p>\n<p>Bir ba\u015fka dezavantajl\u0131 durum, multi-agent sistemlerin do\u011fal olarak daha fazla hesaplama gere\u011finden ve bellek t\u00fcketiminden kaynakl\u0131 tek ajanl\u0131 sistemlere nazaran maliyetli olmas\u0131 durumudur. Bundan kaynakl\u0131 AutoGen&#8217;de optimizasyon \u00f6nem kazanmakta, \u00f6zellikle sisteme gereksiz ajan eklenmemesine, yan\u0131tlar\u0131 m\u00fcmk\u00fcn oldu\u011funca k\u0131sa tutmaya ve paralel i\u015flemleri iyi y\u00f6netmeye dikkat edilmelidir. Ayr\u0131ca bir ajan\u0131n yan\u0131t vermemesi ya da LLM \u00e7a\u011fr\u0131s\u0131n\u0131n ba\u015far\u0131s\u0131z olmas\u0131 gibi hata durumlar\u0131n\u0131 y\u00f6netmek multi-agent yap\u0131larda daha karma\u015f\u0131k olabilmektedir. Evet, AutoGen tek tek ajan baz\u0131nda hata yakalama imkan\u0131 sunsa da \u00f6zellikle ajanlar aras\u0131 koordineli bir hata d\u00fczeltme stratejisini geli\u015ftirici tasarlamak mecburiyetindedir. Ee bu da ekstra efor demektir.<\/p>\n<p>Bunlar\u0131n d\u0131\u015f\u0131nda AutoGen ajanlar\u0131, \u00f6zellikle ara\u00e7 kullanma ve kod \u00e7al\u0131\u015ft\u0131rma yeteneklerine sahip olduklar\u0131nda, k\u00f6t\u00fc niyetli \u00e7\u0131kt\u0131lara kar\u015f\u0131 g\u00fcvenlik riski s\u00f6z konusu olabilmektedir. Misal olarak; bir ajan, istemeden zararl\u0131 bir komut \u00fcretip kod y\u00fcr\u00fcten ajana bunu iletebilir ve b\u00f6ylece her \u015feyi mahvedecek bir s\u00fcreci ister istemez kendince tetikleyebilir. \u0130\u015fte b\u00f6yle bir duruma kar\u015f\u0131n s\u0131n\u0131rland\u0131rmalar ve yetkilendirmeler \u00f6nem kazanmakta ve hatta ki\u015fisel veriler, \u015firket i\u00e7i bilgiler vs. gibi hassas verilere eri\u015febilen ajanlar s\u00fcrekli ve yo\u011fun bir \u015fekilde s\u0131k\u0131 denetim alt\u0131nda olmal\u0131d\u0131rlar.<\/p>\n<h5>Nihai olarak;<\/h5>\n<p>AutoGen&#8217;in, \u00e7oklu yapay zek\u00e2 ajanlar\u0131n\u0131n bir arada \u00e7al\u0131\u015farak karma\u015f\u0131k g\u00f6revlerin \u00e7\u00f6z\u00fclmesi i\u00e7in geli\u015ftirilmi\u015f mod\u00fcler, esnek ve gelece\u011fe d\u00f6n\u00fck bir framework oldu\u011funu g\u00f6zlemlemi\u015f oluyoruz. \u0130\u00e7eri\u011fimiz s\u00fcresince AutoGen&#8217;in, ajanlar aras\u0131nda yap\u0131land\u0131r\u0131lm\u0131\u015f mesajlar ile ileti\u015fim kurulmas\u0131n\u0131 sa\u011flayan, her ajan\u0131n belirli bir rol \u00fcstlenebilmesine ve gerekti\u011fi taktirde d\u0131\u015f API&#8217;lerle kolayca etkile\u015fime girilebilmesine imkan tan\u0131yan ve klasik LLM \u00e7a\u011fr\u0131lar\u0131ndan ziyade birden \u00e7ok uzman g\u00f6r\u00fc\u015fe sahip ajan\u0131 bir araya getirerek, bunlar\u0131n geri bildirim d\u00f6ng\u00fcleriyle \u00e7\u0131kt\u0131lar\u0131n\u0131 iyile\u015ftirebilen, insan ile makineyi ayn\u0131 etkile\u015fim \u00e7emberine dahil edebilen ve g\u00f6rsel, metinsel, fonksiyonel veri gibi \u00e7oklu mesaj t\u00fcrlerini destekleyebilen bir yapay zek\u00e2 organizasyonu oldu\u011funu teorik olarak deneyimlemi\u015f ve temellendirmi\u015f bulunuyoruz. <em><strong>Ee hoca! hani pratik dokunu\u015f!<\/strong><\/em> diyorsan\u0131z e\u011fer merak etmeyin. \u0130\u00e7eri\u011fi haddinden fazla \u015fi\u015firmemek ve \u00f6zellikle sizlerin konsantrasyonunu toparlayabilmek i\u00e7in bir sonraki makalenin oda\u011f\u0131n\u0131 AutoGen&#8217;in pratik k\u0131s\u0131mlar\u0131na yo\u011funla\u015ft\u0131racak ve <em>AutoGen for .NET<\/em> ile gerekli kritikleri ger\u00e7ekle\u015ftiriyor olaca\u011f\u0131z. Haliyle bu s\u00fcre zarf\u0131nda sizler bu i\u00e7eri\u011fi okuyup sindirirken, bende di\u011fer i\u00e7eri\u011fi klavyeye al\u0131yor olaca\u011f\u0131m&#8230;<\/p>\n<p>\u0130lgilenenlerin faydalanmas\u0131 dile\u011fiyle&#8230;<br \/>\nSonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Merhaba, Bu i\u00e7eri\u011fimizde Microsoft taraf\u0131ndan yapay zek\u00e2 tabanl\u0131 kompleks uygulamalar\u0131n geli\u015ftirilmesini kolayla\u015ft\u0131rmak amac\u0131yla sunulmu\u015f bir framework olan AutoGen&#8216;i a&#8217;dan z&#8217;ye inceleyecek ve t\u00fcm yeteneklerini nedensellik \u00e7er\u00e7evesinde kavramaya \u00e7al\u0131\u015f\u0131yor olaca\u011f\u0131z. Evet, heyecanl\u0131 ve uzun soluklu&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":27863,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5206,5222,5220],"tags":[5307,5367,5349,5346,5376,5348,5368,5366,5355,5351,5353,5364,5356,5365,5362,5352,5370,5361,5354,5375,5347,5357,5371,5359,5221,5360,5363,171,5369,5374,5372,5373,5189,5350,5358],"class_list":["post-27846","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-net","category-llm","category-yapay-zeka-ai","tag-agent","tag-agent-as-a-service","tag-assistantagent","tag-autogen","tag-autogen-for-net","tag-autogenin-amaci-nedir","tag-built-in-messages","tag-chain-of-thought","tag-code-executor","tag-conversableagent","tag-conversation","tag-function-call-nedir","tag-function-calling","tag-functioncallmiddleware","tag-groupchat","tag-groupchatmanageragent","tag-imagemessage","tag-lmstudioagent","tag-message-system","tag-messageenvelope","tag-multi-agent-llm-systems","tag-multi-agent-workflow","tag-multimodalmessage","tag-openaichatagent","tag-semantic-kernel","tag-semantickernelagent","tag-sequentialgroupchat","tag-temsilciler","tag-textmessage","tag-toolcallaggregatemessage","tag-toolcallmessage","tag-toolcallresultmessage","tag-tooling","tag-userproxyagent","tag-workflow-engine"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/27846","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=27846"}],"version-history":[{"count":15,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/27846\/revisions"}],"predecessor-version":[{"id":27864,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/27846\/revisions\/27864"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/27863"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=27846"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=27846"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=27846"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}