{"id":33618,"date":"2025-11-05T05:01:32","date_gmt":"2025-11-05T02:01:32","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/pydanticai-ile-akilli-ajanlar-olusturma-kapsamli-bir-giris\/"},"modified":"2025-11-05T05:01:32","modified_gmt":"2025-11-05T02:01:32","slug":"pydanticai-ile-akilli-ajanlar-olusturma-kapsamli-bir-giris","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/pydanticai-ile-akilli-ajanlar-olusturma-kapsamli-bir-giris\/","title":{"rendered":"PydanticAI ile Ak\u0131ll\u0131 Ajanlar Olu\u015fturma: Kapsaml\u0131 Bir Giri\u015f"},"content":{"rendered":"<p><body><\/p>\n<p>PydanticAI ile ak\u0131ll\u0131 yapay zeka ajanlar\u0131 olu\u015fturman\u0131n temel prensiplerini ke\u015ffedin. Ad\u0131m ad\u0131m rehberimizle kendi otonom sistemlerinizi kolayca hayata ge\u00e7irin ve i\u015f s\u00fcre\u00e7lerinizi d\u00f6n\u00fc\u015ft\u00fcr\u00fcn. Bu makale, PydanticAI&#8217;\u0131n g\u00fcc\u00fcn\u00fc kullanarak i\u015f ak\u0131\u015flar\u0131n\u0131z\u0131 nas\u0131l otomatikle\u015ftirebilece\u011finizi, veri entegrasyonunu nas\u0131l kolayla\u015ft\u0131rabilece\u011finizi ve karma\u015f\u0131k problemleri \u00e7\u00f6zmek i\u00e7in nas\u0131l ak\u0131ll\u0131 sistemler geli\u015ftirebilece\u011finizi derinlemesine inceleyecek. Yapay zeka ajanlar\u0131n\u0131n \u00f6nemini anlamaktan ba\u015flay\u0131p, PydanticAI&#8217;\u0131n temel bile\u015fenlerini \u00f6\u011frenerek ve ger\u00e7ek d\u00fcnya senaryolar\u0131yla uygulamal\u0131 \u00f6rnekler \u00fczerinde \u00e7al\u0131\u015farak kendi ak\u0131ll\u0131 sistemlerinizi in\u015fa etme yolculu\u011funa \u00e7\u0131kmaya haz\u0131r olun. B\u00f6ylece, hem yeni ba\u015flayanlar hem de deneyimli geli\u015ftiriciler i\u00e7in de\u011ferli bilgiler sunmay\u0131 hedefliyoruz.<\/p>\n<p>G\u00fcn\u00fcm\u00fcz i\u015f d\u00fcnyas\u0131nda ve g\u00fcnl\u00fck ya\u015fant\u0131m\u0131zda, otomasyon ve verimlilik her zamankinden daha kritik bir \u00f6neme sahip. \u0130nsan kaynaklar\u0131n\u0131n zaman\u0131n\u0131n b\u00fcy\u00fck bir b\u00f6l\u00fcm\u00fc, tekrarlayan ve bazen s\u0131k\u0131c\u0131 g\u00f6revlerle ge\u00e7erken, karma\u015f\u0131k karar alma s\u00fcre\u00e7leri de genellikle yava\u015f ve hatalara a\u00e7\u0131k olabiliyor. Yo\u011fun bilgi ak\u0131\u015f\u0131 ve s\u00fcrekli de\u011fi\u015fen piyasa ko\u015fullar\u0131 alt\u0131nda, i\u015fletmelerin \u00e7evik kalmas\u0131 ve rekabet avantaj\u0131n\u0131 korumas\u0131 giderek zorla\u015f\u0131yor. \u0130\u015fte tam da bu noktada, yapay zeka (YZ) ajanlar\u0131 devreye giriyor ve bu problemleri \u00e7\u00f6zmek i\u00e7in g\u00fc\u00e7l\u00fc bir potansiyel sunuyor.<\/p>\n<p>Yapay zeka ajanlar\u0131, belirli g\u00f6revleri otonom bir \u015fekilde yerine getirebilen, \u00e7evrelerini alg\u0131layabilen, bilgi i\u015fleyebilen, karar verebilen ve eylemler ger\u00e7ekle\u015ftirebilen yaz\u0131l\u0131m veya donan\u0131m sistemleridir. B\u00fcy\u00fck dil modellerinin (LLM&#8217;ler) son y\u0131llardaki inan\u0131lmaz geli\u015fimiyle birlikte, bu ajanlar art\u0131k sadece basit otomasyon g\u00f6revlerinin \u00f6tesine ge\u00e7erek, daha karma\u015f\u0131k muhakeme, planlama ve etkile\u015fim yetenekleri kazanm\u0131\u015f durumda. LLM&#8217;ler, ajanlara do\u011fal dili anlama ve \u00fcretme yetene\u011fi kazand\u0131rarak, onlar\u0131 insanlarla daha sezgisel bir \u015fekilde ileti\u015fim kurabilir hale getiriyor. Bu durum, ajanlar\u0131n m\u00fc\u015fteri hizmetlerinden finansal analize, yaz\u0131l\u0131m geli\u015ftirmeden ki\u015fisel asistanl\u0131\u011fa kadar geni\u015f bir yelpazede kullan\u0131lmas\u0131n\u0131 m\u00fcmk\u00fcn k\u0131l\u0131yor.<\/p>\n<p>Bir YZ ajan\u0131 d\u00fc\u015f\u00fcn\u00fcn: bir e-ticaret sitesinde m\u00fc\u015fteri sorular\u0131n\u0131 yan\u0131tlayan, stok durumunu kontrol eden, ki\u015fiselle\u015ftirilmi\u015f \u00fcr\u00fcn \u00f6nerileri sunan veya hatta karma\u015f\u0131k bir yaz\u0131l\u0131m projesinde kod yaz\u0131p test eden bir varl\u0131k. Bu t\u00fcr ajanlar, i\u015fletmeler i\u00e7in verimlili\u011fi art\u0131rman\u0131n, maliyetleri d\u00fc\u015f\u00fcrmenin ve insan hatalar\u0131n\u0131 minimize etmenin anahtar\u0131 olabilir. \u00d6rne\u011fin, bir finans ajan\u0131 piyasa verilerini analiz ederek potansiyel yat\u0131r\u0131m f\u0131rsatlar\u0131n\u0131 belirleyebilir veya bir sa\u011fl\u0131k ajan\u0131, hastan\u0131n semptomlar\u0131na g\u00f6re olas\u0131 te\u015fhisler hakk\u0131nda bilgi sa\u011flayabilir. Bu sistemler, 7\/24 kesintisiz \u00e7al\u0131\u015fabilme kapasiteleri sayesinde, s\u00fcrekli ve tutarl\u0131 bir performans sunar. Dolay\u0131s\u0131yla, yapay zeka ajanlar\u0131 sadece bir teknolojik yenilik olman\u0131n \u00f6tesinde, i\u015f yap\u0131\u015f \u015fekillerimizi ve hayat\u0131m\u0131z\u0131 derinden etkileyecek stratejik bir d\u00f6n\u00fc\u015f\u00fcm\u00fcn de habercisi durumundad\u0131r. Bu nedenle, ajan geli\u015ftirme yeteneklerini kazanmak, g\u00fcn\u00fcm\u00fcz\u00fcn ve gelece\u011fin teknoloji d\u00fcnyas\u0131nda vazge\u00e7ilmez bir beceri haline gelmektedir.<\/p>\n<h2>PydanticAI Nedir ve Ajan Geli\u015ftirmede Nas\u0131l Bir Rol Oynar?<\/h2>\n<p>Yapay zeka ajanlar\u0131n\u0131n potansiyelinden bahsettik; peki bu ajanlar\u0131 g\u00fcvenilir, bak\u0131m\u0131 kolay ve \u00f6l\u00e7eklenebilir bir \u015fekilde nas\u0131l olu\u015ftururuz? \u0130\u015fte bu noktada PydanticAI devreye giriyor. PydanticAI, Python ekosisteminde veri do\u011frulama ve modelleme konusunda devrim yaratan Pydantic k\u00fct\u00fcphanesinin \u00fczerine in\u015fa edilmi\u015f, \u00f6zellikle yapay zeka ajanlar\u0131 ve b\u00fcy\u00fck dil modelleriyle (LLM&#8217;ler) etkile\u015fimleri kolayla\u015ft\u0131rmak i\u00e7in tasarlanm\u0131\u015f g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r. Geli\u015ftiricilerin LLM&#8217;lerden gelen yap\u0131land\u0131r\u0131lm\u0131\u015f veya yap\u0131land\u0131r\u0131lmam\u0131\u015f \u00e7\u0131kt\u0131y\u0131 g\u00fcvenle i\u015flemesine olanak tan\u0131r, bu da ajanlar\u0131n daha \u00f6ng\u00f6r\u00fclebilir ve hatas\u0131z \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar.<\/p>\n<p>Temel Pydantic k\u00fct\u00fcphanesi, Python veri s\u0131n\u0131flar\u0131 ve tip ipu\u00e7lar\u0131 (type hints) kullanarak veri modelleri tan\u0131mlaman\u0131za olanak tan\u0131r. Bu modeller, verinin belirli bir yap\u0131ya uygun olup olmad\u0131\u011f\u0131n\u0131 otomatik olarak do\u011frular ve d\u00f6n\u00fc\u015f\u00fcm\u00fcn\u00fc sa\u011flar. PydanticAI ise bu g\u00fcc\u00fc, yapay zeka ajanlar\u0131n\u0131n d\u00fcnyas\u0131na ta\u015f\u0131yor. LLM&#8217;ler genellikle serbest bi\u00e7imli metin \u00e7\u0131kt\u0131s\u0131 \u00fcretir ve bu \u00e7\u0131kt\u0131lar\u0131n belirli bir formatta olmas\u0131 gerekti\u011finde (\u00f6rne\u011fin, bir JSON objesi veya belirli bir fonksiyon \u00e7a\u011fr\u0131s\u0131) PydanticAI, bu beklentiyi kar\u015f\u0131lamak i\u00e7in devreye girer. Ajan\u0131n bir LLM&#8217;den ald\u0131\u011f\u0131 yan\u0131t\u0131 belirli bir Pydantic modeliyle do\u011frular, b\u00f6ylece yanl\u0131\u015f veya beklenmedik formatta gelen verilerin neden olabilece\u011fi hatalar\u0131n \u00f6n\u00fcne ge\u00e7er.<\/p>\n<p>PydanticAI&#8217;\u0131n agent geli\u015ftirmedeki rol\u00fc olduk\u00e7a kapsaml\u0131d\u0131r. \u0130lk olarak, <b>tip g\u00fcvenli\u011fi ve do\u011frulama<\/b> sa\u011flar. Bir LLM&#8217;nin belirli bir i\u015flev \u00e7a\u011fr\u0131s\u0131 yapmas\u0131n\u0131 istedi\u011finizde, PydanticAI bu \u00e7a\u011fr\u0131n\u0131n parametrelerinin do\u011fru tiplerde ve do\u011fru formatta oldu\u011fundan emin olur. Bu, ajan\u0131n harici ara\u00e7larla (API&#8217;ler, veritabanlar\u0131 vb.) etkile\u015fimini \u00e7ok daha g\u00fcvenilir hale getirir. \u0130kinci olarak, <b>yap\u0131land\u0131r\u0131lm\u0131\u015f \u00e7\u0131kt\u0131lar\u0131 kolayla\u015ft\u0131r\u0131r<\/b>. LLM&#8217;lerden JSON, XML veya di\u011fer yap\u0131land\u0131r\u0131lm\u0131\u015f veri formatlar\u0131nda \u00e7\u0131kt\u0131 almak genellikle zorlu bir g\u00f6rev olabilir. PydanticAI, bu \u00e7\u0131kt\u0131lar\u0131 Pydantic modellerine d\u00f6n\u00fc\u015ft\u00fcrerek, geli\u015ftiricilerin bunlar\u0131 kolayca kullanmas\u0131n\u0131 ve i\u015flemesini sa\u011flar. \u00dc\u00e7\u00fcnc\u00fc olarak, <b>kodun okunabilirli\u011fini ve bak\u0131m\u0131n\u0131 art\u0131r\u0131r<\/b>. Ajan\u0131n davran\u0131\u015f\u0131n\u0131 ve kulland\u0131\u011f\u0131 ara\u00e7lar\u0131 Pydantic modelleriyle tan\u0131mlamak, kodu daha anla\u015f\u0131l\u0131r hale getirir ve gelecekteki de\u011fi\u015fiklikleri kolayla\u015ft\u0131r\u0131r.<\/p>\n<p>PydanticAI, sadece \u00e7\u0131kt\u0131y\u0131 do\u011frulamakla kalmaz, ayn\u0131 zamanda ajan\u0131n <b>belle\u011fini, ara\u00e7lar\u0131n\u0131 ve davran\u0131\u015flar\u0131n\u0131<\/b> da modellemek i\u00e7in kullan\u0131labilir. Ajan\u0131n ge\u00e7mi\u015f etkile\u015fimlerini saklad\u0131\u011f\u0131 bellek yap\u0131lar\u0131, kullanabilece\u011fi harici ara\u00e7lar\u0131n tan\u0131mlar\u0131 ve hatta ajan\u0131n i\u00e7 karar mekanizmalar\u0131 bile Pydantic s\u0131n\u0131flar\u0131 arac\u0131l\u0131\u011f\u0131yla g\u00fc\u00e7l\u00fc bir \u015fekilde ifade edilebilir. Bu, karma\u015f\u0131k ajan sistemlerinin bile mod\u00fcler, anla\u015f\u0131l\u0131r ve s\u00fcrd\u00fcr\u00fclebilir bir \u015fekilde in\u015fa edilmesine olanak tan\u0131r. \u00d6zetle, PydanticAI, yapay zeka ajanlar\u0131n\u0131 geli\u015ftirirken kar\u015f\u0131la\u015f\u0131lan en b\u00fcy\u00fck zorluklardan biri olan LLM etkile\u015fimlerinin belirsizli\u011fini ortadan kald\u0131rarak, ajanlar\u0131n daha g\u00fcvenilir, tutarl\u0131 ve etkili \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayan vazge\u00e7ilmez bir \u00e7er\u00e7eve sunar.<\/p>\n<h3>PydanticAI&#8217;\u0131n Temel Bile\u015fenleri Nelerdir?<\/h3>\n<p>PydanticAI \u00e7at\u0131s\u0131 alt\u0131nda, bir yapay zeka ajan\u0131n\u0131 olu\u015fturmak ve y\u00f6netmek i\u00e7in bir dizi temel bile\u015fen bulunur. Bu bile\u015fenler, ajan\u0131n \u00e7evresiyle etkile\u015fimini, karar alma s\u00fcre\u00e7lerini ve genel i\u015fleyi\u015fini \u015fekillendirir. Bu bile\u015fenleri anlamak, PydanticAI&#8217;\u0131n g\u00fcc\u00fcn\u00fc tam olarak kullanman\u0131za yard\u0131mc\u0131 olacakt\u0131r:<\/p>\n<ul>\n<li><strong><code>Agent<\/code> S\u0131n\u0131f\u0131:<\/strong> PydanticAI&#8217;\u0131n kalbi niteli\u011findedir. Temel olarak, bir ajan davran\u0131\u015f\u0131n\u0131, \u00f6zelliklerini (ad\u0131, a\u00e7\u0131klamas\u0131, sahip oldu\u011fu ara\u00e7lar) ve LLM etkile\u015fimini tan\u0131mlad\u0131\u011f\u0131n\u0131z ana yap\u0131d\u0131r. Bu s\u0131n\u0131f, ajan\u0131n karma\u015f\u0131k g\u00f6revleri \u00fcstlenmesini ve \u00e7evresiyle etkile\u015fim kurmas\u0131n\u0131 sa\u011flar. Bir <code>Agent<\/code>, genellikle bir B\u00fcy\u00fck Dil Modelini (LLM) kullanarak kararlar verir, eylemler planlar ve sonu\u00e7lar\u0131 yorumlar.<\/li>\n<li><strong><code>Tool<\/code> Entegrasyonlar\u0131:<\/strong> Ajanlar\u0131n \u00e7evreleriyle etkile\u015fim kurmalar\u0131n\u0131 sa\u011flayan temel mekanizmalard\u0131r. Bir ajan, sadece LLM&#8217;nin kendi bilgi taban\u0131yla s\u0131n\u0131rl\u0131 kalmamal\u0131, ayn\u0131 zamanda harici sistemlerle (veritabanlar\u0131, API&#8217;ler, web siteleri vb.) etkile\u015fime girebilmelidir. PydanticAI, bu harici i\u015flevleri <code>Tool<\/code> s\u0131n\u0131flar\u0131 olarak tan\u0131mlaman\u0131za olanak tan\u0131r. Her <code>Tool<\/code>, belirli bir g\u00f6revi yerine getiren bir veya daha fazla metod i\u00e7erir ve Pydantic&#8217;in tipi ipu\u00e7lar\u0131 sayesinde, LLM&#8217;nin bu ara\u00e7lar\u0131 do\u011fru parametrelerle \u00e7a\u011f\u0131rmas\u0131 kolayla\u015f\u0131r. \u00d6rne\u011fin, bir &#8220;Hava Durumu Arac\u0131&#8221; belirli bir \u015fehir i\u00e7in hava durumu bilgisini \u00e7ekebilir veya bir &#8220;Veritaban\u0131 Arac\u0131&#8221; belirli bir sorguyu \u00e7al\u0131\u015ft\u0131rabilir.<\/li>\n<li><strong><code>Memory<\/code> Y\u00f6netimi:<\/strong> Ajanlar\u0131n ge\u00e7mi\u015f etkile\u015fimlerini hat\u0131rlamalar\u0131n\u0131 ve bu bilgilere dayanarak daha bilin\u00e7li kararlar almalar\u0131n\u0131 sa\u011flayan yap\u0131d\u0131r. K\u0131sa s\u00fcreli bellek (\u00f6rne\u011fin, mevcut konu\u015fman\u0131n ge\u00e7mi\u015fi) ve uzun s\u00fcreli bellek (\u00f6rne\u011fin, kullan\u0131c\u0131 tercihleri veya \u00f6\u011frenilen bilgiler) gibi farkl\u0131 bellek t\u00fcrleri olabilir. PydanticAI, ajan\u0131n ge\u00e7mi\u015f mesajlar\u0131n\u0131 y\u00f6netmek ve gerekli oldu\u011funda LLM&#8217;ye sunmak i\u00e7in esnek bellek yap\u0131lar\u0131 sunar. Bu, ajan\u0131n ba\u011flam\u0131 korumas\u0131n\u0131 ve daha tutarl\u0131 bir diyalog s\u00fcrd\u00fcrmesini sa\u011flar.<\/li>\n<li><strong><code>AIModel<\/code> Tan\u0131m\u0131:<\/strong> Ajan\u0131n hangi B\u00fcy\u00fck Dil Modelini kullanaca\u011f\u0131n\u0131 belirten bile\u015fendir. PydanticAI, OpenAI gibi pop\u00fcler LLM sa\u011flay\u0131c\u0131lar\u0131n\u0131 destekler ve bu modelleri <code>AIModel<\/code> s\u0131n\u0131f\u0131 \u00fczerinden yap\u0131land\u0131rman\u0131za olanak tan\u0131r. Bu sayede, model ad\u0131, s\u0131cakl\u0131k (temperature) ve di\u011fer parametreleri kolayca ayarlayabilirsiniz. Modelin soyutlanmas\u0131, farkl\u0131 LLM&#8217;ler aras\u0131nda kolayca ge\u00e7i\u015f yapman\u0131z\u0131 sa\u011flar.<\/li>\n<li><strong><code>Message<\/code> ve <code>Action\/Observation<\/code> D\u00f6ng\u00fcs\u00fc:<\/strong> Ajan\u0131n LLM ile ve ara\u00e7lar\u0131yla olan etkile\u015fimini ifade eden temel mesaj birimleridir. Ajan bir <code>Action<\/code> (bir arac\u0131 \u00e7a\u011f\u0131rma) ger\u00e7ekle\u015ftirdi\u011finde, bir <code>Observation<\/code> (arac\u0131n \u00e7\u0131kt\u0131s\u0131) al\u0131r. Bu d\u00f6ng\u00fc, ajan\u0131n bir g\u00f6rev \u00fczerinde yinelemeli olarak \u00e7al\u0131\u015fmas\u0131n\u0131 ve plan\u0131n\u0131 dinamik olarak ayarlamas\u0131n\u0131 sa\u011flar. <code>Message<\/code> s\u0131n\u0131flar\u0131, bu etkile\u015fimlerin tip g\u00fcvenli bir \u015fekilde modellenmesine yard\u0131mc\u0131 olur.<\/li>\n<\/ul>\n<p>Bu bile\u015fenlerin bir araya gelmesiyle PydanticAI, g\u00fc\u00e7l\u00fc, \u00f6zerk ve anlaml\u0131 g\u00f6revleri yerine getirebilen yapay zeka ajanlar\u0131 geli\u015ftirmeniz i\u00e7in sa\u011flam bir temel sunar. Her bir bile\u015fen, ajan\u0131n karma\u015f\u0131k bir d\u00fcnyada etkili bir \u015fekilde hareket etmesini sa\u011flayacak \u015fekilde \u00f6zenle tasarlanm\u0131\u015ft\u0131r.<\/p>\n<h2>PydanticAI ile \u0130lk Ak\u0131ll\u0131 Ajan\u0131n\u0131z\u0131 Nas\u0131l Olu\u015fturursunuz?<\/h2>\n<p>Art\u0131k PydanticAI&#8217;\u0131n ne oldu\u011funu ve neden \u00f6nemli oldu\u011funu biliyoruz. \u015eimdi, bu bilgiyi prati\u011fe d\u00f6kerek PydanticAI ile ilk ak\u0131ll\u0131 ajan\u0131 nas\u0131l olu\u015fturaca\u011f\u0131m\u0131z\u0131 ad\u0131m ad\u0131m inceleyelim. Bu \u00f6rnekte, basit matematiksel i\u015flemler yapabilen bir hesaplama ajan\u0131 geli\u015ftirece\u011fiz.<\/p>\n<h3>Ad\u0131m 1: Gerekli K\u00fct\u00fcphaneleri Kurun<\/h3>\n<p>\u0130lk olarak, Python ortam\u0131n\u0131zda PydanticAI ve kulland\u0131\u011f\u0131n\u0131z LLM sa\u011flay\u0131c\u0131s\u0131n\u0131n k\u00fct\u00fcphanesini kurman\u0131z gerekiyor. Bu \u00f6rnek i\u00e7in OpenAI&#8217;\u0131 kullanaca\u011f\u0131z:<\/p>\n<pre><code class=\"language-bash\">\npip install pydantic-ai openai\n<\/pre>\n<p><\/code><\/p>\n<h3>Ad\u0131m 2: API Anahtar\u0131n\u0131z\u0131 Ayarlay\u0131n<\/h3>\n<p>OpenAI veya kulland\u0131\u011f\u0131n\u0131z di\u011fer LLM sa\u011flay\u0131c\u0131s\u0131n\u0131n API anahtar\u0131n\u0131 ortam de\u011fi\u015fkeni olarak ayarlaman\u0131z gerekmektedir. G\u00fcvenlik nedeniyle do\u011frudan kod i\u00e7inde saklamaktan ka\u00e7\u0131n\u0131n:<\/p>\n<pre><code class=\"language-python\">\nimport os\n# Kendi OpenAI API anahtar\u0131n\u0131z\u0131 buraya ekleyin veya ortam de\u011fi\u015fkenlerinden y\u00fckleyin\n# os.environ[\"OPENAI_API_KEY\"] = \"sk-...\"\n# Ya da .env dosyas\u0131 kullan\u0131yorsan\u0131z:\n# from dotenv import load_dotenv\n# load_dotenv()\n<\/pre>\n<p><\/code><\/p>\n<h3>Ad\u0131m 3: Bir Ara\u00e7 (Tool) Tan\u0131mlay\u0131n<\/h3>\n<p>Ajan\u0131m\u0131z\u0131n matematiksel i\u015flemler yapabilmesi i\u00e7in bir \"Hesap Makinesi\" arac\u0131 tan\u0131mlamam\u0131z gerekiyor. PydanticAI'da ara\u00e7lar, <code>Tool<\/code> s\u0131n\u0131f\u0131ndan t\u00fcretilir ve i\u00e7indeki metodlar ajan\u0131n kullanabilece\u011fi fonksiyonlar\u0131 temsil eder. Metotlar\u0131n imzalar\u0131, LLM'nin bu arac\u0131 nas\u0131l \u00e7a\u011f\u0131raca\u011f\u0131n\u0131 anlamas\u0131 i\u00e7in \u00f6nemlidir.<\/p>\n<pre><code class=\"language-python\">\nfrom pydantic_ai import Tool\nfrom pydantic import Field\n\nclass CalculatorTool(Tool):\n    # Bu arac\u0131n amac\u0131n\u0131 a\u00e7\u0131klayan k\u0131sa bir a\u00e7\u0131klama. LLM'nin arac\u0131 ne zaman kullanaca\u011f\u0131n\u0131 anlamas\u0131na yard\u0131mc\u0131 olur.\n    description: str = \"Verilen iki say\u0131y\u0131 toplamak veya \u00e7arpmak i\u00e7in kullan\u0131l\u0131r.\"\n\n    def sum_numbers(self, a: float, b: float) -> float:\n        \"\"\"\u0130ki say\u0131y\u0131 toplar ve sonucu d\u00f6nd\u00fcr\u00fcr.\"\"\"\n        print(f\"DEBUG: sum_numbers \u00e7a\u011fr\u0131ld\u0131: {a} + {b}\")\n        return a + b\n\n    def multiply_numbers(self, a: float, b: float) -> float:\n        \"\"\"\u0130ki say\u0131y\u0131 \u00e7arpar ve sonucu d\u00f6nd\u00fcr\u00fcr.\"\"\"\n        print(f\"DEBUG: multiply_numbers \u00e7a\u011fr\u0131ld\u0131: {a} * {b}\")\n        return a * b\n<\/pre>\n<p><\/code><\/p>\n<p>Burada, <code>sum_numbers<\/code> ve <code>multiply_numbers<\/code> ad\u0131nda iki metod tan\u0131mlad\u0131k. Bu metodlar, LLM taraf\u0131ndan \u00e7a\u011fr\u0131labilir hale gelecek ve ajana matematiksel i\u015flem yetene\u011fi kazand\u0131racak. <code>description<\/code> alan\u0131, ajan\u0131n bu arac\u0131 ne zaman kullanmas\u0131 gerekti\u011fini anlamas\u0131na yard\u0131mc\u0131 olan kritik bir bilgidir.<\/p>\n<h3>Ad\u0131m 4: Ak\u0131ll\u0131 Ajan\u0131n\u0131z\u0131 Tan\u0131mlay\u0131n<\/h3>\n<p>\u015eimdi s\u0131ra, <code>Agent<\/code> s\u0131n\u0131f\u0131m\u0131z\u0131 olu\u015fturmaya geldi. Bu s\u0131n\u0131f, ajan\u0131n ad\u0131n\u0131, a\u00e7\u0131klamas\u0131n\u0131, kullanaca\u011f\u0131 LLM modelini ve sahip olaca\u011f\u0131 ara\u00e7lar\u0131 tan\u0131mlar. Bu sayede, ajan\u0131n kimli\u011fini ve yeteneklerini a\u00e7\u0131k\u00e7a belirlemi\u015f oluruz.<\/p>\n<pre><code class=\"language-python\">\nfrom pydantic_ai import Agent, AIModel\nimport os\n\nclass MathAgent(Agent):\n    name: str = \"Matematik Ajan\u0131\"\n    description: str = \"Matematiksel i\u015flemlerde yard\u0131mc\u0131 olan ak\u0131ll\u0131 bir ajan.\"\n    # Kulland\u0131\u011f\u0131m\u0131z LLM modelini belirtiyoruz. Genellikle \"gpt-4o-mini\" veya \"gpt-3.5-turbo\" gibi modeller tercih edilir.\n    # Field(default_factory=...) kullan\u0131m\u0131, her yeni ajan \u00f6rne\u011fi olu\u015fturuldu\u011funda yeni bir AIModel nesnesi olu\u015fturulmas\u0131n\u0131 sa\u011flar.\n    model: AIModel = Field(default_factory=lambda: AIModel(model_name=\"gpt-4o-mini\", api_key=os.getenv(\"OPENAI_API_KEY\"))) \n    # Ajan\u0131n kullanaca\u011f\u0131 ara\u00e7lar\u0131 listeliyoruz. Az \u00f6nce tan\u0131mlad\u0131\u011f\u0131m\u0131z CalculatorTool'u ekliyoruz.\n    tools: list[Tool] = Field(default_factory=lambda: [CalculatorTool()])\n\n    async def run_task(self, prompt: str):\n        \"\"\"Ajan\u0131n bir g\u00f6revi \u00e7al\u0131\u015ft\u0131rmas\u0131 i\u00e7in ana metod.\"\"\"\n        print(f\"\\n--- Yeni G\u00f6rev Ba\u015flad\u0131: {prompt} ---\")\n        # chat metodu, ajan\u0131n LLM ile etkile\u015fime girmesini sa\u011flar, gerekirse ara\u00e7lar\u0131 kullan\u0131r.\n        response = await self.chat(prompt)\n        print(f\"Ajan Yan\u0131t\u0131: {response}\")\n        print(f\"--- G\u00f6rev Tamamland\u0131 ---\")\n<\/pre>\n<p><\/code><\/p>\n<p><code>run_task<\/code> metodu, ajan\u0131n d\u0131\u015far\u0131dan ald\u0131\u011f\u0131 bir prompt'u i\u015flemek i\u00e7in ana giri\u015f noktas\u0131d\u0131r. <code>self.chat(prompt)<\/code> \u00e7a\u011fr\u0131s\u0131, PydanticAI'\u0131n sihrini ger\u00e7ekle\u015ftirdi\u011fi yerdir: LLM ile etkile\u015fime ge\u00e7er, ajan\u0131n tan\u0131m\u0131n\u0131 ve ara\u00e7lar\u0131n\u0131 LLM'ye sunar ve LLM'nin kararlar\u0131 do\u011frultusunda ara\u00e7lar\u0131 \u00e7a\u011f\u0131r\u0131r veya do\u011frudan bir yan\u0131t \u00fcretir.<\/p>\n<h3>Ad\u0131m 5: Ajan\u0131 \u00c7al\u0131\u015ft\u0131r\u0131n<\/h3>\n<p>\u015eimdi ajan\u0131m\u0131z\u0131 test etme zaman\u0131. Bir <code>async<\/code> fonksiyon i\u00e7inde ajan\u0131 ba\u015flat\u0131p farkl\u0131 g\u00f6revler vermeniz yeterlidir. Python'da <code>async<\/code> fonksiyonlar\u0131 \u00e7al\u0131\u015ft\u0131rmak i\u00e7in <code>asyncio<\/code> k\u00fct\u00fcphanesini kullan\u0131r\u0131z.<\/p>\n<pre><code class=\"language-python\">\nimport asyncio\n\nasync def main():\n    agent = MathAgent()\n    \n    # Ajan\u0131m\u0131za farkl\u0131 matematiksel g\u00f6revler verelim\n    await agent.run_task(\"5 ile 3'\u00fc toplar m\u0131s\u0131n?\")\n    await agent.run_task(\"10 ile 4'\u00fc \u00e7arpar m\u0131s\u0131n?\")\n    await agent.run_task(\"20 art\u0131 8 nedir?\")\n    await agent.run_task(\"6 ile 7'nin \u00e7arp\u0131m\u0131 nedir?\")\n    await agent.run_task(\"Bug\u00fcn hava nas\u0131l?\") # Bu g\u00f6revi yapamayacak, \u00e7\u00fcnk\u00fc arac\u0131 yok.\n\nif __name__ == \"__main__\":\n    asyncio.run(main())\n<\/pre>\n<p><\/code><\/p>\n<p>Bu kodu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, konsolda ajan\u0131n d\u00fc\u015f\u00fcnce s\u00fcrecini (e\u011fer LLM arac\u0131 kullanmay\u0131 tercih ederse) ve nihai yan\u0131tlar\u0131n\u0131 g\u00f6receksiniz. Matematiksel i\u015flemler i\u00e7in <code>CalculatorTool<\/code>'u kulland\u0131\u011f\u0131n\u0131 ve \"Bug\u00fcn hava nas\u0131l?\" gibi bir soruya ara\u00e7 kullanamad\u0131\u011f\u0131 i\u00e7in do\u011frudan LLM'nin bildi\u011fi kadar\u0131yla yan\u0131t vermeye \u00e7al\u0131\u015faca\u011f\u0131n\u0131 (veya yapamayaca\u011f\u0131n\u0131) fark edeceksiniz. PydanticAI, LLM'nin \u00e7a\u011f\u0131raca\u011f\u0131 fonksiyonlar\u0131 ve parametrelerini otomatik olarak yap\u0131land\u0131r\u0131r, b\u00f6ylece sizin ekstra bir \u00e7aba harcaman\u0131za gerek kalmaz.<\/p>\n<div class=\"alert alert-info\">\n  Uzman \u0130pucu: PydanticAI'\u0131n bu otomatik ara\u00e7 \u00e7a\u011f\u0131rma yetene\u011fi, LLM'nin \"function calling\" veya \"tool use\" gibi \u00f6zelliklerini ak\u0131ll\u0131ca kullan\u0131r. Bu sayede, karma\u015f\u0131k mant\u0131k yazmak yerine, sadece ara\u00e7lar\u0131n\u0131z\u0131 tan\u0131mlayarak ajan\u0131n ak\u0131ll\u0131ca davranmas\u0131n\u0131 sa\u011flayabilirsiniz.\n<\/div>\n<p>Bu basit \u00f6rnekle, PydanticAI'\u0131n temel prensiplerini ve ak\u0131ll\u0131 bir ajan olu\u015fturman\u0131n ne kadar kolay oldu\u011funu g\u00f6rm\u00fc\u015f olduk. \u015eimdi, bu bilgiyi daha karma\u015f\u0131k ve ger\u00e7ek d\u00fcnya senaryolar\u0131na ta\u015f\u0131yal\u0131m.<\/p>\n<h3>Ger\u00e7ek D\u00fcnya Senaryosu: Bir M\u00fc\u015fteri Destek Asistan\u0131<\/h3>\n<p>Bir e-ticaret \u015firketinde \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131z\u0131 ve m\u00fc\u015fteri hizmetleri ekibinin s\u00fcrekli ayn\u0131 sorularla bo\u011fu\u015ftu\u011funu hayal edin: \"\u00dcr\u00fcn X'in \u00f6zellikleri nelerdir?\", \"Sipari\u015fimin durumu nedir?\", \"\u0130ade ko\u015fullar\u0131 nelerdir?\". Bu t\u00fcr tekrarlayan sorular, insan kaynaklar\u0131 \u00fczerinde b\u00fcy\u00fck bir y\u00fck olu\u015fturur ve yan\u0131t s\u00fcrelerini uzat\u0131r. \u0130\u015fte bu noktada, PydanticAI ile geli\u015ftirilmi\u015f bir ak\u0131ll\u0131 m\u00fc\u015fteri destek asistan\u0131, hem m\u00fc\u015fteri memnuniyetini art\u0131rabilir hem de operasyonel verimlili\u011fi sa\u011flayabilir.<\/p>\n<h4>Problem ve \u00c7\u00f6z\u00fcm<\/h4>\n<p><strong>Problem:<\/strong> M\u00fc\u015fteri destek ekiplerinin y\u00fcksek i\u015f y\u00fck\u00fc, s\u0131k\u00e7a sorulan sorulara yava\u015f yan\u0131t verme, tutars\u0131z bilgi ak\u0131\u015f\u0131 ve 7\/24 hizmet verememe. Bu durum, m\u00fc\u015fteri deneyimini olumsuz etkiler ve i\u015fletmeler i\u00e7in maliyetli olabilir.<\/p>\n<p><strong>\u00c7\u00f6z\u00fcm:<\/strong> PydanticAI tabanl\u0131 bir ak\u0131ll\u0131 m\u00fc\u015fteri destek asistan\u0131 geli\u015ftirmek. Bu ajan, do\u011fal dil kullanarak m\u00fc\u015fteri sorular\u0131n\u0131 anlayacak, \u015firket i\u00e7i sistemlere (\u00fcr\u00fcn veritaban\u0131, sipari\u015f y\u00f6netim sistemi) entegre ara\u00e7lar\u0131 kullanarak do\u011fru bilgiyi bulacak ve m\u00fc\u015fteriye h\u0131zl\u0131, tutarl\u0131 yan\u0131tlar verecektir.<\/p>\n<h4>Gerekli Ara\u00e7lar ve Ajandaki Rolleri<\/h4>\n<p>M\u00fc\u015fteri destek asistan\u0131m\u0131z\u0131n iki temel araca ihtiyac\u0131 olacak:<\/p>\n<ol>\n<li><strong><code>ProductDatabaseTool<\/code> (\u00dcr\u00fcn Veritaban\u0131 Arac\u0131):<\/strong> Bu ara\u00e7, \u015firketin \u00fcr\u00fcn katalo\u011fundan \u00fcr\u00fcn \u00f6zelliklerini, fiyatlar\u0131n\u0131 veya stok durumunu sorgulayabilir. M\u00fc\u015fteriler \"Ak\u0131ll\u0131 saatin \u00f6zellikleri nelerdir?\" diye sordu\u011funda, bu ara\u00e7 devreye girecektir.<\/li>\n<li><strong><code>OrderAPITool<\/code> (Sipari\u015f API Arac\u0131):<\/strong> Bu ara\u00e7, bir m\u00fc\u015fterinin sipari\u015f numaras\u0131n\u0131 kullanarak sipari\u015f durumunu veya teslimat bilgisini sorgulayabilir. \"Sipari\u015fimin durumu nedir?\" gibi sorular i\u00e7in bu ara\u00e7 vazge\u00e7ilmezdir.<\/li>\n<\/ol>\n<h4>Kod \u00d6rne\u011fi: M\u00fc\u015fteri Destek Asistan\u0131<\/h4>\n<p>\u015eimdi bu ara\u00e7lar\u0131 ve ajan\u0131 PydanticAI kullanarak nas\u0131l olu\u015fturaca\u011f\u0131m\u0131z\u0131 g\u00f6relim:<\/p>\n<pre><code class=\"language-python\">\nfrom pydantic_ai import Agent, Tool, AIModel\nfrom pydantic import Field\nimport os\nimport asyncio\n\n# os.environ[\"OPENAI_API_KEY\"] = \"sk-...\" # API anahtar\u0131n\u0131z\u0131 ayarlay\u0131n\n\n# 1. \u00dcr\u00fcn Veritaban\u0131 Arac\u0131n\u0131 Tan\u0131mla\nclass ProductDatabaseTool(Tool):\n    description: str = \"\u015eirketin \u00fcr\u00fcn veritaban\u0131ndan \u00fcr\u00fcn bilgilerini sorgulamak i\u00e7in kullan\u0131l\u0131r.\"\n\n    def get_product_details(self, product_name: str) -> str:\n        \"\"\"Verilen \u00fcr\u00fcn ad\u0131n\u0131n detaylar\u0131n\u0131 (\u00f6zellikler, fiyat vb.) d\u00f6nd\u00fcr\u00fcr.\"\"\"\n        print(f\"DEBUG: get_product_details \u00e7a\u011fr\u0131ld\u0131: {product_name}\")\n        if product_name.lower() == \"ak\u0131ll\u0131 saat\":\n            return \"Ak\u0131ll\u0131 saat: Kalp at\u0131\u015f\u0131 takibi, ad\u0131m sayar, bildirimler, suya dayan\u0131kl\u0131. Fiyat: 2500 TL. Stokta mevcut.\"\n        elif product_name.lower() == \"kablosuz kulakl\u0131k\":\n            return \"Kablosuz kulakl\u0131k: G\u00fcr\u00fclt\u00fc engelleme, 20 saat pil \u00f6mr\u00fc, y\u00fcksek ses kalitesi. Fiyat: 1200 TL. Stokta mevcut.\"\n        elif product_name.lower() == \"robot s\u00fcp\u00fcrge\":\n            return \"Robot S\u00fcp\u00fcrge: Otomatik \u015farj, haritalama, g\u00fc\u00e7l\u00fc \u00e7ekim. Fiyat: 4500 TL. Stokta mevcut de\u011fil.\"\n        else:\n            return f\"\u00dcr\u00fcn '{product_name}' veritaban\u0131nda bulunamad\u0131.\"\n\n# 2. Sipari\u015f API Arac\u0131n\u0131 Tan\u0131mla\nclass OrderAPITool(Tool):\n    description: str = \"Bir m\u00fc\u015fterinin sipari\u015f ID'sini kullanarak sipari\u015f durumunu sorgulamak i\u00e7in kullan\u0131l\u0131r.\"\n\n    def get_order_status(self, order_id: str) -> str:\n        \"\"\"Verilen sipari\u015f ID'sinin g\u00fcncel durumunu d\u00f6nd\u00fcr\u00fcr.\"\"\"\n        print(f\"DEBUG: get_order_status \u00e7a\u011fr\u0131ld\u0131: {order_id}\")\n        if order_id == \"ORD12345\":\n            return \"Sipari\u015finiz yolda, tahmini teslimat tarihi: 24.10.2023. Kargo takip no: TRK12345.\"\n        elif order_id == \"ORD67890\":\n            return \"Sipari\u015finiz teslim edildi. 19.10.2023 tarihinde.\"\n        else:\n            return f\"Ge\u00e7ersiz sipari\u015f ID: {order_id}. L\u00fctfen do\u011fru bir ID girin.\"\n\n# 3. M\u00fc\u015fteri Destek Ajan\u0131n\u0131 Tan\u0131mla\nclass CustomerSupportAgent(Agent):\n    name: str = \"M\u00fc\u015fteri Destek Ajan\u0131\"\n    description: str = \"M\u00fc\u015fteri sorular\u0131n\u0131 yan\u0131tlayan ve destek sa\u011flayan ak\u0131ll\u0131 bir ajan. \u00dcr\u00fcn bilgisi ve sipari\u015f durumu sorgulayabilir.\"\n    model: AIModel = Field(default_factory=lambda: AIModel(model_name=\"gpt-4o-mini\", api_key=os.getenv(\"OPENAI_API_KEY\")))\n    tools: list[Tool] = Field(default_factory=lambda: [ProductDatabaseTool(), OrderAPITool()])\n\n    async def handle_customer_query(self, query: str):\n        \"\"\"M\u00fc\u015fteri sorgusunu i\u015fler ve yan\u0131t d\u00f6nd\u00fcr\u00fcr.\"\"\"\n        print(f\"\\n--- Yeni M\u00fc\u015fteri Sorgusu: {query} ---\")\n        response = await self.chat(query)\n        print(f\"M\u00fc\u015fteri Destek Ajan\u0131: {response}\")\n        print(f\"--- Sorgu Tamamland\u0131 ---\")\n\n# 4. Ajan\u0131 \u00c7al\u0131\u015ft\u0131rma Ana Fonksiyonu\nasync def main_customer_support():\n    agent = CustomerSupportAgent()\n    print(\"--- M\u00fc\u015fteri Destek Ajan\u0131 Ba\u015flad\u0131 ---\")\n    \n    await agent.handle_customer_query(\"Ak\u0131ll\u0131 saat hakk\u0131nda bilgi verir misin?\")\n    await agent.handle_customer_query(\"ORD12345 numaral\u0131 sipari\u015fimin durumu nedir?\")\n    await agent.handle_customer_query(\"Kablosuz kulakl\u0131\u011f\u0131n fiyat\u0131 ne kadar?\")\n    await agent.handle_customer_query(\"Robot s\u00fcp\u00fcrge ne zaman stoklara girer?\")\n    await agent.handle_customer_query(\"X \u00fcr\u00fcn\u00fc hakk\u0131nda bilgi almak istiyorum.\")\n    await agent.handle_customer_query(\"Yeni bir sipari\u015f vermek istiyorum.\") # Ara\u00e7 gerektirmeyen bir soru\n    await agent.handle_customer_query(\"ORD99999 numaral\u0131 sipari\u015fimin durumu nedir?\")\n\n    print(\"--- M\u00fc\u015fteri Destek Ajan\u0131 Sona Erdi ---\")\n\nif __name__ == \"__main__\":\n    asyncio.run(main_customer_support())\n<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, <code>CustomerSupportAgent<\/code>, gelen sorular\u0131 analiz eder ve hangi arac\u0131 (<code>ProductDatabaseTool<\/code> veya <code>OrderAPITool<\/code>) kullanmas\u0131 gerekti\u011fine otonom olarak karar verir. E\u011fer bir soru i\u00e7in araca ihtiya\u00e7 duyulmazsa (\u00f6rne\u011fin \"Yeni bir sipari\u015f vermek istiyorum\"), do\u011frudan LLM kendi bilgisi dahilinde bir yan\u0131t \u00fcretir. Bu sayede, PydanticAI ile geli\u015ftirilen bu ajan, 7\/24 hizmet verebilen, s\u00fcrekli \u00f6\u011frenen ve insan destek ekibinin y\u00fck\u00fcn\u00fc hafifleten de\u011ferli bir asistan haline gelir.<\/p>\n<h2>Ajan Davran\u0131\u015f\u0131n\u0131 Y\u00f6netmek: Bellek, Ara\u00e7lar ve Karar Mekanizmalar\u0131<\/h2>\n<p>Bir yapay zeka ajan\u0131n\u0131n ger\u00e7ekten ak\u0131ll\u0131 ve kullan\u0131\u015fl\u0131 olmas\u0131, sadece g\u00f6revleri yerine getirmesinden \u00f6te, bu g\u00f6revleri nas\u0131l yerine getirdi\u011fine, ge\u00e7mi\u015f etkile\u015fimlerden nas\u0131l ders \u00e7\u0131kard\u0131\u011f\u0131na ve karma\u015f\u0131k durumlarda nas\u0131l karar verdi\u011fine ba\u011fl\u0131d\u0131r. PydanticAI, ajan\u0131n bu t\u00fcr sofistike davran\u0131\u015flar\u0131 sergileyebilmesi i\u00e7in g\u00fc\u00e7l\u00fc bile\u015fenler sunar: bellek, ara\u00e7lar ve karar mekanizmalar\u0131. Bu \u00fc\u00e7l\u00fc, bir ajan\u0131n \"zekas\u0131n\u0131\" olu\u015fturan temel s\u00fctunlard\u0131r.<\/p>\n<h4>Bellek: Ge\u00e7mi\u015ften Ders \u00c7\u0131karma Yetene\u011fi<\/h4>\n<p>Bir insan gibi, bir ajan\u0131n da ge\u00e7mi\u015fi hat\u0131rlamas\u0131 ve bu deneyimlerden \u00f6\u011frenmesi gerekir. Aksi takdirde, her etkile\u015fimde s\u0131f\u0131rdan ba\u015flar ve ba\u011flam\u0131 kaybeder. PydanticAI, ajanlar\u0131n belle\u011fi y\u00f6netmesi i\u00e7in esnek mekanizmalar sunar:<\/p>\n<ul>\n<li><strong>K\u0131sa S\u00fcreli Bellek (Conversation History):<\/strong> Ajan\u0131n mevcut diyalogdaki mesajlar\u0131 hat\u0131rlamas\u0131n\u0131 sa\u011flar. Bu, genellikle son birka\u00e7 etkile\u015fimi LLM'ye ba\u011flam olarak yeniden ileterek ger\u00e7ekle\u015ftirilir. PydanticAI'daki <code>Message<\/code> s\u0131n\u0131flar\u0131, bu ge\u00e7mi\u015fi yap\u0131land\u0131r\u0131lm\u0131\u015f bir \u015fekilde saklaman\u0131za ve y\u00f6netmenize olanak tan\u0131r. K\u0131sa s\u00fcreli bellek, ajan\u0131n bir sohbetin ak\u0131\u015f\u0131n\u0131 takip etmesini ve ilgili yan\u0131tlar vermesini sa\u011flar.<\/li>\n<li><strong>Uzun S\u00fcreli Bellek (Knowledge Base, Vector Databases):<\/strong> Daha kal\u0131c\u0131 ve geni\u015f kapsaml\u0131 bilgileri depolamak i\u00e7in kullan\u0131l\u0131r. Bu, kullan\u0131c\u0131n\u0131n tercihleri, s\u0131k\u00e7a sorulan sorular\u0131n cevaplar\u0131, \u015firket politikalar\u0131 veya ajan\u0131n zamanla \u00f6\u011frendi\u011fi spesifik domain bilgileri olabilir. PydanticAI do\u011frudan uzun s\u00fcreli bellek \u00e7\u00f6z\u00fcmleri sunmazken, ara\u00e7 entegrasyonlar\u0131 sayesinde Pinecone, Weaviate gibi vekt\u00f6r veritabanlar\u0131 veya geleneksel veritabanlar\u0131 ile kolayca entegre olarak ajana \"uzun s\u00fcreli haf\u0131za\" kazand\u0131rabilirsiniz. Ajan, bu belle\u011fe ara\u00e7lar\u0131 arac\u0131l\u0131\u011f\u0131yla eri\u015fir, ilgili bilgiyi \u00e7eker ve LLM'ye sunarak daha bilin\u00e7li kararlar al\u0131r.<\/li>\n<\/ul>\n<p>Bellek y\u00f6netimi, ajan\u0131n ba\u011flam\u0131 korumas\u0131, ki\u015fiselle\u015ftirilmi\u015f yan\u0131tlar vermesi ve tekrarlayan bilgileri sorgulamaktan ka\u00e7\u0131nmas\u0131 i\u00e7in hayati \u00f6neme sahiptir. Bu sayede ajan, daha do\u011fal ve etkili bir etkile\u015fim sa\u011flayabilir.<\/p>\n<h4>Ara\u00e7lar: D\u00fcnyayla Etkile\u015fim Kurma Kap\u0131s\u0131<\/h4>\n<p>Daha \u00f6nce de belirtti\u011fimiz gibi, ara\u00e7lar (<code>Tool<\/code>'lar) ajan\u0131n LLM'nin bilgi da\u011farc\u0131\u011f\u0131n\u0131n \u00f6tesine ge\u00e7erek ger\u00e7ek d\u00fcnya verileriyle veya harici sistemlerle etkile\u015fime girmesini sa\u011flar. PydanticAI, bu ara\u00e7lar\u0131 tip g\u00fcvenli ve anla\u015f\u0131l\u0131r bir \u015fekilde tan\u0131mlaman\u0131za olanak tan\u0131r. Bir ajan, bir g\u00f6revi yerine getirirken, LLM'nin muhakemesi sonucunda hangi arac\u0131 hangi parametrelerle \u00e7a\u011f\u0131raca\u011f\u0131na karar verir. \u00d6rne\u011fin, bir \"hava durumu arac\u0131\" kullan\u0131c\u0131n\u0131n sordu\u011fu \u015fehrin anl\u0131k hava durumu verisini \u00e7ekebilir; bir \"rezervasyon arac\u0131\" ise bir restoranda masa ay\u0131rtabilir. Ara\u00e7lar\u0131n do\u011fru ve a\u00e7\u0131k bir \u015fekilde tan\u0131mlanmas\u0131 (\u00f6zellikle <code>description<\/code> alanlar\u0131), LLM'nin do\u011fru arac\u0131 do\u011fru zamanda kullanmas\u0131 i\u00e7in kritik \u00f6neme sahiptir. \u00c7oklu ara\u00e7 kullan\u0131m\u0131, ajan\u0131n karma\u015f\u0131k g\u00f6revleri ba\u015far\u0131yla tamamlamas\u0131 i\u00e7in farkl\u0131 bilgi kaynaklar\u0131n\u0131 ve eylem yeteneklerini birle\u015ftirmesini gerektirir.<\/p>\n<h4>Karar Mekanizmalar\u0131: Ajan\u0131n \"D\u00fc\u015f\u00fcnme\" S\u00fcreci<\/h4>\n<p>Ajan\u0131n en kritik bile\u015feni, gelen talepleri nas\u0131l anlad\u0131\u011f\u0131, hangi bilgilere ihtiyac\u0131 oldu\u011funa karar verdi\u011fi, hangi ara\u00e7lar\u0131 kullanmas\u0131 gerekti\u011fini belirledi\u011fi ve nihayetinde nas\u0131l bir eylemde bulunaca\u011f\u0131na dair \"d\u00fc\u015f\u00fcnme\" s\u00fcrecidir. PydanticAI'da bu mekanizma, b\u00fcy\u00fck \u00f6l\u00e7\u00fcde temel al\u0131nan LLM ve ona verilen prompt m\u00fchendisli\u011fine dayan\u0131r. Ajan\u0131n <code>chat<\/code> metodu \u00e7a\u011fr\u0131ld\u0131\u011f\u0131nda, PydanticAI a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 LLM'ye sunar:<\/p>\n<ol>\n<li><strong>Ajan\u0131n Genel Amac\u0131 ve A\u00e7\u0131klamas\u0131:<\/strong> LLM'ye ajan\u0131n kim oldu\u011fu ve ne yapmaya \u00e7al\u0131\u015ft\u0131\u011f\u0131 anlat\u0131l\u0131r.<\/li>\n<li><strong>Ge\u00e7mi\u015f Konu\u015fma Ba\u011flam\u0131 (Bellek):<\/strong> Diyalo\u011fun devaml\u0131l\u0131\u011f\u0131n\u0131 sa\u011flamak i\u00e7in \u00f6nceki mesajlar iletilir.<\/li>\n<li><strong>Kullan\u0131labilir Ara\u00e7lar ve \u0130\u015flevleri:<\/strong> LLM'ye, ajan\u0131n kullanabilece\u011fi t\u00fcm ara\u00e7lar ve bu ara\u00e7lar\u0131n her birinin ne i\u015fe yarad\u0131\u011f\u0131, hangi parametreleri ald\u0131\u011f\u0131 a\u00e7\u0131k\u00e7a belirtilir. Bu, LLM'nin bir \"plan\" yapmas\u0131na ve do\u011fru arac\u0131 \u00e7a\u011f\u0131rmas\u0131na olanak tan\u0131r.<\/li>\n<li><strong>Mevcut Kullan\u0131c\u0131 Talebi:<\/strong> LLM'ye kullan\u0131c\u0131n\u0131n son sorusu veya iste\u011fi sunulur.<\/li>\n<\/ol>\n<p>LLM, bu bilgileri kullanarak bir i\u00e7 muhakeme s\u00fcreci ger\u00e7ekle\u015ftirir. Bu s\u00fcre\u00e7te \u015funlar\u0131 d\u00fc\u015f\u00fcnebilir: \"Bu soruyu cevaplamak i\u00e7in bir araca ihtiyac\u0131m var m\u0131?\", \"Hangi ara\u00e7 bu bilgiyi sa\u011flayabilir?\", \"Arac\u0131 \u00e7a\u011f\u0131rmak i\u00e7in hangi parametreleri kullanmal\u0131y\u0131m?\" veya \"Bu soruya do\u011frudan kendi bilgimle cevap verebilir miyim?\". LLM, bu d\u00fc\u015f\u00fcnce s\u00fcrecinin sonunda bir \"eylem\" (bir arac\u0131 \u00e7a\u011f\u0131rma) veya do\u011frudan bir \"yan\u0131t\" d\u00f6nd\u00fcr\u00fcr. PydanticAI, LLM'nin bu kararlar\u0131n\u0131 (\u00f6zellikle ara\u00e7 \u00e7a\u011fr\u0131lar\u0131n\u0131) Pydantic modelleriyle do\u011frular ve y\u00fcr\u00fct\u00fcr. Bu d\u00f6ng\u00fc, ajan\u0131n karma\u015f\u0131k g\u00f6revlerde bile mant\u0131kl\u0131 ve hedef odakl\u0131 hareket etmesini sa\u011flar. Dolay\u0131s\u0131yla, ajan\u0131n davran\u0131\u015f\u0131n\u0131 etkin bir \u015fekilde y\u00f6netmek i\u00e7in bellek yap\u0131lar\u0131n\u0131 do\u011fru tasarlamak, ara\u00e7lar\u0131 net bir \u015fekilde tan\u0131mlamak ve prompt m\u00fchendisli\u011fiyle LLM'nin karar mekanizmas\u0131n\u0131 y\u00f6nlendirmek hayati \u00f6nem ta\u015f\u0131r.<\/p>\n<h2>PydanticAI Ajanlar\u0131n\u0131za \u0130leri D\u00fczey Yetenekler Nas\u0131l Kazand\u0131r\u0131rs\u0131n\u0131z?<\/h2>\n<p>PydanticAI ile temel bir ajan olu\u015fturmay\u0131 ve ger\u00e7ek d\u00fcnya senaryosunda kullanmay\u0131 \u00f6\u011frendik. \u015eimdi, ajanlar\u0131n\u0131z\u0131n yeteneklerini bir sonraki seviyeye ta\u015f\u0131yarak daha \u00f6zerk, karma\u015f\u0131k problemleri \u00e7\u00f6zebilen ve farkl\u0131 sistemlerle entegre olabilen geli\u015fmi\u015f yap\u0131lar in\u015fa etme zaman\u0131. Bu b\u00f6l\u00fcmde, PydanticAI ajanlar\u0131n\u0131za ileri d\u00fczey yetenekler kazand\u0131rman\u0131n yollar\u0131n\u0131 inceleyece\u011fiz.<\/p>\n<h4>\u00d6zerklik ve Planlama Yetene\u011fi<\/h4>\n<p>Bir ajan\u0131 ger\u00e7ekten \"ak\u0131ll\u0131\" yapan \u015feylerden biri, karma\u015f\u0131k bir g\u00f6revi kendi ba\u015f\u0131na alt g\u00f6revlere ay\u0131rabilmesi ve bu g\u00f6revleri s\u0131rayla yerine getirerek genel hedefe ula\u015fabilmesidir. PydanticAI'da bu, genellikle LLM'nin planlama yetene\u011fini y\u00f6nlendiren geli\u015fmi\u015f prompt m\u00fchendisli\u011fi ile sa\u011flan\u0131r. Ajana sadece bir hedef vermek yerine, \"Bu g\u00f6revi tamamlamak i\u00e7in ad\u0131m ad\u0131m nas\u0131l bir plan yapmal\u0131s\u0131n? Hangi ara\u00e7lar\u0131 hangi s\u0131rayla kullanmal\u0131s\u0131n?\" gibi y\u00f6nergelerle onun bir eylem zinciri olu\u015fturmas\u0131n\u0131 sa\u011flayabilirsiniz. \u00d6rne\u011fin:<\/p>\n<ul>\n<li><strong>Gorev Ay\u0131rma:<\/strong> Bir kullan\u0131c\u0131 \"Ge\u00e7en ayki sat\u0131\u015f raporunu olu\u015ftur ve potansiyel m\u00fc\u015fteri listesini g\u00fcncelle\" dedi\u011finde, ajan bu iki ayr\u0131 g\u00f6revi alg\u0131lay\u0131p s\u0131ras\u0131yla \"sat\u0131\u015f raporu olu\u015fturma\" ve \"m\u00fc\u015fteri listesi g\u00fcncelleme\" ad\u0131mlar\u0131n\u0131 planlayabilir.<\/li>\n<li><strong>D\u00f6ng\u00fcsel \u00c7al\u0131\u015fma (Self-Correction):<\/strong> Ajan\u0131n bir g\u00f6revi yaparken hata yapmas\u0131 veya ba\u015far\u0131s\u0131z olmas\u0131 durumunda, hatay\u0131 analiz edip farkl\u0131 bir strateji denemesini veya ek bilgi istemesini sa\u011flamak. PydanticAI'\u0131n yap\u0131land\u0131r\u0131lm\u0131\u015f \u00e7\u0131kt\u0131 yetene\u011fi, hata mesajlar\u0131n\u0131 yakalamay\u0131 ve LLM'ye yeniden sunarak bir sonraki ad\u0131m\u0131 belirlemesini kolayla\u015ft\u0131r\u0131r.<\/li>\n<\/ul>\n<p>Bu t\u00fcr bir \u00f6zerklik i\u00e7in, ajan\u0131n kendi durumunu (state) y\u00f6netmesi ve bu durumu LLM'ye iletmesi \u00f6nemlidir. \u00d6zel <code>Memory<\/code> s\u0131n\u0131flar\u0131 olu\u015fturarak ajan\u0131n planlar\u0131n\u0131, mevcut durumunu ve \u00f6nceki eylemlerini daha detayl\u0131 saklayabilirsiniz. A\u015fa\u011f\u0131da basit bir \u00f6zel bellek (custom memory) yap\u0131s\u0131 \u00f6rne\u011fi bulunmaktad\u0131r:<\/p>\n<pre><code class=\"language-python\">\nfrom pydantic_ai import BaseMemory, Message\nfrom typing import List\n\nclass CustomTaskMemory(BaseMemory):\n    \"\"\"Ajan\u0131n g\u00f6revle ilgili ek bilgileri saklayabilece\u011fi \u00f6zel bellek.\"\"\"\n    task_description: str = \"\"\n    subtasks_completed: List[str] = Field(default_factory=list)\n    current_plan: List[str] = Field(default_factory=list)\n\n    def add_message(self, message: Message):\n        \"\"\"Mesajlar\u0131 belle\u011fe ekleme mant\u0131\u011f\u0131.\"\"\"\n        # Burada mesajlar\u0131 normal bellek gibi saklayabiliriz veya \u00f6zel i\u015flemlere tabi tutabiliriz.\n        pass # \u00d6rnek basitle\u015ftirilmi\u015ftir.\n\n    def get_messages(self) -> List[Message]:\n        \"\"\"Bellekteki mesajlar\u0131 d\u00f6nd\u00fcrme mant\u0131\u011f\u0131.\"\"\"\n        # Burada ge\u00e7mi\u015f konu\u015fma mesajlar\u0131n\u0131 d\u00f6nd\u00fcrmeliyiz.\n        return [] # \u00d6rnek basitle\u015ftirilmi\u015ftir.\n\n    def update_task_status(self, new_status: str):\n        \"\"\"G\u00f6rev durumunu g\u00fcncelleyen \u00f6zel metot.\"\"\"\n        self.task_description = new_status\n\n# Agent s\u0131n\u0131f\u0131n\u0131zda bu \u00f6zel belle\u011fi kullanabilirsiniz:\n# class MyAdvancedAgent(Agent):\n#    memory: CustomTaskMemory = Field(default_factory=CustomTaskMemory)\n#    ...\n<\/pre>\n<p><\/code><\/p>\n<h4>\u00c7oklu Ajan \u0130\u015fbirli\u011fi (Multi-Agent Systems)<\/h4>\n<p>Baz\u0131 karma\u015f\u0131k problemler tek bir ajan\u0131n yeteneklerinin \u00f6tesine ge\u00e7ebilir. Bu durumlarda, farkl\u0131 uzmanl\u0131klara sahip birden fazla ajan\u0131 bir araya getirerek i\u015fbirli\u011fi yapmalar\u0131n\u0131 sa\u011flamak \u00e7ok daha etkili olabilir. \u00d6rne\u011fin:<\/p>\n<ul>\n<li><strong>Ara\u015ft\u0131rma Ajan\u0131 + \u00d6zetleme Ajan\u0131:<\/strong> Bir ara\u015ft\u0131rma ajan\u0131 internette bilgi toplayabilir, bu bilgiyi bir \u00f6zetleme ajan\u0131na iletebilir ve \u00f6zetleme ajan\u0131 da bu bilgiyi derleyip anla\u015f\u0131l\u0131r bir formatta sunabilir.<\/li>\n<li><strong>Planlama Ajan\u0131 + Y\u00fcr\u00fctme Ajan\u0131:<\/strong> Bir ajan genel bir plan olu\u015ftururken, di\u011fer ajan bu plan\u0131n ad\u0131mlar\u0131n\u0131 y\u00fcr\u00fctmekten sorumlu olabilir.<\/li>\n<\/ul>\n<p>PydanticAI, ajanlar\u0131n birbirleriyle ileti\u015fim kurabilece\u011fi ve veri al\u0131\u015fveri\u015fi yapabilece\u011fi ara\u00e7lar arac\u0131l\u0131\u011f\u0131yla bu t\u00fcr i\u015fbirli\u011fini destekler. Bir ajan\u0131n \u00e7\u0131kt\u0131s\u0131, di\u011fer bir ajan\u0131n giri\u015fi olarak kullan\u0131labilir veya ajanlar birbirlerinin ara\u00e7lar\u0131n\u0131 \u00e7a\u011f\u0131rabilir.<\/p>\n<h4>Kullan\u0131c\u0131 Aray\u00fcz\u00fc Entegrasyonu<\/h4>\n<p>Ajanlar\u0131n\u0131z ne kadar ak\u0131ll\u0131 olursa olsun, son kullan\u0131c\u0131lar\u0131n onlarla kolayca etkile\u015fime ge\u00e7ebilmesi gerekir. PydanticAI, ajan\u0131n i\u015f mant\u0131\u011f\u0131n\u0131 soyutlad\u0131\u011f\u0131 i\u00e7in, onu herhangi bir kullan\u0131c\u0131 aray\u00fcz\u00fc (UI) teknolojisiyle entegre etmek kolayd\u0131r. Web aray\u00fczleri (Streamlit, Gradio, React, Vue), mobil uygulamalar veya hatta komut sat\u0131r\u0131 aray\u00fczleri arac\u0131l\u0131\u011f\u0131yla ajanlar\u0131n\u0131zla etkile\u015fime ge\u00e7ebilirsiniz. Ajan\u0131n\u0131z\u0131n <code>run_task<\/code> veya <code>chat<\/code> metodunu \u00e7a\u011f\u0131rarak geleneksel bir API gibi kullanabilir ve JSON format\u0131nda veya ba\u015fka bir yap\u0131land\u0131r\u0131lm\u0131\u015f formatta yan\u0131tlar alarak UI'da g\u00f6r\u00fcnt\u00fcleyebilirsiniz.<\/p>\n<h4>Hata Y\u00f6netimi ve Sa\u011flaml\u0131k<\/h4>\n<p>Geli\u015fmi\u015f ajanlar, beklenmedik durumlarla veya hatalarla nas\u0131l ba\u015fa \u00e7\u0131kacaklar\u0131n\u0131 da bilmelidir. PydanticAI'\u0131n Pydantic temelli do\u011frulama yetenekleri, LLM \u00e7\u0131kt\u0131lar\u0131n\u0131n beklenen formatta olmamas\u0131 durumunda hatalar\u0131 yakalamak i\u00e7in \u00e7ok g\u00fc\u00e7l\u00fcd\u00fcr. Ancak, harici ara\u00e7 \u00e7a\u011fr\u0131lar\u0131ndan kaynaklanan hatalar veya LLM'nin yanl\u0131\u015f muhakemeleri de olabilir. Bu t\u00fcr durumlar i\u00e7in:<\/p>\n<ul>\n<li><strong>Hata Yakalama ve Yeniden Deneme:<\/strong> Ara\u00e7 \u00e7a\u011fr\u0131lar\u0131 etraf\u0131na <code>try-except<\/code> bloklar\u0131 ekleyerek hatalar\u0131 yakalayabilir ve ajana bu hatalar\u0131 LLM'ye bildirmesini veya farkl\u0131 bir strateji denemesini s\u00f6yleyebilirsiniz.<\/li>\n<li><strong>Geri Bildirim D\u00f6ng\u00fcleri:<\/strong> Kullan\u0131c\u0131lardan gelen geri bildirimleri toplamak ve ajan\u0131n performans\u0131n\u0131 iyile\u015ftirmek i\u00e7in bu verileri kullanmak.<\/li>\n<li><strong>\u0130zleme ve Loglama:<\/strong> Ajan\u0131n d\u00fc\u015f\u00fcnce s\u00fcre\u00e7lerini, kulland\u0131\u011f\u0131 ara\u00e7lar\u0131, ald\u0131\u011f\u0131 yan\u0131tlar\u0131 ve hatalar\u0131 loglamak, sorun giderme ve optimizasyon i\u00e7in hayati \u00f6neme sahiptir.<\/li>\n<\/ul>\n<p>Bu ileri d\u00fczey yetenekleri PydanticAI ajanlar\u0131n\u0131za entegre ederek, sadece g\u00f6revleri yerine getiren botlardan \u00f6te, ger\u00e7ekten dinamik, adaptif ve de\u011ferli otonom sistemler olu\u015fturabilirsiniz. Unutmay\u0131n, ajan\u0131 ne kadar \u00e7ok \"d\u00fc\u015f\u00fcnce\" ve \"eylem\" \u00f6zg\u00fcrl\u00fc\u011f\u00fc verirseniz, o kadar ak\u0131ll\u0131 ve faydal\u0131 hale gelecektir.<\/p>\n<h2>PydanticAI Ajanlar\u0131n\u0131n Gelece\u011fi ve Optimizasyon \u0130pu\u00e7lar\u0131 Nelerdir?<\/h2>\n<p>Yapay zeka ajanlar\u0131n\u0131n gelece\u011fi olduk\u00e7a parlak ve PydanticAI gibi k\u00fct\u00fcphaneler bu gelece\u011fin \u015fekillenmesinde \u00f6nemli bir rol oynamaktad\u0131r. \u00d6zerk sistemler, i\u015f s\u00fcre\u00e7lerimizde ve g\u00fcnl\u00fck hayat\u0131m\u0131zda giderek daha fazla yer edinecek. Daha zeki, adaptif ve kendi kendine \u00f6\u011frenebilen ajanlar, karma\u015f\u0131k problemleri \u00e7\u00f6zmede insanlara yard\u0131mc\u0131 olacak ve bir\u00e7ok alanda verimlili\u011fi radikal bir \u015fekilde art\u0131racakt\u0131r. PydanticAI, tip g\u00fcvenli\u011fi ve yap\u0131land\u0131r\u0131lm\u0131\u015f \u00e7\u0131kt\u0131 garantisi sayesinde, ajan geli\u015ftirmenin bu h\u0131zl\u0131 evriminde g\u00fcvenilir bir temel sunmaya devam edecektir. Gelecekte, PydanticAI'\u0131n daha fazla LLM entegrasyonu, daha geli\u015fmi\u015f bellek y\u00f6netim sistemleri ve \u00e7oklu ajan i\u015fbirli\u011fi i\u00e7in yerle\u015fik mekanizmalar sunmas\u0131 beklenmektedir.<\/p>\n<h3>Optimizasyon \u0130pu\u00e7lar\u0131<\/h3>\n<p>Ajanlar\u0131n\u0131z\u0131 geli\u015ftirirken, performans, maliyet ve g\u00fcvenilirlik gibi fakt\u00f6rleri g\u00f6z \u00f6n\u00fcnde bulundurarak baz\u0131 optimizasyon teknikleri uygulaman\u0131z \u00f6nemlidir:<\/p>\n<ol>\n<li><strong>Prompt M\u00fchendisli\u011fi Optimizasyonu:<\/strong>\n<ul>\n<li><strong>A\u00e7\u0131k ve Net Talimatlar:<\/strong> LLM'ye verilen talimatlar\u0131n (agent description, tool description) m\u00fcmk\u00fcn oldu\u011funca a\u00e7\u0131k, net ve tek anlaml\u0131 oldu\u011fundan emin olun. Karma\u015f\u0131k talimatlar\u0131 k\u00fc\u00e7\u00fck par\u00e7alara ay\u0131r\u0131n.<\/li>\n<li><strong>G\u00f6rev Tan\u0131m\u0131:<\/strong> Ajana her g\u00f6rev i\u00e7in net bir hedef ve beklenen \u00e7\u0131kt\u0131 format\u0131 sa\u011flay\u0131n.<\/li>\n<li><strong>\u00d6rnekler (Few-shot prompting):<\/strong> \u00d6zellikle karma\u015f\u0131k g\u00f6revler veya ara\u00e7 kullan\u0131m\u0131 i\u00e7in LLM'ye birka\u00e7 iyi \u00f6rnek sa\u011flamak, ajan\u0131n do\u011fru \u015fekilde davranmas\u0131n\u0131 sa\u011flayabilir.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Model Se\u00e7imi ve Maliyet Y\u00f6netimi:<\/strong>\n<ul>\n<li><strong>Do\u011fru Modeli Se\u00e7in:<\/strong> Her zaman en b\u00fcy\u00fck ve en pahal\u0131 LLM'yi kullanmak zorunda de\u011filsiniz. G\u00f6revin karma\u015f\u0131kl\u0131\u011f\u0131na g\u00f6re \"gpt-4o-mini\" gibi daha uygun maliyetli veya daha h\u0131zl\u0131 modelleri tercih edebilirsiniz. Kritik ve karma\u015f\u0131k g\u00f6revler i\u00e7in daha yetenekli modelleri (\u00f6rn. \"gpt-4o\") kullan\u0131n.<\/li>\n<li><strong>Jeton Kullan\u0131m\u0131n\u0131 Azalt\u0131n:<\/strong> \u00d6zellikle bellek y\u00f6netiminde, LLM'ye g\u00f6nderilen ba\u011flam\u0131n (token'lar\u0131n) miktar\u0131n\u0131 s\u0131n\u0131rlay\u0131n. Sadece ilgili ge\u00e7mi\u015f konu\u015fmay\u0131 veya bilgiyi g\u00f6nderin. A\u015f\u0131r\u0131 uzun girdiler hem maliyeti art\u0131r\u0131r hem de performans\u0131 d\u00fc\u015f\u00fcrebilir.<\/li>\n<\/ul>\n<\/li>\n<li><strong>\u00d6nbellekleme (Caching):<\/strong>\n<ul>\n<li>Tekrarlayan LLM \u00e7a\u011fr\u0131lar\u0131 veya ara\u00e7 \u00e7a\u011fr\u0131lar\u0131 i\u00e7in \u00f6nbellekleme kullan\u0131n. Ayn\u0131 sorguya ayn\u0131 yan\u0131t\u0131n beklendi\u011fi durumlarda, \u00f6nbellekten yan\u0131t d\u00f6nerek API maliyetlerini ve yan\u0131t s\u00fcrelerini azaltabilirsiniz.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Asenkron Programlama:<\/strong>\n<ul>\n<li>PydanticAI, <code>async\/await<\/code> yap\u0131s\u0131n\u0131 destekler. Birden fazla ajan\u0131n paralel \u00e7al\u0131\u015fmas\u0131 gerekti\u011finde veya harici API \u00e7a\u011fr\u0131lar\u0131 yap\u0131l\u0131rken asenkron programlama kullanmak, uygulaman\u0131z\u0131n daha responsif ve verimli olmas\u0131n\u0131 sa\u011flar. Bu sayede, bir i\u015flem di\u011ferinin bitmesini beklemek zorunda kalmaz.<\/li>\n<\/ul>\n<\/li>\n<li><strong>\u0130zleme ve Loglama:<\/strong>\n<ul>\n<li>Ajan\u0131n her ad\u0131m\u0131n\u0131 (LLM \u00e7a\u011fr\u0131lar\u0131, ara\u00e7 \u00e7a\u011fr\u0131lar\u0131, al\u0131nan yan\u0131tlar, hatalar) loglamak, performans sorunlar\u0131n\u0131 te\u015fhis etmek ve ajan\u0131n davran\u0131\u015f\u0131n\u0131 anlamak i\u00e7in \u00e7ok \u00f6nemlidir. Bu loglar, ajan\u0131 s\u00fcrekli olarak iyile\u015ftirmeniz i\u00e7in de\u011ferli veriler sa\u011flar.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Sa\u011flaml\u0131k ve Hata Y\u00f6netimi:<\/strong>\n<ul>\n<li>Ara\u00e7 \u00e7a\u011fr\u0131lar\u0131 s\u0131ras\u0131nda olu\u015fabilecek a\u011f hatalar\u0131 veya API yan\u0131t hatalar\u0131 i\u00e7in sa\u011flam hata yakalama mekanizmalar\u0131 uygulay\u0131n. Ajan\u0131n bu hatalara nas\u0131l tepki verece\u011fini (\u00f6rne\u011fin yeniden deneme, kullan\u0131c\u0131ya bilgi verme, alternatif bir ara\u00e7 kullanma) belirleyin.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<div class=\"alert alert-info\">\n  Uzman \u0130pucu: Bellek kullan\u0131m\u0131n\u0131 minimize etmek ve API \u00e7a\u011fr\u0131lar\u0131n\u0131 optimize etmek i\u00e7in ajan\u0131n\u0131z\u0131n sadece gerekli bilgiyi saklamas\u0131n\u0131 sa\u011flay\u0131n. Uzun ba\u011flam pencereleri hem maliyeti art\u0131r\u0131r hem de performans\u0131 d\u00fc\u015f\u00fcrebilir. Ayr\u0131ca, mobil uyumlu bir deneyim sunmak i\u00e7in HTML \u00e7\u0131kt\u0131lar\u0131nda responsive tasar\u0131m\u0131 g\u00f6z ard\u0131 etmeyin. \u00d6rne\u011fin, CSS'te a\u015fa\u011f\u0131daki gibi bir medya sorgusu kullanarak farkl\u0131 ekran boyutlar\u0131na uyum sa\u011flayabilirsiniz:<\/p>\n<pre><code class=\"language-css\">\n@media (max-width: 768px) {\n    .container {\n        flex-direction: column;\n        padding: 15px;\n    }\n    .sidebar {\n        display: none; \/* K\u00fc\u00e7\u00fck ekranlarda kenar \u00e7ubu\u011funu gizle *\/\n    }\n    h2 {\n        font-size: 1.5em;\n    }\n}\n<\/pre>\n<p><\/code>\n<\/div>\n<p>Bu optimizasyon ipu\u00e7lar\u0131, PydanticAI ile geli\u015ftirdi\u011finiz ajanlar\u0131n sadece i\u015flevsel de\u011fil, ayn\u0131 zamanda verimli, g\u00fcvenilir ve s\u00fcrd\u00fcr\u00fclebilir olmas\u0131n\u0131 sa\u011flayacakt\u0131r. Yapay zeka ajanlar\u0131n\u0131n geli\u015fimi hen\u00fcz ba\u015flang\u0131\u00e7 a\u015famas\u0131nda ve PydanticAI gibi ara\u00e7lar, bu heyecan verici alanda yenilikler yapman\u0131z i\u00e7in g\u00fc\u00e7l\u00fc bir temel sunmaktad\u0131r.<\/p>\n<h2>S\u0131k\u00e7a Sorulan Sorular<\/h2>\n<p>PydanticAI ile yapay zeka ajanlar\u0131 olu\u015fturma s\u00fcrecinde s\u0131k\u00e7a kar\u015f\u0131la\u015f\u0131lan baz\u0131 sorular\u0131 ve cevaplar\u0131n\u0131 a\u015fa\u011f\u0131da bulabilirsiniz:<\/p>\n<h3>PydanticAI kullanmak i\u00e7in Pydantic bilmek \u015fart m\u0131?<\/h3>\n<p>Hay\u0131r, PydanticAI kullanmak i\u00e7in Pydantic'i detayl\u0131 bir \u015fekilde bilmek \u015fart de\u011fildir. Ancak, Pydantic'in temel veri modelleme prensiplerini ve tip ipu\u00e7lar\u0131n\u0131n (type hints) nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 anlamak, PydanticAI ile daha g\u00fc\u00e7l\u00fc ve hata toleransl\u0131 ajanlar geli\u015ftirmenize kesinlikle yard\u0131mc\u0131 olacakt\u0131r. PydanticAI, Pydantic'in sundu\u011fu yap\u0131sal do\u011frulama ve tip g\u00fcvenli\u011fini LLM \u00e7\u0131kt\u0131lar\u0131n\u0131n i\u015flenmesine ta\u015f\u0131yarak s\u00fcre\u00e7leri basitle\u015ftirir, bu nedenle temel kavramlara hakim olmak size b\u00fcy\u00fck avantaj sa\u011flar.<\/p>\n<h3>PydanticAI sadece OpenAI modelleriyle mi \u00e7al\u0131\u015f\u0131r?<\/h3>\n<p>Hay\u0131r, PydanticAI, mod\u00fcler yap\u0131s\u0131 sayesinde farkl\u0131 LLM sa\u011flay\u0131c\u0131lar\u0131yla (\u00f6rne\u011fin Anthropic, Google Gemini veya yerel modeller) entegre edilebilir. K\u00fct\u00fcphane, temel <code>AIModel<\/code> aray\u00fcz\u00fcn\u00fc soyutlad\u0131\u011f\u0131 i\u00e7in, uygun bir adapt\u00f6r veya entegrasyon ile istedi\u011finiz LLM'yi kullanabilirsiniz. OpenAI, entegrasyonu en kolay olanlardan biri oldu\u011fu i\u00e7in \u00f6rneklerde s\u0131kl\u0131kla kullan\u0131l\u0131r, ancak se\u00e7enekleriniz bununla s\u0131n\u0131rl\u0131 de\u011fildir.<\/p>\n<h3>PydanticAI ajanlar\u0131 ne kadar g\u00fcvenlidir?<\/h3>\n<p>G\u00fcvenlik, kullan\u0131lan LLM'nin kendi g\u00fcvenlik \u00f6nlemlerinin yan\u0131 s\u0131ra, ajan tasar\u0131m\u0131na ve entegre edilen ara\u00e7lara b\u00fcy\u00fck \u00f6l\u00e7\u00fcde ba\u011fl\u0131d\u0131r. Hassas verileri i\u015flerken veri \u015fifreleme, eri\u015fim kontrol\u00fc, LLM'ye g\u00f6nderilen verileri filtreleme (redaction) ve \u00e7\u0131kt\u0131 do\u011frulama gibi ek g\u00fcvenlik katmanlar\u0131 mutlaka uygulanmal\u0131d\u0131r. PydanticAI, LLM'den gelen \u00e7\u0131kt\u0131n\u0131n belirli bir \u015femaya uymas\u0131n\u0131 sa\u011flayarak hatal\u0131 veya zararl\u0131 \u00e7\u0131kt\u0131lar\u0131 bir nebze filtrelemeye yard\u0131mc\u0131 olabilir, ancak kapsaml\u0131 g\u00fcvenlik stratejileri geli\u015ftiricinin sorumlulu\u011fundad\u0131r.<\/p>\n<h3>PydanticAI'\u0131n di\u011fer agent framework'lerine g\u00f6re avantajlar\u0131 nelerdir?<\/h3>\n<p>PydanticAI'\u0131n en b\u00fcy\u00fck avantaj\u0131, Pydantic'in g\u00fc\u00e7l\u00fc veri modelleme ve do\u011frulama yeteneklerini LLM etkile\u015fimlerine getirmesidir. Bu, LLM'lerden gelen \u00e7\u0131kt\u0131lar\u0131n\u0131n her zaman beklenen yap\u0131ya uymas\u0131n\u0131 garanti eder, bu da hata ay\u0131klamay\u0131 kolayla\u015ft\u0131r\u0131r ve ajanlar\u0131n daha g\u00fcvenilir \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar. Ayr\u0131ca, ara\u00e7 tan\u0131mlamalar\u0131n\u0131 ve bellek y\u00f6netimini olduk\u00e7a \u015feffaf, tip g\u00fcvenli ve okunakl\u0131 hale getirir. Bu, \u00f6zellikle b\u00fcy\u00fck ve karma\u015f\u0131k ajan sistemleri geli\u015ftirirken kodun s\u00fcrd\u00fcr\u00fclebilirli\u011fini ve bak\u0131m\u0131n\u0131 kolayla\u015ft\u0131r\u0131r. Di\u011fer framework'ler genel esneklik sunarken, PydanticAI veri b\u00fct\u00fcnl\u00fc\u011f\u00fcne ve yap\u0131land\u0131r\u0131lm\u0131\u015f etkile\u015fimlere odaklan\u0131r.<\/p>\n<h3>PydanticAI ile kendi \u00f6zel ara\u00e7lar\u0131m\u0131 (Tool) entegre edebilir miyim?<\/h3>\n<p>Evet, PydanticAI'\u0131n en g\u00fc\u00e7l\u00fc yanlar\u0131ndan biri budur. Kendi \u00f6zel ara\u00e7lar\u0131n\u0131z\u0131 <code>Tool<\/code> s\u0131n\u0131f\u0131ndan t\u00fcreterek ve i\u00e7ine istedi\u011finiz Python metotlar\u0131n\u0131 yazarak kolayca entegre edebilirsiniz. Bu metotlar, veritaban\u0131 sorgular\u0131, harici API \u00e7a\u011fr\u0131lar\u0131, dosya sistemi i\u015flemleri veya herhangi bir Python i\u015flevini i\u00e7erebilir. \u00d6nemli olan, metotlar\u0131n\u0131z\u0131n a\u00e7\u0131k bir <code>description<\/code>'a ve do\u011fru tip ipu\u00e7lar\u0131na sahip olmas\u0131d\u0131r, b\u00f6ylece LLM bu ara\u00e7lar\u0131 ne zaman ve nas\u0131l kullanaca\u011f\u0131n\u0131 anlayabilir.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"PydanticAI ile ak\u0131ll\u0131 yapay zeka ajanlar\u0131 olu\u015fturman\u0131n temel prensiplerini ke\u015ffedin. Ad\u0131m ad\u0131m rehberimizle kendi otonom sistemlerinizi kolayca hayata&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1342],"tags":[],"class_list":{"0":"post-33618","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ai","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>PydanticAI ile Ak\u0131ll\u0131 Ajanlar Olu\u015fturma: Kapsaml\u0131 Bir Giri\u015f<\/title>\n<meta name=\"description\" content=\"PydanticAI ile ak\u0131ll\u0131 yapay zeka ajanlar\u0131 olu\u015fturman\u0131n temel prensiplerini ke\u015ffedin. Ad\u0131m ad\u0131m rehberimizle kendi otonom sistemlerinizi kolayca hayata ge\u00e7irin ve i\u015f s\u00fcre\u00e7lerinizi d\u00f6n\u00fc\u015ft\u00fcr\u00fcn. Bu makale, PydanticAI&#039;\u0131n g\u00fcc\u00fcn\u00fc kullanarak i\u015f ak\u0131\u015flar\u0131n\u0131z\u0131 nas\u0131l otomatikle\u015ftirebilece\u011finizi, veri entegrasyonunu nas\u0131l kolayla\u015ft\u0131rabilece\u011finizi ve karma\u015f\u0131k problemleri \u00e7\u00f6zmek i\u00e7in nas\u0131l ak\u0131ll\u0131 sistemler geli\u015ftirebilece\u011finizi derinlemesine inceleyecek. Yapay zeka ajanlar\u0131n\u0131n \u00f6nemini anlamaktan ba\u015flay\u0131p, PydanticAI&#039;\u0131n temel bile\u015fenlerini \u00f6\u011frenerek ve ger\u00e7ek d\u00fcnya senaryolar\u0131yla uygulamal\u0131 \u00f6rnekler \u00fczerinde \u00e7al\u0131\u015farak kendi ak\u0131ll\u0131 sistemlerinizi in\u015fa etme yolculu\u011funa \u00e7\u0131kmaya haz\u0131r olun. B\u00f6ylece, hem yeni ba\u015flayanlar hem de deneyimli geli\u015ftiriciler i\u00e7in de\u011ferli bilgiler sunmay\u0131 hedefliyoruz.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/pydanticai-ile-akilli-ajanlar-olusturma-kapsamli-bir-giris\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PydanticAI ile Ak\u0131ll\u0131 Ajanlar Olu\u015fturma: Kapsaml\u0131 Bir Giri\u015f\" \/>\n<meta property=\"og:description\" content=\"PydanticAI ile ak\u0131ll\u0131 yapay zeka ajanlar\u0131 olu\u015fturman\u0131n temel prensiplerini ke\u015ffedin. Ad\u0131m ad\u0131m rehberimizle kendi otonom sistemlerinizi kolayca hayata ge\u00e7irin ve i\u015f s\u00fcre\u00e7lerinizi d\u00f6n\u00fc\u015ft\u00fcr\u00fcn. Bu makale, PydanticAI&#039;\u0131n g\u00fcc\u00fcn\u00fc kullanarak i\u015f ak\u0131\u015flar\u0131n\u0131z\u0131 nas\u0131l otomatikle\u015ftirebilece\u011finizi, veri entegrasyonunu nas\u0131l kolayla\u015ft\u0131rabilece\u011finizi ve karma\u015f\u0131k problemleri \u00e7\u00f6zmek i\u00e7in nas\u0131l ak\u0131ll\u0131 sistemler geli\u015ftirebilece\u011finizi derinlemesine inceleyecek. Yapay zeka ajanlar\u0131n\u0131n \u00f6nemini anlamaktan ba\u015flay\u0131p, PydanticAI&#039;\u0131n temel bile\u015fenlerini \u00f6\u011frenerek ve ger\u00e7ek d\u00fcnya senaryolar\u0131yla uygulamal\u0131 \u00f6rnekler \u00fczerinde \u00e7al\u0131\u015farak kendi ak\u0131ll\u0131 sistemlerinizi in\u015fa etme yolculu\u011funa \u00e7\u0131kmaya haz\u0131r olun. B\u00f6ylece, hem yeni ba\u015flayanlar hem de deneyimli geli\u015ftiriciler i\u00e7in de\u011ferli bilgiler sunmay\u0131 hedefliyoruz.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/pydanticai-ile-akilli-ajanlar-olusturma-kapsamli-bir-giris\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-05T02:01:32+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"33 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pydanticai-ile-akilli-ajanlar-olusturma-kapsamli-bir-giris\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pydanticai-ile-akilli-ajanlar-olusturma-kapsamli-bir-giris\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"PydanticAI ile Ak\u0131ll\u0131 Ajanlar Olu\u015fturma: Kapsaml\u0131 Bir Giri\u015f\",\"datePublished\":\"2025-11-05T02:01:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pydanticai-ile-akilli-ajanlar-olusturma-kapsamli-bir-giris\/\"},\"wordCount\":5528,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"AI\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/pydanticai-ile-akilli-ajanlar-olusturma-kapsamli-bir-giris\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pydanticai-ile-akilli-ajanlar-olusturma-kapsamli-bir-giris\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/pydanticai-ile-akilli-ajanlar-olusturma-kapsamli-bir-giris\/\",\"name\":\"PydanticAI ile Ak\u0131ll\u0131 Ajanlar Olu\u015fturma: Kapsaml\u0131 Bir Giri\u015f\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-05T02:01:32+00:00\",\"description\":\"PydanticAI ile ak\u0131ll\u0131 yapay zeka ajanlar\u0131 olu\u015fturman\u0131n temel prensiplerini ke\u015ffedin. Ad\u0131m ad\u0131m rehberimizle kendi otonom sistemlerinizi kolayca hayata ge\u00e7irin ve i\u015f s\u00fcre\u00e7lerinizi d\u00f6n\u00fc\u015ft\u00fcr\u00fcn. Bu makale, PydanticAI'\u0131n g\u00fcc\u00fcn\u00fc kullanarak i\u015f ak\u0131\u015flar\u0131n\u0131z\u0131 nas\u0131l otomatikle\u015ftirebilece\u011finizi, veri entegrasyonunu nas\u0131l kolayla\u015ft\u0131rabilece\u011finizi ve karma\u015f\u0131k problemleri \u00e7\u00f6zmek i\u00e7in nas\u0131l ak\u0131ll\u0131 sistemler geli\u015ftirebilece\u011finizi derinlemesine inceleyecek. Yapay zeka ajanlar\u0131n\u0131n \u00f6nemini anlamaktan ba\u015flay\u0131p, PydanticAI'\u0131n temel bile\u015fenlerini \u00f6\u011frenerek ve ger\u00e7ek d\u00fcnya senaryolar\u0131yla uygulamal\u0131 \u00f6rnekler \u00fczerinde \u00e7al\u0131\u015farak kendi ak\u0131ll\u0131 sistemlerinizi in\u015fa etme yolculu\u011funa \u00e7\u0131kmaya haz\u0131r olun. B\u00f6ylece, hem yeni ba\u015flayanlar hem de deneyimli geli\u015ftiriciler i\u00e7in de\u011ferli bilgiler sunmay\u0131 hedefliyoruz.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pydanticai-ile-akilli-ajanlar-olusturma-kapsamli-bir-giris\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/pydanticai-ile-akilli-ajanlar-olusturma-kapsamli-bir-giris\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pydanticai-ile-akilli-ajanlar-olusturma-kapsamli-bir-giris\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PydanticAI ile Ak\u0131ll\u0131 Ajanlar Olu\u015fturma: Kapsaml\u0131 Bir Giri\u015f\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PydanticAI ile Ak\u0131ll\u0131 Ajanlar Olu\u015fturma: Kapsaml\u0131 Bir Giri\u015f","description":"PydanticAI ile ak\u0131ll\u0131 yapay zeka ajanlar\u0131 olu\u015fturman\u0131n temel prensiplerini ke\u015ffedin. Ad\u0131m ad\u0131m rehberimizle kendi otonom sistemlerinizi kolayca hayata ge\u00e7irin ve i\u015f s\u00fcre\u00e7lerinizi d\u00f6n\u00fc\u015ft\u00fcr\u00fcn. Bu makale, PydanticAI'\u0131n g\u00fcc\u00fcn\u00fc kullanarak i\u015f ak\u0131\u015flar\u0131n\u0131z\u0131 nas\u0131l otomatikle\u015ftirebilece\u011finizi, veri entegrasyonunu nas\u0131l kolayla\u015ft\u0131rabilece\u011finizi ve karma\u015f\u0131k problemleri \u00e7\u00f6zmek i\u00e7in nas\u0131l ak\u0131ll\u0131 sistemler geli\u015ftirebilece\u011finizi derinlemesine inceleyecek. Yapay zeka ajanlar\u0131n\u0131n \u00f6nemini anlamaktan ba\u015flay\u0131p, PydanticAI'\u0131n temel bile\u015fenlerini \u00f6\u011frenerek ve ger\u00e7ek d\u00fcnya senaryolar\u0131yla uygulamal\u0131 \u00f6rnekler \u00fczerinde \u00e7al\u0131\u015farak kendi ak\u0131ll\u0131 sistemlerinizi in\u015fa etme yolculu\u011funa \u00e7\u0131kmaya haz\u0131r olun. B\u00f6ylece, hem yeni ba\u015flayanlar hem de deneyimli geli\u015ftiriciler i\u00e7in de\u011ferli bilgiler sunmay\u0131 hedefliyoruz.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/pydanticai-ile-akilli-ajanlar-olusturma-kapsamli-bir-giris\/","og_locale":"tr_TR","og_type":"article","og_title":"PydanticAI ile Ak\u0131ll\u0131 Ajanlar Olu\u015fturma: Kapsaml\u0131 Bir Giri\u015f","og_description":"PydanticAI ile ak\u0131ll\u0131 yapay zeka ajanlar\u0131 olu\u015fturman\u0131n temel prensiplerini ke\u015ffedin. Ad\u0131m ad\u0131m rehberimizle kendi otonom sistemlerinizi kolayca hayata ge\u00e7irin ve i\u015f s\u00fcre\u00e7lerinizi d\u00f6n\u00fc\u015ft\u00fcr\u00fcn. Bu makale, PydanticAI'\u0131n g\u00fcc\u00fcn\u00fc kullanarak i\u015f ak\u0131\u015flar\u0131n\u0131z\u0131 nas\u0131l otomatikle\u015ftirebilece\u011finizi, veri entegrasyonunu nas\u0131l kolayla\u015ft\u0131rabilece\u011finizi ve karma\u015f\u0131k problemleri \u00e7\u00f6zmek i\u00e7in nas\u0131l ak\u0131ll\u0131 sistemler geli\u015ftirebilece\u011finizi derinlemesine inceleyecek. Yapay zeka ajanlar\u0131n\u0131n \u00f6nemini anlamaktan ba\u015flay\u0131p, PydanticAI'\u0131n temel bile\u015fenlerini \u00f6\u011frenerek ve ger\u00e7ek d\u00fcnya senaryolar\u0131yla uygulamal\u0131 \u00f6rnekler \u00fczerinde \u00e7al\u0131\u015farak kendi ak\u0131ll\u0131 sistemlerinizi in\u015fa etme yolculu\u011funa \u00e7\u0131kmaya haz\u0131r olun. B\u00f6ylece, hem yeni ba\u015flayanlar hem de deneyimli geli\u015ftiriciler i\u00e7in de\u011ferli bilgiler sunmay\u0131 hedefliyoruz.","og_url":"https:\/\/fatihsoysal.com\/blog\/pydanticai-ile-akilli-ajanlar-olusturma-kapsamli-bir-giris\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-05T02:01:32+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"33 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/pydanticai-ile-akilli-ajanlar-olusturma-kapsamli-bir-giris\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/pydanticai-ile-akilli-ajanlar-olusturma-kapsamli-bir-giris\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"PydanticAI ile Ak\u0131ll\u0131 Ajanlar Olu\u015fturma: Kapsaml\u0131 Bir Giri\u015f","datePublished":"2025-11-05T02:01:32+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/pydanticai-ile-akilli-ajanlar-olusturma-kapsamli-bir-giris\/"},"wordCount":5528,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["AI"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/pydanticai-ile-akilli-ajanlar-olusturma-kapsamli-bir-giris\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/pydanticai-ile-akilli-ajanlar-olusturma-kapsamli-bir-giris\/","url":"https:\/\/fatihsoysal.com\/blog\/pydanticai-ile-akilli-ajanlar-olusturma-kapsamli-bir-giris\/","name":"PydanticAI ile Ak\u0131ll\u0131 Ajanlar Olu\u015fturma: Kapsaml\u0131 Bir Giri\u015f","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-05T02:01:32+00:00","description":"PydanticAI ile ak\u0131ll\u0131 yapay zeka ajanlar\u0131 olu\u015fturman\u0131n temel prensiplerini ke\u015ffedin. Ad\u0131m ad\u0131m rehberimizle kendi otonom sistemlerinizi kolayca hayata ge\u00e7irin ve i\u015f s\u00fcre\u00e7lerinizi d\u00f6n\u00fc\u015ft\u00fcr\u00fcn. Bu makale, PydanticAI'\u0131n g\u00fcc\u00fcn\u00fc kullanarak i\u015f ak\u0131\u015flar\u0131n\u0131z\u0131 nas\u0131l otomatikle\u015ftirebilece\u011finizi, veri entegrasyonunu nas\u0131l kolayla\u015ft\u0131rabilece\u011finizi ve karma\u015f\u0131k problemleri \u00e7\u00f6zmek i\u00e7in nas\u0131l ak\u0131ll\u0131 sistemler geli\u015ftirebilece\u011finizi derinlemesine inceleyecek. Yapay zeka ajanlar\u0131n\u0131n \u00f6nemini anlamaktan ba\u015flay\u0131p, PydanticAI'\u0131n temel bile\u015fenlerini \u00f6\u011frenerek ve ger\u00e7ek d\u00fcnya senaryolar\u0131yla uygulamal\u0131 \u00f6rnekler \u00fczerinde \u00e7al\u0131\u015farak kendi ak\u0131ll\u0131 sistemlerinizi in\u015fa etme yolculu\u011funa \u00e7\u0131kmaya haz\u0131r olun. B\u00f6ylece, hem yeni ba\u015flayanlar hem de deneyimli geli\u015ftiriciler i\u00e7in de\u011ferli bilgiler sunmay\u0131 hedefliyoruz.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/pydanticai-ile-akilli-ajanlar-olusturma-kapsamli-bir-giris\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/pydanticai-ile-akilli-ajanlar-olusturma-kapsamli-bir-giris\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/pydanticai-ile-akilli-ajanlar-olusturma-kapsamli-bir-giris\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"PydanticAI ile Ak\u0131ll\u0131 Ajanlar Olu\u015fturma: Kapsaml\u0131 Bir Giri\u015f"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33618","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=33618"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33618\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=33618"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=33618"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=33618"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}