﻿
{"id":28116,"date":"2025-10-30T21:26:20","date_gmt":"2025-10-30T21:26:20","guid":{"rendered":"https:\/\/www.gencayyildiz.com\/blog\/?p=28116"},"modified":"2025-10-30T21:26:20","modified_gmt":"2025-10-30T21:26:20","slug":"microsoft-agent-framework-nedir-konseptleri-nelerdir","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/microsoft-agent-framework-nedir-konseptleri-nelerdir\/","title":{"rendered":"Microsoft Agent Framework Nedir? Konseptleri Nelerdir?"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Bu i\u00e7eri\u011fimizde .NET uygulamalar\u0131nda yapay zek\u00e2 \u00e7al\u0131\u015fmalar\u0131n\u0131 daha elveri\u015fli ve profesyonel bir \u015fekilde y\u00fcr\u00fctmemizi sa\u011flayacak olan, \u00f6zellikle multi-agent i\u015f ak\u0131\u015flar\u0131n\u0131 geli\u015ftirmek i\u00e7in optimize edilerek, yeni bir altyap\u0131 tasar\u0131s\u0131yla bizlere sunulan <em>Microsoft Agent Framework<\/em>&#8216;\u00fc inceleyecek ve temel yap\u0131 ta\u015flar\u0131 e\u015fli\u011finde, mimarisel unsurlar\u0131n\u0131 ve geli\u015ftirme s\u00fcre\u00e7lerinde kritik arz eden konsept kavramlar\u0131n\u0131 de\u011ferlendirecek ve daha da \u00f6nemlisi, bu g\u00fcne kadar kulland\u0131\u011f\u0131m\u0131z <a href=\"https:\/\/www.gencayyildiz.com\/blog\/tag\/semantic-kernel\/\" target=\"_blank\">Semantic Kernel<\/a> ve <a href=\"https:\/\/www.gencayyildiz.com\/blog\/tag\/autogen\/\" target=\"_blank\">AutoGen<\/a> k\u00fct\u00fcphaneleri varken neden b\u00f6yle bir k\u00fct\u00fcphaneye ihtiya\u00e7 oldu\u011funu isti\u015fare ederek, aralar\u0131nda mukayesede bulunacak ve b\u00fct\u00fcnsel bir fark\u0131ndal\u0131k olu\u015fturaca\u011f\u0131z. O halde fazla uzatmaks\u0131z\u0131n buyurun ba\u015flayal\u0131m&#8230;<\/p>\n<h4>Microsoft Agent Framework Nedir?<\/h4>\n<p>Microsoft Agent Framework, .NET ve Python ortamlar\u0131nda yapay zek\u00e2 agent&#8217;lar\u0131 ve multi-agent i\u015f ak\u0131\u015flar\u0131 geli\u015ftirmek i\u00e7in tasarlanm\u0131\u015f open source bir geli\u015ftirici setidir (development kit) Bu framework ile Semantic Kernel ve AutoGen ara\u00e7lar\u0131n\u0131n ama\u00e7 ve yetenekleri bir araya getirilip, geni\u015fletilmi\u015f ve \u00f6zellikle her iki yakla\u015f\u0131m\u0131n g\u00fc\u00e7l\u00fc y\u00f6nleri birle\u015ftirilerek, yeni yetenekler e\u015fli\u011finde biz geli\u015ftiricilerin el \u00e7antas\u0131na sunulmu\u015ftur.<\/p>\n<blockquote><p><em style=\"color:gray;font-size:14px;\">Semantic Kernel ve AutoGen&#8217;i geli\u015ftiren ayn\u0131 ekip taraf\u0131ndan geli\u015ftirilmi\u015f olan bu Microsoft Agent Framework, gelecekte yapay zek\u00e2 agent&#8217;lar\u0131 in\u015fa etmek i\u00e7in ortak bir temel olarak konumland\u0131r\u0131lmay\u0131 hedeflemektedir.<\/em><\/p><\/blockquote>\n<p>Agent Framework, <em>AI Agents<\/em> ve <em>Workflows<\/em> olmak \u00fczere iki ana kritik kategoriye ayr\u0131lan yetenekler sunmaktad\u0131r;<\/p>\n<ul style=\"font-size:14px;\">\n<li><em><strong>AI Agents<\/strong><\/em><br \/>\nBu agent&#8217;lar, LLM kullanarak kullan\u0131c\u0131 girdilerini i\u015flemekte, tools\/plugin \u00e7a\u011f\u0131rabilmekte ve <a href=\"https:\/\/www.gencayyildiz.com\/blog\/tag\/mcp\/\" target=\"_blank\">MCP Server<\/a> ile farkl\u0131 yetenekleri s\u00fcrece dahil edip eylemler ger\u00e7ekle\u015ftirebilmektedirler.\n<\/li>\n<li><em><strong>Workflows<\/strong><\/em><br \/>\nWorkflows ise birden fazla agent&#8217;\u0131 ve fonksiyonu birbirine ba\u011flayan graf tabanl\u0131 i\u015f ak\u0131\u015flar\u0131n\u0131 tan\u0131mlamaktad\u0131r. Bir ba\u015fka deyi\u015fle, birden \u00e7ok agent ve tool&#8217;un birlikte, belirli bir s\u0131rada ya da mant\u0131k grafi\u011fi i\u00e7inde \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayan y\u00fcr\u00fctme motorudur.<\/p>\n<p>Workflows, Agent Framework&#8217;te; Semantic Kernel&#8217;daki function orchestration mant\u0131\u011f\u0131yla, AutoGen&#8217;deki multi-agent coordination yakla\u015f\u0131m\u0131n\u0131 al\u0131p, graph-tabanl\u0131 y\u00fcr\u00fctme olan workflow orchestration katman\u0131nda bir araya getirmektedir.<\/p>\n<p>Workflows, t\u00fcr batanl\u0131 y\u00f6nlendirme (type-based routing), i\u00e7 i\u00e7e yerle\u015ftirme (nesting), kontrol noktalar\u0131 olu\u015fturma (checkpointing) ve insan m\u00fcdahalesinin dahil oldu\u011fu senaryolarda (human-in-the-loop) request\/response modellerini desteklemektedir.\n<\/li>\n<\/ul>\n<p>\u0130\u00e7eri\u011fimizin sonraki sat\u0131rlar\u0131nda ve konuya dair sonradan klavyeye alaca\u011f\u0131m\u0131z makalelerde bu kavramlar\u0131n ne oldu\u011funu daha net anlayaca\u011f\u0131n\u0131za ve sindiriyor olaca\u011f\u0131n\u0131za \u015f\u00fcpheniz olmas\u0131n (in\u015fallah \ud83d\ude42 ). Bizler \u015fimdilik mevzu bahis framework&#8217;e dair kavramlar\u0131 tan\u0131mak ama\u00e7l\u0131 masaya yat\u0131rmaya ve genel manada ne oldu\u011funu anlamaya \u00e7al\u0131\u015fmaya devam edelim.<\/p>\n<h4>Temel Yap\u0131 Ta\u015flar\u0131 ve Mimari Unsurlar\u0131 Nelerdir?<\/h4>\n<p>Agent Framework, geli\u015ftiricilere geni\u015f esneklik sa\u011flayan a\u015fa\u011f\u0131daki gibi \u00f6zetleyebilece\u011fimiz bir dizi temel bile\u015fen i\u00e7ermektedir;<\/p>\n<ul style=\"font-size:14px;\">\n<li><em>Model Clients : <\/em>Sohbet tamamlama (chat completions) ve yan\u0131t \u00fcretimi i\u00e7in kullan\u0131lmaktad\u0131r.<\/li>\n<li><em>Agent Thread : <\/em>Durum y\u00f6netimi (state management) i\u00e7in kullan\u0131lmaktad\u0131r.<\/li>\n<li><em>Context Providers : <\/em>Agent belle\u011fini y\u00f6netmektedir.<\/li>\n<li><em>Middleware : <\/em>Agent eylemlerini yakalay\u0131p i\u015fleyebilmektedir.<\/li>\n<li><em>MCP Clients : <\/em>Harici ara\u00e7lar\u0131n entegrasyonunu kolayla\u015ft\u0131rmaktad\u0131r.<\/li>\n<\/ul>\n<p>Bu bile\u015fenler bir araya geldi\u011fi taktirde biz geli\u015ftiriciler a\u00e7\u0131s\u0131ndan etkile\u015fimli, sa\u011flam ve g\u00fcvenli yapay zek\u00e2 uygulamalar\u0131 olu\u015fturma g\u00fcc\u00fc ve esnekli\u011fi s\u00f6z konusu olmaktad\u0131r.<\/p>\n<h4>Neden Semantic Kernel veya AutoGen Varken, Agent Framework Tasarlanm\u0131\u015ft\u0131r?<\/h4>\n<p>Evet&#8230; \u0130nsan, Agent Framework&#8217;\u00fc duyunca akla direkt Semantic Kernel ve AutoGen gelmekte ve bunlar\u0131n neyimize yetmedi\u011fini ister istemez sorgulamaktad\u0131r \ud83d\ude42 Evet&#8230; Semantic Kernel ve AutoGen, yapay zek\u00e2 agent&#8217;lar\u0131n\u0131n ve multi-agent orchestration kavramlar\u0131n\u0131n \u00f6nc\u00fcleri olabilirler, lakin bunlar \u00fczerine ayn\u0131 ekipler taraf\u0131ndan do\u011frudan halefleri olabilecek Agent Framework geli\u015ftirilmi\u015f ve \u00fcstteki sat\u0131rlarda ifade etmeye \u00e7al\u0131\u015ft\u0131\u011f\u0131m\u0131z gibi iki yap\u0131n\u0131n da iyi ve g\u00fczel yanlar\u0131 bu framework&#8217;de bamba\u015fka yenilikler e\u015fli\u011finde birle\u015ftirilmi\u015ftir.<\/p>\n<p><em><strong>Hoca, hangi ara\u00e7tan ne al\u0131nd\u0131?<\/strong><\/em> sorunuzu duyar gibiyim&#8230; Bunu a\u015fa\u011f\u0131da hemen izah etmeye \u00e7al\u0131\u015fal\u0131m.<\/p>\n<h6>AutoGen&#8217;den Al\u0131nan \u00d6zellikler<\/h6>\n<p>Malumunuz AutoGen&#8217;in felsefesi basitlik ve agent etkile\u015fimi (multi-agent dialog pattern) \u00fczerine kuruluydu. Agent Framework, AutoGen&#8217;den \u015fu \u00f6zellikleri devralm\u0131\u015ft\u0131r;<\/p>\n<table style=\"border-collapse:collapse;max-width:900px;margin:auto;border:1px solid #e0a500;font-family:'Segoe UI',Arial,sans-serif;font-size:14px;\">\n<thead>\n<tr>\n<th style=\"border:1px solid #e0a500;background-color:#fff8e1;font-weight:bold;text-align:left;padding:10px 14px;font-size:16px;border-bottom:3px solid #e0a500;width:30%;\">\u00d6zellik<\/th>\n<th style=\"border:1px solid #e0a500;background-color:#fff8e1;font-weight:bold;text-align:left;padding:10px 14px;font-size:16px;border-bottom:3px solid #e0a500;\">A\u00e7\u0131klama<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"border:1px solid #e0a500;padding:10px 14px;vertical-align:top;background-color:#fffdf7;text-align:left;\">Basit soyutlamalar<br \/>\n(simpe abstraction)<\/td>\n<td style=\"border:1px solid #e0a500;padding:10px 14px;vertical-align:top;background-color:#fffdf7;line-height:1.6;text-align:left;\">AutoGen&#8217;de tek bir agent (single-agent) ya da birden \u00e7ok agent (multi-agent) senaryosu tan\u0131mlamak son derece kolayd\u0131r. Agent&#8217;lar aras\u0131ndaki rol ve diyalog tan\u0131m\u0131 yal\u0131n bir API \u00fczerinden yap\u0131labilmektedir.<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #e0a500;padding:10px 14px;vertical-align:top;background-color:#fffdf7;text-align:left;\">Agent&#8217;lar aras\u0131 ileti\u015fim deseni<br \/>\n(agent-to-agent pattern)<\/td>\n<td style=\"border:1px solid #e0a500;padding:10px 14px;vertical-align:top;background-color:#fffdf7;line-height:1.6;text-align:left;\">AutoGen, agent&#8217;lar\u0131n birbirine mesaj g\u00f6nderdi\u011fi &#8216;diyalog tabanl\u0131&#8217; orkestrasyonu ba\u015flatan ilk sistemlerden biridir. Bu mant\u0131k, Agent Framework&#8217;te korunmaktad\u0131r.<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #e0a500;padding:10px 14px;vertical-align:top;background-color:#fffdf7;text-align:left;\">Tekli ve \u00e7oklu agent kal\u0131plar\u0131<br \/>\n(single &#038; multi-agent patterns)<\/td>\n<td style=\"border:1px solid #e0a500;padding:10px 14px;vertical-align:top;background-color:#fffdf7;line-height:1.6;text-align:left;\">Farkl\u0131 g\u00f6revleri olan bir veya birden fazla agent&#8217;\u0131n ayn\u0131 sistemde organize \u00e7al\u0131\u015fabilmesi mant\u0131\u011f\u0131 do\u011frudan AutoGen&#8217;den gelmektedir.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h6>Semantic Kernel&#8217;dan Al\u0131nan \u00d6zellikler<\/h6>\n<p>Semantic Kernel taraf\u0131, malumunuz oldu\u011fu \u00fczere \u00e7ok daha kurumsal d\u00fczeyde, m\u00fchendislik a\u00e7\u0131s\u0131ndan disiplinli bir altyap\u0131ya sahiptir. Agent Framework, Semantic Kernel&#8217;dan bu g\u00fc\u00e7l\u00fc altyap\u0131 unsurlar\u0131n\u0131 almaktad\u0131r;<\/p>\n<table style=\"border-collapse:collapse;max-width:900px;margin:auto;border:1px solid #e0a500;font-family:'Segoe UI',Arial,sans-serif;font-size:14px;\">\n<thead>\n<tr>\n<th style=\"border:1px solid #e0a500;background-color:#fff8e1;font-weight:bold;text-align:left;padding:10px 14px;font-size:16px;border-bottom:3px solid #e0a500;width:30%;\">\u00d6zellik<\/th>\n<th style=\"border:1px solid #e0a500;background-color:#fff8e1;font-weight:bold;text-align:left;padding:10px 14px;font-size:16px;border-bottom:3px solid #e0a500;\">A\u00e7\u0131klama<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"border:1px solid #e0a500;padding:10px 14px;vertical-align:top;background-color:#fffdf7;text-align:left;\">Thread-based state management<\/td>\n<td style=\"border:1px solid #e0a500;padding:10px 14px;vertical-align:top;background-color:#fffdf7;line-height:1.6;text-align:left;\">Agent durumu (state), bir thread context&#8217;inde y\u00f6netilmektedir. Bu, uzun s\u00fcre\u00e7lerde context kayb\u0131n\u0131 engelleyen bir unsurdur.<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #e0a500;padding:10px 14px;vertical-align:top;background-color:#fffdf7;text-align:left;\">Type safety<\/td>\n<td style=\"border:1px solid #e0a500;padding:10px 14px;vertical-align:top;background-color:#fffdf7;line-height:1.6;text-align:left;\">Geli\u015ftirici hatalar\u0131n\u0131 azaltmak i\u00e7in g\u00fc\u00e7l\u00fc tip denetimi sa\u011flanmaktad\u0131r.<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #e0a500;padding:10px 14px;vertical-align:top;background-color:#fffdf7;text-align:left;\">Filters<\/td>\n<td style=\"border:1px solid #e0a500;padding:10px 14px;vertical-align:top;background-color:#fffdf7;line-height:1.6;text-align:left;\">Agent davran\u0131\u015flar\u0131n\u0131 veya model \u00e7a\u011fr\u0131lar\u0131n\u0131 \u00f6nceden ve sonradan i\u015fleyebilen middleware benzeri filtre mekanizmalar\u0131d\u0131r.<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #e0a500;padding:10px 14px;vertical-align:top;background-color:#fffdf7;text-align:left;\">Telemetry<\/td>\n<td style=\"border:1px solid #e0a500;padding:10px 14px;vertical-align:top;background-color:#fffdf7;line-height:1.6;text-align:left;\">Sistem d\u00fczeyinde izleme, hata ay\u0131klama, performans metrikleri toplama yetene\u011fidir.<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #e0a500;padding:10px 14px;vertical-align:top;background-color:#fffdf7;text-align:left;\">Extensive model &#038; embedding support<\/td>\n<td style=\"border:1px solid #e0a500;padding:10px 14px;vertical-align:top;background-color:#fffdf7;line-height:1.6;text-align:left;\">Farkl\u0131 model sa\u011flay\u0131c\u0131lar\u0131 (Azure OpenAI, OpenAI, Azure AI) ve embedding yap\u0131lar\u0131 i\u00e7in yerle\u015fik destek sa\u011flamaktad\u0131r.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h6>Agent Framework&#8217;\u00fcn Kendi Getirisi Olan \u00d6zellikler<\/h6>\n<p>Agent Framework, iki d\u00fcnyay\u0131 birle\u015ftirmekle kalm\u0131yor, bunlar\u0131n \u00fczerine yepyeni bir katman ekleyerek yeni \u00f6zellikler sunuyor;<\/p>\n<table style=\"border-collapse:collapse;max-width:900px;margin:auto;border:1px solid #e0a500;font-family:'Segoe UI',Arial,sans-serif;font-size:14px;\">\n<thead>\n<tr>\n<th style=\"border:1px solid #e0a500;background-color:#fff8e1;font-weight:bold;text-align:left;padding:10px 14px;font-size:16px;border-bottom:3px solid #e0a500;width:30%;\">\u00d6zellik<\/th>\n<th style=\"border:1px solid #e0a500;background-color:#fff8e1;font-weight:bold;text-align:left;padding:10px 14px;font-size:16px;border-bottom:3px solid #e0a500;\">A\u00e7\u0131klama<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"border:1px solid #e0a500;padding:10px 14px;vertical-align:top;background-color:#fffdf7;text-align:left;\">Graph-based workflows<\/td>\n<td style=\"border:1px solid #e0a500;padding:10px 14px;vertical-align:top;background-color:#fffdf7;line-height:1.6;text-align:left;\">Multi-agent y\u00fcr\u00fctme yollar\u0131n\u0131 grafik olarak tan\u0131mlama \u00f6zelli\u011fidir. Yani bu \u00f6zellik sayesinde; agent&#8217;lar, fonksiyonlar ve tool&#8217;lar aras\u0131 ak\u0131\u015f\u0131 a\u00e7\u0131k\u00e7a kontrol edebilmekteyiz.<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #e0a500;padding:10px 14px;vertical-align:top;background-color:#fffdf7;text-align:left;\">Geli\u015fmi\u015f state management<\/td>\n<td style=\"border:1px solid #e0a500;padding:10px 14px;vertical-align:top;background-color:#fffdf7;line-height:1.6;text-align:left;\">Uzun soluklu s\u00fcre\u00e7ler ve insan m\u00fcdahalesi gerektiren d\u00f6ng\u00fcler (human-in-the loop) i\u00e7in dayan\u0131kl\u0131 state management sa\u011flamaktad\u0131r.<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #e0a500;padding:10px 14px;vertical-align:top;background-color:#fffdf7;text-align:left;\">Explicit orchestration control<\/td>\n<td style=\"border:1px solid #e0a500;padding:10px 14px;vertical-align:top;background-color:#fffdf7;line-height:1.6;text-align:left;\">Art\u0131k sistem sadece konu\u015fmalar\u0131 de\u011fil, t\u00fcm g\u00f6rev ak\u0131\u015flar\u0131n\u0131 y\u00f6netebilmektedir. Yani, <strong><em>hangi agent ne zaman devreye girecek?<\/em><\/strong> gibi kararlar belirlenebilmektedir.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Evet, art\u0131k Agent Framework&#8217;\u00fcn fark\u0131ndal\u0131\u011f\u0131n\u0131 olu\u015fturdu\u011fumuza g\u00f6re \u015fu andan itibaren konseptlerini detayland\u0131rmaya ge\u00e7ebiliriz.<\/p>\n<h4>Agent Framework Konseptleri<\/h4>\n<p>\u0130\u00e7eri\u011fimizin \u00f6nceki sat\u0131rlar\u0131nda Agent Framework&#8217;\u00fcn iki kritik kavram\u0131n\u0131 sonradan daha da netle\u015ftirip anlayabilece\u011fimizden bahsetmi\u015ftik. Evet, bu iki kavram <em>AI Agents<\/em> ve <em>Workflows<\/em> kavramlar\u0131d\u0131r. Tekrar bu konseptlere d\u00f6n\u00fcp, daha derin inceleyebilmek i\u00e7in hususi olarak masaya yat\u0131rmam\u0131z, Agent Framework&#8217;\u00fcn davran\u0131\u015f\u0131n\u0131 ve kullan\u0131m deneyimini anlamam\u0131z i\u00e7in olduk\u00e7a \u00f6nem arz etmektedir. Hadi ba\u015flayal\u0131m;<\/p>\n<ul style=\"font-size:14px;\">\n<li>\n<h5>AI Agent Nedir?<\/h5>\n<p>AI Agent, \u00f6nceki yaz\u0131lar\u0131m\u0131zda <span style=\"font-size:12px;\">(bknz : <a href=\"https:\/\/www.gencayyildiz.com\/blog\/tag\/ai-agent\/\" target=\"_blank\">ai agents<\/a>)<\/span> bol bol bahsetti\u011fimiz ve \u00fczerine isti\u015farelerde bulundu\u011fumuz bir kavramd\u0131r. Agent Framework a\u00e7\u0131s\u0131ndan AI Agent, yine benzer bir tan\u0131ma sahip olan bir yap\u0131ya sahiptir. Yani, bir LLM kullanarak kullan\u0131c\u0131 girdilerini i\u015fleyen, kararlar alan, yan\u0131t s\u00fcrecinde tools&#8217;lar\u0131 kullanabilen ve MCP Server ile yeteneklerini geni\u015fletebilen bir yapay zek\u00e2 ajan\u0131d\u0131r.<\/p>\n<p>Bir AI Agent&#8217;\u0131n temel bile\u015fenlerini ve bu bile\u015fenler aras\u0131ndaki etkile\u015fimleri a\u015fa\u011f\u0131daki diyagram \u00fczerinden inceleyebilirsiniz:<div id=\"attachment_28124\" style=\"width: 496px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/10\/Microsoft-Agent-Framework-Nedir-Konseptleri-Nelerdir.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-28124\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/10\/Microsoft-Agent-Framework-Nedir-Konseptleri-Nelerdir.png\" alt=\"Microsoft Agent Framework Nedir? Konseptleri Nelerdir?\" width=\"486\" height=\"505\" class=\"size-full wp-image-28124\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/10\/Microsoft-Agent-Framework-Nedir-Konseptleri-Nelerdir.png 486w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/10\/Microsoft-Agent-Framework-Nedir-Konseptleri-Nelerdir-289x300.png 289w\" sizes=\"auto, (max-width: 486px) 100vw, 486px\" \/><\/a><p id=\"caption-attachment-28124\" class=\"wp-caption-text\">Diyagram kayna\u011f\u0131<br \/>\n<a href=\"https:\/\/learn.microsoft.com\/en-us\/agent-framework\/media\/agent.svg\" target=\"_blank\">https:\/\/learn.microsoft.com\/en-us\/agent-framework\/media\/agent.svg<\/a><\/p><\/div>Diyagram\u0131 incelerseniz e\u011fer, AI Agent&#8217;\u0131n g\u00f6rev d\u00f6ng\u00fcs\u00fc (agentic loop) ad\u0131m ad\u0131m g\u00f6sterilmektedir. Kullan\u0131c\u0131dan gelen bir mesaj\u0131n sistemin i\u00e7inde nas\u0131l i\u015flendi\u011fi, hangi bile\u015fenlerin ne zaman devreye girdi\u011fi ve LLM&#8217;in ara\u00e7larla (tools\/MCP) nas\u0131l etkile\u015fime ge\u00e7ti\u011fi anlat\u0131lmaktad\u0131r. Burada dikkat edilirse e\u011fer User, Agent, LLM ve Tools\/MCP olmak \u00fczere d\u00f6rt temel akt\u00f6r mevcuttur. Bu akt\u00f6rler aras\u0131nda ak\u0131\u015f;<br \/>\n<em><code>kullan\u0131c\u0131dan sisteme<\/code><\/em> \u2192 <em><code>agent'tan LLM'e<\/code><\/em> \u2192 <em><code>gerekirse tools'lara<\/code><\/em> \u2192 <em><code>tekrardan kullan\u0131c\u0131ya<\/code><\/em><br \/>\nolacak \u015fekilde bir d\u00f6ng\u00fcye sahiptir.<\/p>\n<p>Kullan\u0131c\u0131 \u00f6nce bir istek veya komut g\u00f6ndermektedir. Ard\u0131ndan agent, ilk &#8216;prompt&#8217; (ba\u015flang\u0131\u00e7 y\u00f6nergesi) ve context ile LLM&#8217;i haz\u0131rlamaktad\u0131r. Ard\u0131ndan agent, LLM&#8217;e hem kullan\u0131c\u0131 girdisini hem de \u00f6nceki context&#8217;i i\u00e7eren iste\u011fi g\u00f6ndermektedir. LLM ise gelen girdiyi i\u015flemekte ve bir sonraki ad\u0131m\u0131 belirlemektedir. E\u011fer g\u00f6rev tamamland\u0131ysa <em>Task Complete<\/em> ad\u0131m\u0131na ge\u00e7ilmektedir, yok e\u011fer d\u0131\u015f bir eylem gerekiyorsa, <em>Tool\/MCP Call Required<\/em> blo\u011fu devreye girecektir. Diyelim ki <em>Tool\/MCP Call Required<\/em> blo\u011funa gereksinim oldu, i\u015fte o taktirde LLM bir arac\u0131 \u00e7a\u011f\u0131rmas\u0131 gerekti\u011fini agent&#8217;a bildirecektir. Agent ise ilgili tool&#8217;u veya MCP Server&#8217;\u0131 \u00e7al\u0131\u015ft\u0131racakt\u0131r. Tool, i\u015flevinin sonucunu d\u00f6nd\u00fcrecek ve agent ise bu sonucu ve g\u00fcncellenmi\u015f context&#8217;i tekrar LLM&#8217;e g\u00f6nderecektir. LLM bu yeni bilgiyi kullanarak i\u015flevsel d\u00f6ng\u00fcs\u00fcne devam edecektir.<\/p>\n<p>Son olarak bir AI Agent, ayr\u0131ca yeteneklerini geni\u015fletmek amac\u0131yla \u015fu ek bile\u015fenlerle zenginle\u015ftirilebilmektedir;<\/p>\n<ul>\n<li><em>Thread<\/em><\/li>\n<li><em>Context provider<\/em><\/li>\n<li><em>Middleware<\/em><\/li>\n<\/ul>\n<p>Bu ek unsurlar, agent&#8217;\u0131n i\u015flevselli\u011fini ve etkile\u015fim kapasitesini \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131racakt\u0131r.<\/p>\n<p><strong><em>AI Agent Ne Zaman Kullan\u0131lmal\u0131d\u0131r?<\/em><\/strong><br \/>\nAI Agent&#8217;lar, herhangi bir d\u0131\u015f m\u00fcdahaleye gerek kalmaks\u0131z\u0131n kendi kendine kararlar\u0131n verilmesi gereken \u00f6zerk karar verme durumlar\u0131nda (autonomous decision-making), anl\u0131k veya duruma g\u00f6re \u00f6zel ve dinamik olarak planlama yap\u0131lmas\u0131 gereken durumlarda (ad hoc planning), belirsiz ortamlarda hatalardan \u00f6\u011frenme ve \u00e7\u00f6z\u00fcm arama s\u00fcreci olan deneme-yan\u0131lma temelli ke\u015fif s\u00fcre\u00e7lerinde (trial-and-error exploration) ve diyalog tabanl\u0131 kullan\u0131c\u0131 etkile\u015fimi (conversation-based user interactions) gerektiren senaryolarda olduk\u00e7a ideal ve etkili \u00e7\u00f6z\u00fcmler sunmam\u0131z\u0131 sa\u011flamaktad\u0131r.<\/p>\n<p>Yine de yayg\u0131n senaryolar\u0131 kategorize etmemiz gerekirse e\u011fer bu durumlar\u0131 a\u015fa\u011f\u0131daki gibi belli ba\u015fl\u0131 ba\u015fl\u0131klar alt\u0131nda toparlayabiliriz;<\/p>\n<ul>\n<li><em><u>M\u00fc\u015fteri Deste\u011fi<\/u><\/em><br \/>\nAI Agent&#8217;lar, m\u00fc\u015fterilerden gelen metin, ses ve g\u00f6rsel sorgular\u0131 h\u0131zl\u0131ca i\u015fleyebilir, hatta gerekti\u011fi taktirde tools devreye sokarak s\u00fcre\u00e7teki eylemleri farkl\u0131 yeteneklerle olduk\u00e7a zenginle\u015ftirebilir.\n<\/li>\n<li><em><u>E\u011fitim ve \u00d6\u011fretim<\/u><\/em><br \/>\nAgent&#8217;lar, harici kaynaklar\u0131 kullanarak ki\u015fiselle\u015ftirilmi\u015f \u00f6\u011fretim sa\u011flayabilir ve \u00f6\u011frencilerin s\u00fcre\u00e7teki problemlerine e\u015flik ederek, varsa sorular\u0131n\u0131 cevapland\u0131rabilir.\n<\/li>\n<li><em><u>Kod \u00dcretimi ve Hata Ay\u0131klama<\/u><\/em><br \/>\nYaz\u0131l\u0131m geli\u015ftiricileri i\u00e7in AI Agent&#8217;lar uygulama geli\u015ftirebilir, kod inceleme (code review) ve debugging s\u00fcre\u00e7lerinde yard\u0131mc\u0131 olabilir. Bu do\u011frultuda \u00e7e\u015fitli programlama ara\u00e7lar\u0131n\u0131 ve ortamlar\u0131n\u0131 etkin \u015fekilde kullanabilir.\n<\/li>\n<li><em><u>Ara\u015ft\u0131rma Asistanl\u0131\u011f\u0131<\/u><\/em><br \/>\nAra\u015ft\u0131rmac\u0131lar ve analistler i\u00e7in agent&#8217;lar, web \u00fczerinde arama yapabilir, dok\u00fcmanlar\u0131 \u00f6zetleyebilir ve birden \u00e7ok kaynaktan bilgileri bir araya getirebilir.\n<\/li>\n<\/ul>\n<p>Bu ve bunlara benzer senaryolar\u0131 daha da art\u0131rarak kategorize edebiliriz. Burada g\u00f6rmemiz gereken bu senaryolardaki ortak \u00f6zelliklerden yapaca\u011f\u0131m\u0131z \u015fu \u00e7\u0131kar\u0131md\u0131r: AI Agent&#8217;lar, dinamik ve belirsiz ortamlarda, kullan\u0131c\u0131 iste\u011fini yerine getirmek i\u00e7in gereken ad\u0131mlar\u0131n \u00f6nceden tam olarak bilinmedi\u011fi durumlarda \u00e7al\u0131\u015fma sergileyebilmek ve insanlar\u0131n hayattaki s\u00fcre\u00e7lerini kolayla\u015ft\u0131rmak \u00fczere tasarlanm\u0131\u015flard\u0131r.<\/p>\n<p><strong><em>Peki AI Agent Ne Zaman Kullan\u0131lmamal\u0131d\u0131r?<\/em><\/strong><br \/>\nAI Agent&#8217;lar, y\u00fcksek derecede yap\u0131land\u0131r\u0131lm\u0131\u015f ve \u00f6nceden tan\u0131mlanm\u0131\u015f kurallara s\u0131k\u0131 s\u0131k\u0131ya ba\u011fl\u0131 g\u00f6revler i\u00e7in hi\u00e7te uygun de\u011fildirler. E\u011fer uygulaman\u0131z belirli bir t\u00fcr girdiyi bekliyor ve bu girdiye kar\u015f\u0131l\u0131k \u00f6nceden belirlenmi\u015f, sabit bir i\u015flem dizisi gerektiriyorsa, i\u015fte b\u00f6yle bir durumda AI Agent&#8217;lar\u0131 kullanmak olduk\u00e7a gereksizdir! \u00c7\u00fcnk\u00fc bu tarz bir durumda AI Agent&#8217;lar, yaln\u0131zca gecikme (latency) ve maliyet yaratmaktan daha \u00f6te bir varl\u0131k g\u00f6steremeyecektirler.<\/p>\n<blockquote><p><em style=\"color:green;\">Unutmay\u0131n!<br \/>\nE\u011fer bir g\u00f6revi basit bir fonksiyon yazarak ger\u00e7ekle\u015ftirebiliyorsan\u0131z, agent kullanmak yerine do\u011frudan o fonksiyonu yaz\u0131n\u0131z! Fonksiyonu yazarken AI&#8217;dan yard\u0131m almakla, g\u00f6revi komple agent&#8217;a devretmek ayn\u0131 \u015fey de\u011fildir!<\/em><\/p><\/blockquote>\n<p>Ayr\u0131ca tek bir AI Agent, \u00e7ok say\u0131da ad\u0131m ve karar noktas\u0131 i\u00e7eren karma\u015f\u0131k g\u00f6revlerle m\u00fccadele etmekte zorlanabilir. Bu t\u00fcr g\u00f6revler, misal olarak 20&#8217;den fazla tool gerektiren b\u00fcy\u00fck sistemler olabilir ve tek bir agent&#8217;\u0131n y\u00f6netemeyece\u011fi kadar kapsaml\u0131 hale gelebilirler. \u0130\u015fte bu gibi durumlarda agent yerine workflow kullanmak daha do\u011fru olacakt\u0131r!\n<\/li>\n<li>\n<h5>Workflows Nedir?<\/h5>\n<p>Bir workflow, \u00f6nceden tan\u0131mlanm\u0131\u015f bir i\u015flem dizisini (predefined sequence of operations) ifade etmektedir ve bu dizinin i\u00e7erisinde AI Agent&#8217;lar bile\u015fen olarak yer alabilmektedir. Workflow&#8217;lar, bu yap\u0131y\u0131 korurken bir yandan da tutarl\u0131l\u0131\u011f\u0131 (consistency) ve g\u00fcvenilirli\u011fi (reliability) de sa\u011flamaktad\u0131rlar.<\/p>\n<p>Workflow&#8217;lar; birden fazla agent&#8217;\u0131, insan etkile\u015fimini (human interaction) ve harici sistemlerle entegrasyonlar\u0131 (integrations with external systems) i\u00e7erebilen karma\u015f\u0131k ve uzun s\u00fcreli s\u00fcre\u00e7leri y\u00f6netmek \u00fczere tasarlanm\u0131\u015flard\u0131r. <\/p>\n<p>Bizler workflow ile \u00e7al\u0131\u015fma s\u0131ras\u0131n\u0131 (execution sequence) a\u00e7\u0131k bir bi\u00e7imde tan\u0131mlayabilmekte ve geli\u015ftirme s\u00fcrecinde \u00e7al\u0131\u015fma yolu (execution path) \u00fczerinde daha y\u00fcksek d\u00fczeyde kontrol sa\u011flayabilmekteyiz.<div id=\"attachment_28126\" style=\"width: 441px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/10\/Microsoft-Agent-Framework-Nedir-Konseptleri-Nelerdir-1.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-28126\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/10\/Microsoft-Agent-Framework-Nedir-Konseptleri-Nelerdir-1.png\" alt=\"Microsoft Agent Framework Nedir? Konseptleri Nelerdir?\" width=\"431\" height=\"363\" class=\"size-full wp-image-28126\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/10\/Microsoft-Agent-Framework-Nedir-Konseptleri-Nelerdir-1.png 431w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/10\/Microsoft-Agent-Framework-Nedir-Konseptleri-Nelerdir-1-300x253.png 300w\" sizes=\"auto, (max-width: 431px) 100vw, 431px\" \/><\/a><p id=\"caption-attachment-28126\" class=\"wp-caption-text\">Diyagram kayna\u011f\u0131 :<br \/>\n<a href=\"https:\/\/learn.microsoft.com\/en-us\/agent-framework\/media\/workflow.svg\" target=\"_blank\">https:\/\/learn.microsoft.com\/en-us\/agent-framework\/media\/workflow.svg<\/a><\/p><\/div>Yukar\u0131daki diyagrama g\u00f6z atarsan\u0131z e\u011fer, iki yapay zek\u00e2 agent&#8217;\u0131 ile bir fonksiyonu birbirine ba\u011flayan \u00f6rnek bir workflow g\u00f6receksiniz.<\/p>\n<p>Workflow&#8217;lar, ko\u015fullu y\u00f6nlendirme (conditional routing), model tabanl\u0131 karar verme (model-based decision making) ve e\u015fzamanl\u0131 y\u00fcr\u00fctme (concurrent execution) kullanarak dinamik i\u015flem dizilerini (dynamic sequences) de ifade edebilirler. \u0130\u015fte bu yap\u0131 sayesinde bizler, multi-agent orchestration pattern&#8217;lar\u0131 rahatl\u0131kla uygulayabilmekte ve birden fazla AI Agent&#8217;\u0131n koordinasyonunu sa\u011flayarak, \u00e7ok ad\u0131ml\u0131 karar noktalar\u0131 i\u00e7eren karma\u015f\u0131k g\u00f6revler \u00fczerinde birlikte \u00e7al\u0131\u015fabilen mekanizmalar olu\u015fturabilmekteyiz.<\/p>\n<blockquote><p><em style=\"color:#5497A1;\">Workflow, tek bir agent&#8217;\u0131n s\u0131n\u0131rlamalar\u0131n\u0131 a\u015fmak amac\u0131yla geli\u015ftirilmi\u015f bir yakla\u015f\u0131md\u0131r.<\/em><\/p><\/blockquote>\n<p><strong><em>Peki bu workflow hangi sorunlar\u0131 \u00e7\u00f6zmektedir?<\/em><\/strong><br \/>\nWorkflow&#8217;lar birden fazla ad\u0131m, karar noktas\u0131 ve farkl\u0131 sistemler veya agent&#8217;larla etkile\u015fim i\u00e7eren karma\u015f\u0131k s\u00fcre\u00e7leri y\u00f6netmek i\u00e7in yap\u0131land\u0131r\u0131lm\u0131\u015f bir y\u00f6ntem sunmaktad\u0131rlar. Yani workflow&#8217;larla, birden fazla AI Agent&#8217;\u0131n birlikte \u00e7al\u0131\u015fmas\u0131 gereken senaryolarda tasar\u0131mlarda bulunulmaktad\u0131r.<\/p>\n<blockquote><p><em style=\"color:gray;\">Workflow&#8217;lar, sistemin beyni olmasa da sinir a\u011f\u0131 gibi \u00e7al\u0131\u015fan yap\u0131s\u0131d\u0131r.<\/em><\/p><\/blockquote>\n<p>Agent Framework workflow&#8217;lar\u0131n\u0131n temel avantajlar\u0131n\u0131 a\u015fa\u011f\u0131daki gibi madde madde s\u0131ralayabiliriz;<\/p>\n<ul>\n<li><em><u>Mod\u00fclerlik<\/u><\/em><br \/>\nWorkflow&#8217;lar, daha k\u00fc\u00e7\u00fck ve yeniden kullan\u0131labilir bile\u015fenlere b\u00f6l\u00fcnebilmektedirler. B\u00f6ylece, tasar\u0131msal s\u00fcrecin bireysel b\u00f6l\u00fcmlerini y\u00f6netmeyi ve g\u00fcncellemeyi kolay k\u0131lmaktad\u0131rlar.\n<\/li>\n<li><em><u>Agent Entegrasyonu<\/u><\/em><br \/>\nWorkflow&#8217;lar, birden fazla AI Agent&#8217;\u0131n ve agent olmayan bile\u015fenlerin birlikte sofistike orkestrasyonunu m\u00fcmk\u00fcn k\u0131lmaktad\u0131rlar.\n<\/li>\n<li><em><u>T\u00fcr G\u00fcvenli\u011fi<\/u><\/em><br \/>\nStrong typing, bile\u015fenler aras\u0131ndaki mesajlar\u0131n do\u011fru bi\u00e7imde akmas\u0131n\u0131 ve aktar\u0131lmas\u0131n\u0131 sa\u011flamakta ve b\u00f6ylece, runtime error&#8217;lar m\u00fcmk\u00fcn mertebe \u00f6nlenebilmektedir.\n<\/li>\n<li><em><u>Esnek Ak\u0131\u015f<\/u><\/em><br \/>\nGraf tabanl\u0131 mimari (graph-based architecture), karma\u015f\u0131k i\u015f ak\u0131\u015flar\u0131n\u0131 sezgisel bi\u00e7imde modellemeye olanak tan\u0131maktad\u0131r.\n<\/li>\n<li><em><u>D\u0131\u015f Sistem Entegrasyonu<\/u><\/em><br \/>\nHarici API&#8217;lerle sorunsuz entegrasyon sa\u011flamakta ve insan fakt\u00f6rl\u00fc senaryolar\u0131 da rahatl\u0131kla desteklemektedir.\n<\/li>\n<li><em><u>Durum Kayd\u0131 (Checkpointing)<\/u><\/em><br \/>\nWorkflow durumlar\u0131, kontrol noktalar\u0131 (checkpoint) arac\u0131l\u0131\u011f\u0131yla kaydedilebilmektedir. Bu \u00f6zellik ile uzun s\u00fcreli i\u015flemlerin sunucu taraf\u0131nda yeniden ba\u015flat\u0131lmas\u0131na ve s\u00fcrd\u00fcr\u00fclebilmesine olanak tan\u0131nmaktad\u0131r.\n<\/li>\n<li><em><u>Multi-Agent Orchestration<\/u><\/em><br \/>\nBirden fazla AI Agent&#8217;\u0131n koordinasyonu i\u00e7in yerle\u015fik kal\u0131plar sunmaktad\u0131r. Bu kal\u0131plar; (\u00f6nceki <a href=\"https:\/\/www.gencayyildiz.com\/blog\/semantic-kernel-ile-multi-agent-orchestration\/\" target=\"_blank\">Semantic Kernel \u0130le Multi-agent Orchestration<\/a> ba\u015fl\u0131kl\u0131 makalemizde bahsedilen) <a href=\"https:\/\/www.gencayyildiz.com\/blog\/tag\/sequential-orchestration\/\" target=\"_blank\">sequential<\/a>, <a href=\"https:\/\/www.gencayyildiz.com\/blog\/tag\/concurrent-orchestration\/\" target=\"_blank\">concurrent<\/a>, <a href=\"https:\/\/www.gencayyildiz.com\/blog\/tag\/handoff-orchestration\/\" target=\"_blank\">hand-off<\/a> ve <a href=\"https:\/\/www.gencayyildiz.com\/blog\/tag\/magentic-orchestration\/\" target=\"_blank\">Magentic<\/a> gibi davran\u0131\u015flar\u0131 i\u00e7ermektedir.\n<\/li>\n<li><em><u>Birle\u015ftirilebilirlik<\/u><\/em><br \/>\nWorkflow&#8217;lar, i\u00e7 i\u00e7e (nested) veya birle\u015ftirilmi\u015f (combined) bi\u00e7imde tan\u0131mlanabilmekte ve b\u00f6ylece s\u00fcre\u00e7ler \u00f6l\u00e7eklenebilir ve uyarlanabilir (adaptable) hale getirilebilmektedir.\n<\/li>\n<\/ul>\n<\/ul>\n<p>G\u00f6r\u00fcnen o ki, art\u0131k <em>Microsoft Agent Framework<\/em>\u2019e ili\u015fkin fark\u0131ndal\u0131k kazan\u0131lm\u0131\u015f ve \u00f6zellikle AI Agent ile Workflow kavramlar\u0131n\u0131n teorik temelleri anla\u015f\u0131lm\u0131\u015f durumdad\u0131r diyebiliriz. Bu noktada, i\u00e7eri\u011fimizin sonuna yakla\u015f\u0131rken, Agent Framework\u2019e h\u0131zl\u0131 bir ba\u015flang\u0131\u00e7 yapmam\u0131za imk\u00e2n tan\u0131yacak uygulamal\u0131 bir \u00f6rnek \u00fczerinde durmak yararl\u0131 olacakt\u0131r.<\/p>\n<h4>H\u0131zl\u0131 Ba\u015flang\u0131\u00e7<\/h4>\n<p>\u0130\u00e7eri\u011fimizin nihai noktas\u0131nda, Agent Framework&#8217;\u00fcn pratik kullan\u0131m\u0131na temas ederek konuyu b\u00fct\u00fcnlemek yerinde olacakt\u0131r kanaatindeyim.<\/p>\n<p>Evet&#8230; Her \u015feyden \u00f6nce <em>Microsoft Agent Framework<\/em>&#8216;\u00fc kullanabilmek i\u00e7in ilgili projeye <code><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Agents.AI\" target=\"_blank\">Microsoft.Agents.AI<\/a><\/code> ve <code><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Agents.AI.OpenAI\" target=\"_blank\">Microsoft.Agents.AI.OpenAI<\/a><\/code> k\u00fct\u00fcphanelerinin dahil edilmesi gerekmektedir.<\/p>\n<p>Bu i\u015flemden sonra basit bir AI Agent mant\u0131\u011f\u0131nda \u00e7al\u0131\u015fmay\u0131 a\u015fa\u011f\u0131daki gibi sergileyebilirsiniz;<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nusing Microsoft.Agents.AI;\r\nusing OpenAI;\r\n\r\nstring key = &quot;sk-or-v1-0b*****71c960907&quot;;\r\nstring model = &quot;qwen\/qwen3-vl-8b-instruct&quot;;\r\nstring endpoint = &quot;https:\/\/openrouter.ai\/api\/v1&quot;;\r\n\r\nAIAgent agent = new OpenAIClient(\r\n    credential: new System.ClientModel.ApiKeyCredential(key: key),\r\n    options: new OpenAIClientOptions { Endpoint = new Uri(endpoint) })\r\n        .GetChatClient(model: model)\r\n        .CreateAIAgent(name: &quot;Assistant&quot;, instructions: &quot;Sen bir asistans\u0131n...&quot;);\r\n\r\nvar result = await agent.RunAsync(&quot;Nas\u0131ls\u0131n?&quot;);\r\nConsole.WriteLine(result.Text);\r\n<\/pre>\n<\/div>\n<p>Evet, en yal\u0131n haliyle bir AI Agent&#8217;\u0131 olu\u015fturmak esas\u0131nda bu kadar basit \ud83d\ude42<\/p>\n<p>Haz\u0131r el atm\u0131\u015fken olay\u0131 biraz daha komplike hale getirelim ve <a href=\"https:\/\/www.gencayyildiz.com\/blog\/model-context-protocol-mcp-nedir-derinlemesine-degerlendirelim\/\" target=\"_blank\">MCP Server<\/a> kullanabilen bir AI Agent geli\u015ftirelim derim. Bunun i\u00e7in de <a href=\"https:\/\/www.gencayyildiz.com\/blog\/autogen-ile-semantic-kernel-kullanimi-ve-mcp-destegi\/\" target=\"_blank\">AutoGen \u0130le Semantic Kernel Kullan\u0131m\u0131 ve MCP Deste\u011fi<\/a> ba\u015fl\u0131kl\u0131 makalemizde yapt\u0131\u011f\u0131m\u0131z gibi <em>mcpverse.dev<\/em> platformu \u00fczerinden <em>Todoist<\/em> MCP Server&#8217;\u0131na ba\u011flant\u0131 sa\u011flayal\u0131m. Tabi bu \u00e7al\u0131\u015fma i\u00e7in ilgili platform ve Todoist \u00fczerinden MCP Server i\u00e7in gerekli yap\u0131land\u0131rmalar\u0131 tekrar etmeyecek, bizzat referans etti\u011fim yaz\u0131daki gibi konfig\u00fcrasyonlarda bulunup, bu k\u0131s\u0131mlar\u0131 bildi\u011finizi ve uygulad\u0131\u011f\u0131n\u0131z\u0131 varsayaca\u011f\u0131m.<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nstring todoistEndpoint = &quot;https:\/\/api.mcpverse.dev\/api\/mcp\/sse?server_id=61*****c94a11c&quot;;\r\nstring mcpverseKey = &quot;sk_HCUVYVaHqcNi_WUN7HMv***********5VhPzUFSL&quot;;\r\nstring key = &quot;sk-or-v1-0b5c714d5ff3b4*********3b77671c960907&quot;;\r\nstring model = &quot;qwen\/qwen3-vl-8b-instruct&quot;;\r\nstring endpoint = &quot;https:\/\/openrouter.ai\/api\/v1&quot;;\r\n\r\n\r\nvar clientTransport = new HttpClientTransport(new HttpClientTransportOptions\r\n{\r\n    Endpoint = new Uri(todoistEndpoint),\r\n    Name = &quot;Todolist&quot;,\r\n    AdditionalHeaders = new Dictionary&lt;string, string&gt;() { &#x5B;&quot;Authorization&quot;] = $&quot;Bearer {mcpverseKey}&quot; }\r\n});\r\n\r\nvar clientOptions = new McpClientOptions()\r\n{\r\n    ClientInfo = new Implementation()\r\n    {\r\n        Name = &quot;TodolistClient&quot;,\r\n        Version = &quot;1.0.0&quot;\r\n    }\r\n};\r\n\r\n\r\nMcpClient _mcpClient = await McpClient.CreateAsync(clientTransport: clientTransport, clientOptions: clientOptions);\r\nvar tools = await _mcpClient.ListToolsAsync();\r\n\r\nAIAgent agent = new OpenAIClient(\r\n    credential: new System.ClientModel.ApiKeyCredential(key: key),\r\n    options: new OpenAIClientOptions { Endpoint = new Uri(endpoint) })\r\n        .GetChatClient(&quot;qwen\/qwen3-vl-8b-instruct&quot;)\r\n        .CreateAIAgent(name: &quot;Assistant&quot;, instructions: &quot;Sen bir asistans\u0131n...&quot;, tools: tools.Cast&lt;AITool&gt;().ToList());\r\n\r\nwhile (true)\r\n{\r\n    Console.Write(&quot;Talimat ver : &quot;);\r\n    string prompt = Console.ReadLine();\r\n    var result = await agent.RunAsync(prompt);\r\n    Console.WriteLine($&quot;Cevap : {result.Text}&quot;);\r\n}\r\n<\/pre>\n<\/div>\n<p>Burada MCP Server&#8217;dan gelen tool&#8217;lar\u0131n <em>32.<\/em> sat\u0131rda &#8216;tools&#8217; parametresine eklendi\u011fine dikkatinizi \u00e7ekerim. \u0130\u015fte bu kadar basit \ud83d\ude42<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/10\/Microsoft-Agent-Framework-Nedir-Konseptleri-Nelerdir-2.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/10\/Microsoft-Agent-Framework-Nedir-Konseptleri-Nelerdir-2.png\" alt=\"Microsoft Agent Framework Nedir? Konseptleri Nelerdir?\" width=\"1140\" height=\"202\" class=\"aligncenter size-full wp-image-28127\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/10\/Microsoft-Agent-Framework-Nedir-Konseptleri-Nelerdir-2.png 1140w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/10\/Microsoft-Agent-Framework-Nedir-Konseptleri-Nelerdir-2-300x53.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/10\/Microsoft-Agent-Framework-Nedir-Konseptleri-Nelerdir-2-1024x181.png 1024w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/10\/Microsoft-Agent-Framework-Nedir-Konseptleri-Nelerdir-2-768x136.png 768w\" sizes=\"auto, (max-width: 1140px) 100vw, 1140px\" \/><\/a>Evet, buradaki basit dokunu\u015flardan yola \u00e7\u0131karak <em>Agent Framework<\/em>&#8216;\u00fcn, <em>Semantic Kernel<\/em> ve <em>AutoGen<\/em>&#8216;e nazaran daha h\u0131zl\u0131 yap\u0131land\u0131r\u0131labildi\u011fini ve bu do\u011frultuda basit olsa da olduk\u00e7a etkili oldu\u011funu s\u00f6yleyebiliriz.<\/p>\n<p>Nihai olarak,<\/p>\n<p>Sonraki yaz\u0131lar\u0131mda \u00f6zellikle workflow yap\u0131lanmas\u0131n\u0131 pratiksel olarak ele alacak ve farkl\u0131 davran\u0131\u015flar ve pattern&#8217;lar e\u015fli\u011finde AI Agent&#8217;lar\u0131n nas\u0131l geli\u015ftirilece\u011fine bu framework \u00e7er\u00e7evesinde temas ediyor olaca\u011f\u0131z. Bizler \u015fimdilik bu giri\u015f yaz\u0131s\u0131n\u0131 burada nihayete erdirip, noktalayal\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<p>Not : \u00d6rnek \u00e7al\u0131\u015fmaya a\u015fa\u011f\u0131daki GitHub adresinden eri\u015febilirsiniz.<br \/>\n<a href=\"https:\/\/github.com\/gncyyldz\/Microsoft_Agent_Framework_Quick_Start\" target=\"_blank\">https:\/\/github.com\/gncyyldz\/Microsoft_Agent_Framework_Quick_Start<\/a><\/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 .NET uygulamalar\u0131nda yapay zek\u00e2 \u00e7al\u0131\u015fmalar\u0131n\u0131 daha elveri\u015fli ve profesyonel bir \u015fekilde y\u00fcr\u00fctmemizi sa\u011flayacak olan, \u00f6zellikle multi-agent i\u015f ak\u0131\u015flar\u0131n\u0131 geli\u015ftirmek i\u00e7in optimize edilerek, yeni bir altyap\u0131 tasar\u0131s\u0131yla bizlere sunulan Microsoft Agent Framework&#8216;\u00fc&#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":28129,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5206,5222,5220],"tags":[5502,5306,5308,5503,5501,5499,5500,5505,5504,5506],"class_list":["post-28116","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-net","category-llm","category-yapay-zeka-ai","tag-agent-framework","tag-ai-agent","tag-ai-agent-nedir","tag-ai-agents","tag-maf","tag-microsoft-agent-framework","tag-microsoft-agent-framework-nedir","tag-workflow","tag-workflows","tag-workflows-nedir"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/28116","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=28116"}],"version-history":[{"count":10,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/28116\/revisions"}],"predecessor-version":[{"id":28130,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/28116\/revisions\/28130"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/28129"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=28116"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=28116"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=28116"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}