{"id":356,"date":"2025-01-04T22:41:00","date_gmt":"2025-01-04T22:41:00","guid":{"rendered":"http:\/\/blog.firatyasar.com\/?p=356"},"modified":"2025-03-29T22:44:58","modified_gmt":"2025-03-29T22:44:58","slug":"ai-agents-extensions-kullanimi","status":"publish","type":"post","link":"https:\/\/blog.firatyasar.com\/?p=356","title":{"rendered":"AI Agents &#8211; Extensions Kullan\u0131m\u0131"},"content":{"rendered":"\n<p>Agent sistemlerinin ger\u00e7ek d\u00fcnyadaki hizmetlerle etkile\u015fim kurabilmesi i\u00e7in yaln\u0131zca reasoning kabiliyetine sahip olmas\u0131 yetmez; ayn\u0131 zamanda API\u2019lerle do\u011fru, esnek ve hataya dayan\u0131kl\u0131 \u015fekilde \u00e7al\u0131\u015fabilmesi gerekir. Bu noktada devreye <strong>Extensions<\/strong> girer.<\/p>\n\n\n\n<h3>Extension Nedir?<\/h3>\n\n\n\n<p>Extension\u2019lar\u0131 anlaman\u0131n en kolay yolu, onlar\u0131 bir agent ile API aras\u0131nda standart bir k\u00f6pr\u00fc olarak d\u00fc\u015f\u00fcnmektir. Bu yap\u0131 sayesinde, agent\u2019lar bir API\u2019yi <strong>altta yatan implementasyondan ba\u011f\u0131ms\u0131z<\/strong> olarak do\u011fru \u015fekilde \u00e7a\u011f\u0131rabilir, gerekli parametreleri anlayabilir ve ihtiyaca g\u00f6re API\u2019yi uygun bi\u00e7imde kullanabilir.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"990\" height=\"171\" src=\"\/wp-content\/uploads\/2025\/03\/image-14.png\" alt=\"\" class=\"wp-image-357\" srcset=\"\/wp-content\/uploads\/2025\/03\/image-14.png 990w, \/wp-content\/uploads\/2025\/03\/image-14-300x52.png 300w, \/wp-content\/uploads\/2025\/03\/image-14-768x133.png 768w, \/wp-content\/uploads\/2025\/03\/image-14-660x114.png 660w\" sizes=\"(max-width: 990px) 100vw, 990px\" \/><\/figure>\n\n\n\n<h3>Klasik Yakla\u015f\u0131m\u0131n S\u0131n\u0131rlar\u0131<\/h3>\n\n\n\n<p>Geleneksel y\u00f6ntemde, geli\u015ftiriciler kullan\u0131c\u0131dan gelen sorgular\u0131 analiz eden \u00f6zel kodlar yazar. \u00d6rne\u011fin:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>Kullan\u0131c\u0131: <em>&#8220;Austin&#8217;den Z\u00fcrih&#8217;e u\u00e7u\u015f rezervasyonu yapmak istiyorum.&#8221;<\/em><\/p><\/blockquote>\n\n\n\n<p>Bu senaryoda geli\u015ftiricinin kodu, \u201cAustin\u201d ve \u201cZ\u00fcrih\u201d gibi yer bilgilerini kullan\u0131c\u0131 sorgusundan ay\u0131klamal\u0131 ve ard\u0131ndan u\u00e7u\u015f rezervasyon API\u2019sine bu verilerle istek g\u00f6ndermelidir. Ancak:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>Kullan\u0131c\u0131: <em>&#8220;Z\u00fcrih&#8217;e u\u00e7u\u015f rezervasyonu yapmak istiyorum.&#8221;<\/em><br>(Kalk\u0131\u015f noktas\u0131 belirtilmemi\u015f.)<\/p><\/blockquote>\n\n\n\n<p>Bu durumda, gerekli bilgi eksik oldu\u011fu i\u00e7in API \u00e7a\u011fr\u0131s\u0131 ba\u015far\u0131s\u0131z olur. B\u00f6yle bir hata senaryosunu \u00f6nlemek i\u00e7in kodun daha da karma\u015f\u0131k hale gelmesi gerekir. Bu yakla\u015f\u0131m, \u00f6l\u00e7eklenebilirlikten uzak ve her yeni varyasyonda k\u0131r\u0131lmaya a\u00e7\u0131k bir yap\u0131d\u0131r.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3>Extension ile Daha Dayan\u0131kl\u0131 Bir Yap\u0131<\/h3>\n\n\n\n<p><strong>Extension<\/strong> yap\u0131s\u0131, bu problemlere kar\u015f\u0131 daha diren\u00e7li ve \u00f6l\u00e7eklenebilir bir \u00e7\u00f6z\u00fcm sunar. Nas\u0131l m\u0131?<\/p>\n\n\n\n<ol><li>Agent\u2019a, bir API endpoint\u2019ini nas\u0131l kullanaca\u011f\u0131n\u0131 <strong>\u00f6rnekler<\/strong> \u00fczerinden \u00f6\u011fretir.<\/li><li>Ba\u015far\u0131l\u0131 bir API \u00e7a\u011fr\u0131s\u0131 i\u00e7in hangi <strong>parametrelerin<\/strong> gerekti\u011fini agent\u2019a bildirir.<\/li><\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"940\" height=\"277\" src=\"\/wp-content\/uploads\/2025\/03\/image-15.png\" alt=\"\" class=\"wp-image-358\" srcset=\"\/wp-content\/uploads\/2025\/03\/image-15.png 940w, \/wp-content\/uploads\/2025\/03\/image-15-300x88.png 300w, \/wp-content\/uploads\/2025\/03\/image-15-768x226.png 768w, \/wp-content\/uploads\/2025\/03\/image-15-660x194.png 660w\" sizes=\"(max-width: 940px) 100vw, 940px\" \/><\/figure>\n\n\n\n<p>Bu yakla\u015f\u0131mda agent, \u00e7al\u0131\u015fma zaman\u0131nda (runtime) modeli ve \u00f6rnekleri kullanarak, hangi Extension&#8217;\u0131n kullan\u0131c\u0131 sorgusunu \u00e7\u00f6zmek i\u00e7in uygun oldu\u011funu belirler. Bu da Extensions\u2019\u0131n en b\u00fcy\u00fck avantajlar\u0131ndan biri olan <strong>dinamik se\u00e7im yetene\u011fini<\/strong> \u00f6ne \u00e7\u0131kar\u0131r.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3>Geli\u015ftirici Mant\u0131\u011f\u0131yla Paralele D\u00fc\u015f\u00fcnmek<\/h3>\n\n\n\n<p>Extension kullan\u0131m\u0131n\u0131, bir yaz\u0131l\u0131m geli\u015ftiricinin API se\u00e7imi yapmas\u0131na benzetebiliriz. \u00d6rne\u011fin:<\/p>\n\n\n\n<ul><li>U\u00e7u\u015f rezervasyonu i\u00e7in geli\u015ftirici <strong>Google Flights API<\/strong>\u2019sini kullanabilir.<\/li><li>En yak\u0131n kahve d\u00fckkan\u0131n\u0131 bulmak i\u00e7in <strong>Google Maps API<\/strong>\u2019si tercih edilebilir.<\/li><\/ul>\n\n\n\n<p>Ayn\u0131 \u015fekilde, bir agent da elindeki tan\u0131ml\u0131 Extension\u2019lar aras\u0131ndan en uygun olan\u0131 se\u00e7er. \u00d6rne\u011fin, Google Flights Extension aktifse ve kullan\u0131c\u0131 \u201cShow me flights from Austin to Zurich leaving next Friday\u201d dedi\u011finde, agent bu Extension\u2019\u0131 \u00e7a\u011f\u0131rarak do\u011fru sonu\u00e7lar \u00fcretir.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"965\" height=\"189\" src=\"\/wp-content\/uploads\/2025\/03\/image-16.png\" alt=\"\" class=\"wp-image-359\" srcset=\"\/wp-content\/uploads\/2025\/03\/image-16.png 965w, \/wp-content\/uploads\/2025\/03\/image-16-300x59.png 300w, \/wp-content\/uploads\/2025\/03\/image-16-768x150.png 768w, \/wp-content\/uploads\/2025\/03\/image-16-660x129.png 660w\" sizes=\"(max-width: 965px) 100vw, 965px\" \/><\/figure>\n\n\n\n<p>Bu senaryoyu Gemini uygulamas\u0131nda deneyimlemek m\u00fcmk\u00fcnd\u00fcr:<br><strong>Settings > Extensions<\/strong> b\u00f6l\u00fcm\u00fcnden Google Flights Extension\u2019\u0131 aktif hale getirip, yukar\u0131daki gibi bir sorgu g\u00f6ndererek ger\u00e7ek zamanl\u0131 kullan\u0131m\u0131n\u0131 g\u00f6zlemleyebilirsiniz.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2>Sonu\u00e7<\/h2>\n\n\n\n<p>Extensions, agent\u2019lar\u0131n ger\u00e7ek d\u00fcnyadaki API\u2019lerle esnek ve do\u011fru \u015fekilde etkile\u015fim kurabilmesini sa\u011flayan kritik bir bile\u015fendir. Sadece API \u00e7a\u011fr\u0131s\u0131 yapmay\u0131 de\u011fil, hangi parametrelerin gerekti\u011fini, nas\u0131l yan\u0131t al\u0131naca\u011f\u0131n\u0131 ve hatal\u0131 durumlarla nas\u0131l ba\u015fa \u00e7\u0131k\u0131laca\u011f\u0131n\u0131 agent\u2019a \u00f6\u011freterek, sistemi \u00e7ok daha dayan\u0131kl\u0131 ve \u00f6l\u00e7eklenebilir hale getirir. Bu yap\u0131, klasik yaz\u0131l\u0131m geli\u015ftirme mant\u0131\u011f\u0131yla b\u00fcy\u00fck benzerlik ta\u015f\u0131rken, ayn\u0131 zamanda agent\u2019lar\u0131n otonom ve adaptif \u00e7al\u0131\u015fmas\u0131na olanak tan\u0131r.<\/p>\n\n\n\n<p><strong>Kaynak<\/strong>: AI Agent Books &#8211; Authors: Julia Wiesinger, Patrick Marlow and Vladimir Vuskovic<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Agent sistemlerinin ger\u00e7ek d\u00fcnyadaki hizmetlerle etkile\u015fim kurabilmesi i\u00e7in yaln\u0131zca reasoning kabiliyetine sahip olmas\u0131 yetmez; ayn\u0131 zamanda API\u2019lerle do\u011fru, esnek ve hataya dayan\u0131kl\u0131 \u015fekilde \u00e7al\u0131\u015fabilmesi gerekir. Bu noktada devreye Extensions girer. Extension Nedir? Extension\u2019lar\u0131 anlaman\u0131n en kolay yolu, onlar\u0131 bir agent ile API aras\u0131nda standart bir k\u00f6pr\u00fc olarak d\u00fc\u015f\u00fcnmektir. Bu yap\u0131 sayesinde, agent\u2019lar bir API\u2019yi altta\u2026 <span class=\"read-more\"><a href=\"https:\/\/blog.firatyasar.com\/?p=356\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":348,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[156,151,85,150],"_links":{"self":[{"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/posts\/356"}],"collection":[{"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=356"}],"version-history":[{"count":1,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/posts\/356\/revisions"}],"predecessor-version":[{"id":360,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/posts\/356\/revisions\/360"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/media\/348"}],"wp:attachment":[{"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=356"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=356"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=356"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}