{"id":39242,"date":"2026-02-17T12:00:38","date_gmt":"2026-02-17T09:00:38","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/kimten-node-js-icin-cerceve-yuku-olmadan-minik-bir-ajan-dongusu\/"},"modified":"2026-02-17T12:00:38","modified_gmt":"2026-02-17T09:00:38","slug":"kimten-node-js-icin-cerceve-yuku-olmadan-minik-bir-ajan-dongusu","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/kimten-node-js-icin-cerceve-yuku-olmadan-minik-bir-ajan-dongusu\/","title":{"rendered":"Kimten: Node.js \u0130\u00e7in \u00c7er\u00e7eve Y\u00fck\u00fc Olmadan Minik Bir Ajan D\u00f6ng\u00fcs\u00fc"},"content":{"rendered":"<h2>Kimten: Node.js \u0130\u00e7in \u00c7er\u00e7eve Y\u00fck\u00fc Olmadan Minik Bir Ajan D\u00f6ng\u00fcs\u00fc<\/h2>\n<p>Yapay zeka ve b\u00fcy\u00fck dil modelleri (LLM) \u00e7a\u011f\u0131nda, uygulamalar\u0131m\u0131za &#8220;ak\u0131l&#8221; katmak giderek \u00f6nem kazan\u0131yor. Ancak Node.js ekosisteminde, bu t\u00fcr ak\u0131ll\u0131 sistemleri in\u015fa ederken a\u011f\u0131r \u00e7er\u00e7evelerin getirdi\u011fi y\u00fckler geli\u015ftiriciler i\u00e7in zorlay\u0131c\u0131 olabilir. Kimten, i\u015fte bu noktada devreye giriyor: Node.js i\u00e7in tasarlanm\u0131\u015f, minimalist, hafif ve esnek bir ajan d\u00f6ng\u00fcs\u00fc k\u00fct\u00fcphanesi. Bu makalede Kimten&#8217;in temel prensiplerini, \u00e7al\u0131\u015fma mekanizmas\u0131n\u0131 ve projelerinizde nas\u0131l kullanabilece\u011finizi ke\u015ffedece\u011fiz.<\/p>\n<h3>Kimten Nedir ve Neden \u00d6nemlidir?<\/h3>\n<p>Kimten, ad\u0131n\u0131 &#8220;k\u00fc\u00e7\u00fck&#8221; ve &#8220;yap\u0131&#8221; kelimelerinden alan, Node.js ortam\u0131nda \u00e7al\u0131\u015fan, minimal bir ajan d\u00f6ng\u00fcs\u00fc k\u00fct\u00fcphanesidir. Geleneksel olarak, ajan tabanl\u0131 sistemler veya LLM entegrasyonlar\u0131 i\u00e7in geli\u015ftirilen \u00e7\u00f6z\u00fcmler genellikle kapsaml\u0131 ve a\u011f\u0131r \u00e7er\u00e7evelerle birlikte gelir. Kimten ise, bu y\u00fckten ka\u00e7\u0131narak, sadece temel ajan d\u00f6ng\u00fcs\u00fc mant\u0131\u011f\u0131n\u0131 sunar ve geli\u015ftiricilere maksimum esneklik sa\u011flar.<\/p>\n<h4>Ajan D\u00f6ng\u00fcs\u00fc Kavram\u0131<\/h4>\n<p>Bir ajan d\u00f6ng\u00fcs\u00fc, bir yapay zeka ajan\u0131n\u0131n s\u00fcrekli olarak \u00e7evresini g\u00f6zlemledi\u011fi, bu g\u00f6zlemler \u00fczerinde d\u00fc\u015f\u00fcnd\u00fc\u011f\u00fc ve ard\u0131ndan bir eylem ger\u00e7ekle\u015ftirdi\u011fi temel bir mimaridir. Bu d\u00f6ng\u00fc genellikle &#8220;G\u00f6zlemle (Perceive) -> D\u00fc\u015f\u00fcn (Deliberate) -> Hareket Et (Act)&#8221; ad\u0131mlar\u0131n\u0131 i\u00e7erir. Kimten, bu temel d\u00f6ng\u00fcy\u00fc Node.js geli\u015ftiricilerinin kolayca kullanabilece\u011fi, \u00f6zelle\u015ftirilebilir bir yap\u0131ya oturtur.<\/p>\n<h4>Geleneksel \u00c7er\u00e7evelerin Getirdi\u011fi Y\u00fckler<\/h4>\n<p>Piyasada LangChain.js gibi g\u00fc\u00e7l\u00fc ve kapsaml\u0131 LLM \u00e7er\u00e7eveleri bulunsa da, bu \u00e7er\u00e7eveler genellikle geni\u015f bir \u00f6zellik setini ve soyutlama katmanlar\u0131n\u0131 beraberinde getirir. Bu durum, basit bir ajan d\u00f6ng\u00fcs\u00fc kurmak isteyen veya belirli bir mimariye s\u0131k\u0131 s\u0131k\u0131ya ba\u011fl\u0131 kalmak istemeyen projeler i\u00e7in gereksiz karma\u015f\u0131kl\u0131k ve performans y\u00fck\u00fc anlam\u0131na gelebilir. Ba\u011f\u0131ml\u0131l\u0131k a\u011fac\u0131n\u0131n b\u00fcy\u00fcmesi, ba\u015flang\u0131\u00e7 s\u00fcrelerinin uzamas\u0131 ve kod taban\u0131n\u0131n \u015fi\u015fmesi gibi sorunlar ortaya \u00e7\u0131kabilir.<\/p>\n<h4>Kimten&#8217;in Temel Felsefesi: Hafiflik ve Esneklik<\/h4>\n<p>Kimten&#8217;in temel amac\u0131, geli\u015ftiricilere sadece bir ajan d\u00f6ng\u00fcs\u00fc i\u00e7in gerekli olan minimum yap\u0131land\u0131rmay\u0131 ve mant\u0131\u011f\u0131 sunmakt\u0131r. Bu sayede:<\/p>\n<ul>\n<li><strong>Minimal Ba\u011f\u0131ml\u0131l\u0131klar:<\/strong> Projenize gereksiz paketler eklemekten ka\u00e7\u0131n\u0131rs\u0131n\u0131z.<\/li>\n<li><strong>Y\u00fcksek Kontrol:<\/strong> D\u00f6ng\u00fcn\u00fcn her ad\u0131m\u0131n\u0131 ve ajan davran\u0131\u015f\u0131n\u0131 tamamen kontrol edebilirsiniz.<\/li>\n<li><strong>Kolay Entegrasyon:<\/strong> Mevcut Node.js projelerinize sorunsuz bir \u015fekilde entegre edilebilir.<\/li>\n<li><strong>Performans:<\/strong> Daha az soyutlama katman\u0131 sayesinde daha iyi performans elde edilebilir.<\/li>\n<\/ul>\n<p>Kimten, &#8220;sadece ihtiyac\u0131n\u0131z olan\u0131 kullan\u0131n&#8221; felsefesini benimseyerek, geli\u015ftiricilere \u00f6zel ihtiya\u00e7lar\u0131na g\u00f6re \u015fekillendirilebilecek bir temel sunar.<\/p>\n<h3>Kimten&#8217;in Temel Bile\u015fenleri ve \u00c7al\u0131\u015fma Prensibi<\/h3>\n<p>Kimten, basit ama g\u00fc\u00e7l\u00fc bir yap\u0131 \u00fczerine in\u015fa edilmi\u015ftir. Temel olarak bir ajan tan\u0131m\u0131, bir d\u00f6ng\u00fc mekanizmas\u0131 ve bu d\u00f6ng\u00fc i\u00e7inde kullan\u0131lan ara\u00e7lardan olu\u015fur.<\/p>\n<h4>Ajan Tan\u0131m\u0131 ve Rolleri<\/h4>\n<p>Kimten&#8217;de bir ajan, belirli bir g\u00f6revi yerine getirmek \u00fczere tasarlanm\u0131\u015f bir varl\u0131kt\u0131r. Her ajan, kendi i\u00e7 durumuna, \u00e7evresinden ald\u0131\u011f\u0131 g\u00f6zlemlere ve sahip oldu\u011fu ara\u00e7lara g\u00f6re hareket eder. Ajan\u0131n rol\u00fc, onun ne t\u00fcr g\u00f6revleri \u00fcstlenebilece\u011fini ve hangi ba\u011flamda \u00e7al\u0131\u015faca\u011f\u0131n\u0131 belirler. \u00d6rne\u011fin, bir &#8220;G\u00f6rev Y\u00f6neticisi Ajan\u0131&#8221; veya bir &#8220;Veri Analizi Ajan\u0131&#8221; tan\u0131mlayabilirsiniz.<\/p>\n<h4>D\u00f6ng\u00fc Mekanizmas\u0131: G\u00f6zlemle, D\u00fc\u015f\u00fcn, Hareket Et<\/h4>\n<p>Kimten&#8217;in kalbinde, ajan d\u00f6ng\u00fcs\u00fcn\u00fcn temel ad\u0131mlar\u0131n\u0131 y\u00f6neten bir mekanizma bulunur:<\/p>\n<ol>\n<li><strong>G\u00f6zlemle (Observe):<\/strong> Ajan, \u00e7evresinden veya kendisine verilen girdilerden bilgi toplar. Bu, bir API \u00e7a\u011fr\u0131s\u0131n\u0131n sonucu, bir veritaban\u0131 sorgusu veya bir kullan\u0131c\u0131 girdisi olabilir.<\/li>\n<li><strong>D\u00fc\u015f\u00fcn (Deliberate):<\/strong> Toplanan bilgiler \u0131\u015f\u0131\u011f\u0131nda ajan, bir sonraki eylemini veya karar\u0131n\u0131 belirler. Bu ad\u0131m genellikle bir LLM ile etkile\u015fimi i\u00e7erir; LLM, g\u00f6zlemleri yorumlar ve bir eylem plan\u0131 veya ara\u00e7 kullan\u0131m\u0131 \u00f6nerir.<\/li>\n<li><strong>Hareket Et (Act):<\/strong> Ajan, d\u00fc\u015f\u00fcnme ad\u0131m\u0131nda belirlenen eylemi ger\u00e7ekle\u015ftirir. Bu, bir arac\u0131 \u00e7a\u011f\u0131rmak, bir veriyi kaydetmek, bir mesaj g\u00f6ndermek veya d\u00f6ng\u00fcy\u00fc sonland\u0131rmak olabilir.<\/li>\n<\/ol>\n<p>Bu ad\u0131mlar, belirli ko\u015fullar sa\u011flanana veya bir hata olu\u015fana kadar s\u00fcrekli olarak tekrar eder.<\/p>\n<h4>Ara\u00e7lar (Tools) ve \u0130\u015flevler<\/h4>\n<p>Ara\u00e7lar, ajanlar\u0131n \u00e7evreleriyle etkile\u015fime girmesini sa\u011flayan i\u015flevlerdir. Bir ara\u00e7, bir API \u00e7a\u011fr\u0131s\u0131 yapabilir, bir veritaban\u0131na yazabilir, bir dosya okuyabilir veya herhangi bir programatik g\u00f6revi yerine getirebilir. Kimten, ajanlar\u0131n kullanabilece\u011fi ara\u00e7lar\u0131 tan\u0131mlaman\u0131za ve bunlar\u0131 d\u00f6ng\u00fc i\u00e7inde dinamik olarak \u00e7a\u011f\u0131rmas\u0131na olanak tan\u0131r. \u00d6rne\u011fin, bir &#8220;hava durumu arac\u0131&#8221; veya bir &#8220;e-posta g\u00f6nderme arac\u0131&#8221; olu\u015fturabilirsiniz.<\/p>\n<h4>Durum Y\u00f6netimi<\/h4>\n<p>Bir ajan d\u00f6ng\u00fcs\u00fcnde durum y\u00f6netimi kritik \u00f6neme sahiptir. Ajan\u0131n \u00f6nceki ad\u0131mlarda ne yapt\u0131\u011f\u0131, hangi bilgilere ula\u015ft\u0131\u011f\u0131 veya hangi kararlar\u0131 ald\u0131\u011f\u0131 gibi bilgiler, d\u00f6ng\u00fcn\u00fcn sonraki ad\u0131mlar\u0131n\u0131 etkiler. Kimten, ajanlar\u0131n i\u00e7 durumlar\u0131n\u0131 y\u00f6netmeleri i\u00e7in esnek mekanizmalar sunar. Bu durum, genellikle bir JSON objesi veya basit bir JavaScript objesi olarak saklan\u0131r ve her d\u00f6ng\u00fc ad\u0131m\u0131nda g\u00fcncellenebilir.<\/p>\n<h3>Kimten ile Bir Ajan D\u00f6ng\u00fcs\u00fc Olu\u015fturma: Ad\u0131m Ad\u0131m<\/h3>\n<p>Kimten ile bir ajan d\u00f6ng\u00fcs\u00fc olu\u015fturmak olduk\u00e7a basittir. \u0130\u015fte temel ad\u0131mlar:<\/p>\n<h4>Kurulum ve \u0130lk Ad\u0131mlar<\/h4>\n<p>Kimten, npm \u00fczerinden kolayca kurulabilir:<\/p>\n<pre><code class=\"language-bash\">npm install kimten<\/pre>\n<p><\/code><br \/>\nArd\u0131ndan, temel bir ajan d\u00f6ng\u00fcs\u00fc yap\u0131s\u0131 olu\u015fturmaya ba\u015flayabilirsiniz.<\/p>\n<h4>Ajan Tan\u0131mlama ve Konfig\u00fcrasyon<\/h4>\n<p>Bir Kimten ajan\u0131, d\u00f6ng\u00fcn\u00fcn nas\u0131l \u00e7al\u0131\u015faca\u011f\u0131n\u0131 tan\u0131mlayan bir dizi ad\u0131mdan olu\u015fur. Her ad\u0131m, bir i\u015flev olarak tan\u0131mlan\u0131r ve ajan d\u00f6ng\u00fcs\u00fc i\u00e7inde s\u0131rayla veya ko\u015fullu olarak y\u00fcr\u00fct\u00fcl\u00fcr.<\/p>\n<pre><code class=\"language-javascript\">\/\/ agent.js\nconst { createAgent } = require('kimten');\n\nconst myAgent = createAgent({\n  name: 'G\u00f6rev Y\u00f6neticisi Ajan\u0131',\n  initialState: {\n    task: null,\n    status: 'beklemede',\n    history: []\n  },\n  steps: {\n    \/\/ G\u00f6zlemle ad\u0131m\u0131\n    observe: async ({ state, tools, context }) => {\n      if (!state.task) {\n        \/\/ D\u0131\u015far\u0131dan bir g\u00f6rev gelmesini bekle\n        console.log('Yeni g\u00f6rev bekleniyor...');\n        return { next: 'idle' }; \/\/ Bir sonraki ad\u0131ma ge\u00e7meden bekle\n      }\n      return { next: 'think' };\n    },\n    \n    \/\/ D\u00fc\u015f\u00fcn ad\u0131m\u0131\n    think: async ({ state, tools, context }) => {\n      console.log(<code>G\u00f6revi d\u00fc\u015f\u00fcn\u00fcyorum: ${state.task}<\/code>);\n      \/\/ Burada bir LLM \u00e7a\u011fr\u0131s\u0131 yap\u0131labilir\n      const llmResponse = await tools.callLLM(<code>\"${state.task}\" g\u00f6revini nas\u0131l yapmal\u0131y\u0131m?<\/code>);\n      state.plan = llmResponse.plan; \/\/ LLM'den gelen plan\u0131 kaydet\n      state.history.push({ step: 'think', output: llmResponse.plan });\n      return { next: 'act' };\n    },\n    \n    \/\/ Hareket Et ad\u0131m\u0131\n    act: async ({ state, tools, context }) => {\n      console.log(<code>G\u00f6revi uyguluyorum: ${state.plan}<\/code>);\n      \/\/ Burada plan\u0131 uygulayacak ara\u00e7lar \u00e7a\u011fr\u0131labilir\n      await tools.executePlan(state.plan);\n      state.status = 'tamamland\u0131';\n      state.history.push({ step: 'act', output: 'G\u00f6rev tamamland\u0131.' });\n      return { next: 'finish' }; \/\/ D\u00f6ng\u00fcy\u00fc sonland\u0131r\n    },\n\n    \/\/ Bo\u015fta bekleme ad\u0131m\u0131 (g\u00f6rev gelene kadar)\n    idle: async ({ state, tools, context }) => {\n      console.log('Ajan bo\u015fta. Yeni g\u00f6rev bekliyor...');\n      \/\/ Bu ad\u0131mda d\u0131\u015far\u0131dan g\u00f6rev alacak bir mekanizma olabilir\n      \/\/ \u00d6rne\u011fin, bir mesaj kuyru\u011fundan dinleme\n      return { next: 'observe' }; \/\/ Tekrar g\u00f6zlemlemeye d\u00f6n\n    },\n\n    \/\/ Bitirme ad\u0131m\u0131\n    finish: async ({ state, tools, context }) => {\n      console.log('Ajan d\u00f6ng\u00fcs\u00fc tamamland\u0131.');\n      return { done: true }; \/\/ D\u00f6ng\u00fcy\u00fc bitir\n    }\n  }\n});\n\nmodule.exports = myAgent;<\/pre>\n<p><\/code><\/p>\n<h4>Ara\u00e7lar\u0131 Entegre Etme<\/h4>\n<p>Ajan\u0131n kullanaca\u011f\u0131 ara\u00e7lar\u0131 tan\u0131mlaman\u0131z gerekir. Bu ara\u00e7lar, ajan\u0131n <code>tools<\/code> objesi arac\u0131l\u0131\u011f\u0131yla eri\u015febilece\u011fi i\u015flevlerdir.<\/p>\n<pre><code class=\"language-javascript\">\/\/ tools.js\nconst callLLM = async (prompt) => {\n  console.log(<code>LLM \u00e7a\u011fr\u0131s\u0131: ${prompt}<\/code>);\n  \/\/ Ger\u00e7ek bir LLM API \u00e7a\u011fr\u0131s\u0131 burada yap\u0131l\u0131r\n  \/\/ \u00d6rne\u011fin, OpenAI, Gemini vb.\n  return { plan: <code>\"${prompt}\" i\u00e7in bir plan olu\u015fturuldu.<\/code> };\n};\n\nconst executePlan = async (plan) => {\n  console.log(<code>Plan y\u00fcr\u00fct\u00fcl\u00fcyor: ${plan}<\/code>);\n  \/\/ Ger\u00e7ek g\u00f6rev y\u00fcr\u00fctme mant\u0131\u011f\u0131 burada yer al\u0131r\n  await new Promise(resolve => setTimeout(resolve, 1000)); \/\/ Sim\u00fclasyon\n  console.log('Plan ba\u015far\u0131yla y\u00fcr\u00fct\u00fcld\u00fc.');\n  return true;\n};\n\nmodule.exports = {\n  callLLM,\n  executePlan,\n  \/\/ Di\u011fer ara\u00e7lar buraya eklenebilir\n};<\/pre>\n<p><\/code><\/p>\n<h4>D\u00f6ng\u00fcy\u00fc Ba\u015flatma ve Y\u00f6netme<\/h4>\n<p>Ajan\u0131 ve ara\u00e7lar\u0131 tan\u0131mlad\u0131ktan sonra, d\u00f6ng\u00fcy\u00fc ba\u015flatabilir ve y\u00f6netebilirsiniz.<\/p>\n<pre><code class=\"language-javascript\">\/\/ index.js\nconst myAgent = require('.\/agent');\nconst tools = require('.\/tools');\n\nasync function runAgent() {\n  const agentInstance = myAgent.createInstance({ tools });\n\n  \/\/ Ajana bir g\u00f6rev atayal\u0131m\n  agentInstance.setState({ task: 'E-posta tasla\u011f\u0131 haz\u0131rla ve g\u00f6nder' });\n\n  \/\/ D\u00f6ng\u00fcy\u00fc ba\u015flat\n  await agentInstance.run();\n\n  console.log('Son durum:', agentInstance.getState());\n}\n\nrunAgent();<\/pre>\n<p><\/code><\/p>\n<h3>Geli\u015fmi\u015f Kullan\u0131m Senaryolar\u0131 ve \u00d6zelle\u015ftirme<\/h3>\n<p>Kimten'in esnek yap\u0131s\u0131 sayesinde, karma\u015f\u0131k ajan davran\u0131\u015flar\u0131 ve \u00f6zel senaryolar kolayca uygulanabilir.<\/p>\n<h4>\u00c7oklu Ajan Sistemleri<\/h4>\n<p>Kimten, her ajan\u0131 ba\u011f\u0131ms\u0131z bir varl\u0131k olarak ele ald\u0131\u011f\u0131 i\u00e7in, birden fazla ajan\u0131 bir araya getirerek karma\u015f\u0131k \u00e7oklu ajan sistemleri olu\u015fturabilirsiniz. Ajanlar, birbirleriyle mesajla\u015farak veya payla\u015f\u0131lan bir \"\u00e7evre\" \u00fczerinden etkile\u015fime ge\u00e7erek i\u015fbirli\u011fi yapabilirler. \u00d6rne\u011fin, bir ajan g\u00f6revi par\u00e7alara ay\u0131r\u0131p di\u011fer ajanlara atayabilir.<\/p>\n<h4>\u00d6zel D\u00f6ng\u00fc Ad\u0131mlar\u0131 ve Karar Mekanizmalar\u0131<\/h4>\n<p>Kimten'in <code>steps<\/code> objesi, ajan\u0131n d\u00f6ng\u00fc ad\u0131mlar\u0131n\u0131 tamamen \u00f6zelle\u015ftirmenize olanak tan\u0131r. <code>next<\/code> d\u00f6n\u00fc\u015f de\u011feri ile hangi ad\u0131ma ge\u00e7ilece\u011fini dinamik olarak belirleyebilir, ko\u015fullu dallanmalar yapabilir veya belirli durumlarda d\u00f6ng\u00fcy\u00fc sonland\u0131rabilirsiniz. Bu, ajan\u0131n daha sofistike karar verme yetenekleri geli\u015ftirmesini sa\u011flar. \u00d6rne\u011fin, bir hata durumunda farkl\u0131 bir \"hata d\u00fczeltme\" ad\u0131m\u0131na ge\u00e7ilebilir.<\/p>\n<h4>Harici Servis Entegrasyonlar\u0131 (LLM'ler, Veritabanlar\u0131 vb.)<\/h4>\n<p>Kimten, LLM'ler veya veritabanlar\u0131 gibi harici servislerle entegrasyon i\u00e7in \u00f6zel bir k\u0131s\u0131tlama getirmez. <code>tools<\/code> objesi arac\u0131l\u0131\u011f\u0131yla istedi\u011finiz herhangi bir servisi \u00e7a\u011f\u0131rabilirsiniz. Bu, ajan\u0131n ger\u00e7ek d\u00fcnya verileriyle \u00e7al\u0131\u015fmas\u0131n\u0131 ve dinamik olarak yan\u0131t vermesini sa\u011flar. Tek yapman\u0131z gereken, bu servisleri \u00e7a\u011f\u0131ran i\u015flevleri <code>tools<\/code> objesine eklemektir.<\/p>\n<h4>Hata Y\u00f6netimi ve Dayan\u0131kl\u0131l\u0131k<\/h4>\n<p>Ajan d\u00f6ng\u00fclerinde hatalar\u0131n do\u011fru bir \u015fekilde ele al\u0131nmas\u0131, sistemin dayan\u0131kl\u0131l\u0131\u011f\u0131 i\u00e7in \u00f6nemlidir. Kimten'in ad\u0131m tabanl\u0131 yap\u0131s\u0131, her ad\u0131mda hata yakalama mekanizmalar\u0131 (try-catch bloklar\u0131) eklemenize olanak tan\u0131r. Ayr\u0131ca, ajan\u0131n durumunu kaydederek ve belirli aral\u0131klarla kontrol noktalar\u0131 olu\u015fturarak, hata durumunda ajan\u0131n son bilinen iyi durumdan devam etmesini sa\u011flayabilirsiniz.<\/p>\n<h3>Kimten'in Avantajlar\u0131 ve Dezavantajlar\u0131<\/h3>\n<p>Her k\u00fct\u00fcphane gibi Kimten'in de kendine \u00f6zg\u00fc avantajlar\u0131 ve dezavantajlar\u0131 vard\u0131r.<\/p>\n<h4>Performans ve Kaynak Verimlili\u011fi<\/h4>\n<p>Kimten'in en b\u00fcy\u00fck avantajlar\u0131ndan biri, minimalist yap\u0131s\u0131 sayesinde sundu\u011fu y\u00fcksek performans ve kaynak verimlili\u011fidir. Gereksiz soyutlama katmanlar\u0131 ve ba\u011f\u0131ml\u0131l\u0131klar olmad\u0131\u011f\u0131 i\u00e7in, \u00f6zellikle kaynak k\u0131s\u0131tl\u0131 ortamlarda veya y\u00fcksek performans gerektiren uygulamalarda tercih edilebilir. Node.js'in asenkron yap\u0131s\u0131yla birle\u015fti\u011finde, ajan d\u00f6ng\u00fcleri olduk\u00e7a verimli \u00e7al\u0131\u015fabilir.<\/p>\n<h4>Geli\u015ftirme H\u0131z\u0131 ve Esneklik<\/h4>\n<p>Geli\u015ftiricilere tam kontrol sa\u011flamas\u0131, Kimten ile h\u0131zl\u0131 prototipleme ve \u00f6zel \u00e7\u00f6z\u00fcmler geli\u015ftirmeyi kolayla\u015ft\u0131r\u0131r. Kendi i\u015f mant\u0131\u011f\u0131n\u0131z\u0131 do\u011frudan ajan ad\u0131mlar\u0131na entegre edebilir, \u00e7er\u00e7eve k\u0131s\u0131tlamalar\u0131yla u\u011fra\u015fmak zorunda kalmazs\u0131n\u0131z. Bu esneklik, \u00f6zellikle ni\u015f veya deneysel AI uygulamalar\u0131 i\u00e7in idealdir.<\/p>\n<h4>\u00d6\u011frenme E\u011frisi ve Topluluk Deste\u011fi<\/h4>\n<p>Kimten, di\u011fer b\u00fcy\u00fck LLM \u00e7er\u00e7evelerine k\u0131yasla daha k\u00fc\u00e7\u00fck bir \u00f6\u011frenme e\u011frisine sahiptir, \u00e7\u00fcnk\u00fc temel JavaScript ve asenkron programlama bilgisi yeterlidir. Ancak, yeni bir k\u00fct\u00fcphane oldu\u011fu i\u00e7in topluluk deste\u011fi ve kaynaklar\u0131 hen\u00fcz di\u011fer b\u00fcy\u00fck projelere g\u00f6re daha s\u0131n\u0131rl\u0131 olabilir. Bu durum, karma\u015f\u0131k sorunlarla kar\u015f\u0131la\u015f\u0131ld\u0131\u011f\u0131nda kendi \u00e7\u00f6z\u00fcmlerinizi \u00fcretmenizi gerektirebilir.<\/p>\n<h4>Kapsam ve S\u0131n\u0131rlamalar<\/h4>\n<p>Kimten, \u00f6zellikle hafif ve \u00f6zelle\u015ftirilebilir ajan d\u00f6ng\u00fcleri olu\u015fturmak i\u00e7in tasarlanm\u0131\u015ft\u0131r. Ancak, do\u011fal dil i\u015fleme (NLP) zincirleri, prompt m\u00fchendisli\u011fi ara\u00e7lar\u0131 veya geli\u015fmi\u015f bellek y\u00f6netimi gibi \"kutuplu\" \u00e7\u00f6z\u00fcmler sunmaz. Bu t\u00fcr i\u015flevsellikleri projenize entegre etmek isterseniz, ek k\u00fct\u00fcphaneler (\u00f6rne\u011fin, bir LLM istemcisi) kullanman\u0131z ve bunlar\u0131 Kimten'in ara\u00e7lar\u0131na ba\u011flaman\u0131z gerekir. Kimten, bir orkestrasyon katman\u0131 olarak i\u015flev g\u00f6r\u00fcr, ancak t\u00fcm par\u00e7alar\u0131 kendisi sa\u011flamaz.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Kimten, Node.js geli\u015ftiricileri i\u00e7in LLM destekli ak\u0131ll\u0131 uygulamalar olu\u015ftururken \u00e7er\u00e7eve y\u00fck\u00fcnden ka\u00e7\u0131nmak isteyenler i\u00e7in m\u00fckemmel bir alternatiftir. Minimalist yap\u0131s\u0131, y\u00fcksek esnekli\u011fi ve kolay entegrasyon yetene\u011fi sayesinde, kendi \u00f6zel ajan d\u00f6ng\u00fclerinizi s\u0131f\u0131rdan in\u015fa etmenize olanak tan\u0131r. \u0130ster basit bir otomasyon g\u00f6revi, ister karma\u015f\u0131k bir \u00e7oklu ajan sistemi geli\u015ftiriyor olun, Kimten size temel yap\u0131 ta\u015flar\u0131n\u0131 sunarak projelerinizi h\u0131zland\u0131rabilir ve daha verimli hale getirebilir.<\/p>\n<h3>SSS (S\u0131k Sorulan Sorular)<\/h3>\n<h4>Kimten kimler i\u00e7in uygundur?<\/h4>\n<p>Kimten, \u00f6zellikle Node.js'te hafif, \u00f6zelle\u015ftirilebilir ve performans odakl\u0131 ajan d\u00f6ng\u00fcleri geli\u015ftirmek isteyen geli\u015ftiriciler i\u00e7in uygundur. B\u00fcy\u00fck LLM \u00e7er\u00e7evelerinin getirdi\u011fi karma\u015f\u0131kl\u0131ktan ka\u00e7\u0131nmak isteyenler veya kendi \u00f6zel mimarilerini kurmak isteyenler i\u00e7in idealdir.<\/p>\n<h4>Kimten'i hangi LLM'lerle kullanabilirim?<\/h4>\n<p>Kimten, belirli bir LLM'e ba\u011f\u0131ml\u0131 de\u011fildir. <code>tools<\/code> objesi arac\u0131l\u0131\u011f\u0131yla istedi\u011finiz herhangi bir LLM API'sini (OpenAI, Google Gemini, Anthropic Claude vb.) veya yerel bir LLM \u00e7\u00f6z\u00fcm\u00fcn\u00fc entegre edebilirsiniz.<\/p>\n<h4>Kimten'in performans\u0131 nas\u0131l?<\/h4>\n<p>Kimten, minimalist tasar\u0131m\u0131 sayesinde olduk\u00e7a performansl\u0131d\u0131r. Gereksiz soyutlamalar ve ba\u011f\u0131ml\u0131l\u0131klar olmad\u0131\u011f\u0131 i\u00e7in, di\u011fer daha a\u011f\u0131r \u00e7er\u00e7evelere k\u0131yasla daha az kaynak t\u00fcketir ve daha h\u0131zl\u0131 \u00e7al\u0131\u015fabilir.<\/p>\n<h4>Kimten'in \u00f6\u011frenme e\u011frisi y\u00fcksek mi?<\/h4>\n<p>Hay\u0131r, Kimten'in \u00f6\u011frenme e\u011frisi olduk\u00e7a d\u00fc\u015f\u00fckt\u00fcr. Temel JavaScript, asenkron programlama ve Promise bilgisi olan herkes Kimten ile kolayca ajan d\u00f6ng\u00fcleri olu\u015fturabilir.<\/p>\n<h4>B\u00fcy\u00fck projelerde Kimten kullan\u0131labilir mi?<\/h4>\n<p>Evet, Kimten'in mod\u00fcler ve esnek yap\u0131s\u0131, onu b\u00fcy\u00fck projelerde de kullan\u0131labilir k\u0131lar. Ancak, b\u00fcy\u00fck projelerde genellikle daha fazla ara\u00e7 ve entegrasyon ihtiyac\u0131 olaca\u011f\u0131 i\u00e7in, bu ek bile\u015fenleri Kimten'in <code>tools<\/code> ve <code>steps<\/code> yap\u0131s\u0131na uygun \u015fekilde entegre etmeniz gerekecektir. Kimten, bu entegrasyonlar i\u00e7in sa\u011flam bir temel sunar.<\/p>\n","protected":false},"excerpt":{"rendered":"Kimten: Node.","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":[136],"tags":[],"class_list":{"0":"post-39242","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-node-js","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>Kimten: Node.js \u0130\u00e7in \u00c7er\u00e7eve Y\u00fck\u00fc Olmadan Minik Bir Ajan D\u00f6ng\u00fcs\u00fc - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\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\/kimten-node-js-icin-cerceve-yuku-olmadan-minik-bir-ajan-dongusu\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kimten: Node.js \u0130\u00e7in \u00c7er\u00e7eve Y\u00fck\u00fc Olmadan Minik Bir Ajan D\u00f6ng\u00fcs\u00fc\" \/>\n<meta property=\"og:description\" content=\"Kimten: Node.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/kimten-node-js-icin-cerceve-yuku-olmadan-minik-bir-ajan-dongusu\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-17T09:00:38+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=\"12 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kimten-node-js-icin-cerceve-yuku-olmadan-minik-bir-ajan-dongusu\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kimten-node-js-icin-cerceve-yuku-olmadan-minik-bir-ajan-dongusu\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Kimten: Node.js \u0130\u00e7in \u00c7er\u00e7eve Y\u00fck\u00fc Olmadan Minik Bir Ajan D\u00f6ng\u00fcs\u00fc\",\"datePublished\":\"2026-02-17T09:00:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kimten-node-js-icin-cerceve-yuku-olmadan-minik-bir-ajan-dongusu\/\"},\"wordCount\":2029,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Node.js\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/kimten-node-js-icin-cerceve-yuku-olmadan-minik-bir-ajan-dongusu\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kimten-node-js-icin-cerceve-yuku-olmadan-minik-bir-ajan-dongusu\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/kimten-node-js-icin-cerceve-yuku-olmadan-minik-bir-ajan-dongusu\/\",\"name\":\"Kimten: Node.js \u0130\u00e7in \u00c7er\u00e7eve Y\u00fck\u00fc Olmadan Minik Bir Ajan D\u00f6ng\u00fcs\u00fc - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-17T09:00:38+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kimten-node-js-icin-cerceve-yuku-olmadan-minik-bir-ajan-dongusu\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/kimten-node-js-icin-cerceve-yuku-olmadan-minik-bir-ajan-dongusu\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kimten-node-js-icin-cerceve-yuku-olmadan-minik-bir-ajan-dongusu\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kimten: Node.js \u0130\u00e7in \u00c7er\u00e7eve Y\u00fck\u00fc Olmadan Minik Bir Ajan D\u00f6ng\u00fcs\u00fc\"}]},{\"@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":"Kimten: Node.js \u0130\u00e7in \u00c7er\u00e7eve Y\u00fck\u00fc Olmadan Minik Bir Ajan D\u00f6ng\u00fcs\u00fc - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","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\/kimten-node-js-icin-cerceve-yuku-olmadan-minik-bir-ajan-dongusu\/","og_locale":"tr_TR","og_type":"article","og_title":"Kimten: Node.js \u0130\u00e7in \u00c7er\u00e7eve Y\u00fck\u00fc Olmadan Minik Bir Ajan D\u00f6ng\u00fcs\u00fc","og_description":"Kimten: Node.","og_url":"https:\/\/fatihsoysal.com\/blog\/kimten-node-js-icin-cerceve-yuku-olmadan-minik-bir-ajan-dongusu\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-17T09:00:38+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"12 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/kimten-node-js-icin-cerceve-yuku-olmadan-minik-bir-ajan-dongusu\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/kimten-node-js-icin-cerceve-yuku-olmadan-minik-bir-ajan-dongusu\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Kimten: Node.js \u0130\u00e7in \u00c7er\u00e7eve Y\u00fck\u00fc Olmadan Minik Bir Ajan D\u00f6ng\u00fcs\u00fc","datePublished":"2026-02-17T09:00:38+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/kimten-node-js-icin-cerceve-yuku-olmadan-minik-bir-ajan-dongusu\/"},"wordCount":2029,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Node.js"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/kimten-node-js-icin-cerceve-yuku-olmadan-minik-bir-ajan-dongusu\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/kimten-node-js-icin-cerceve-yuku-olmadan-minik-bir-ajan-dongusu\/","url":"https:\/\/fatihsoysal.com\/blog\/kimten-node-js-icin-cerceve-yuku-olmadan-minik-bir-ajan-dongusu\/","name":"Kimten: Node.js \u0130\u00e7in \u00c7er\u00e7eve Y\u00fck\u00fc Olmadan Minik Bir Ajan D\u00f6ng\u00fcs\u00fc - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-17T09:00:38+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/kimten-node-js-icin-cerceve-yuku-olmadan-minik-bir-ajan-dongusu\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/kimten-node-js-icin-cerceve-yuku-olmadan-minik-bir-ajan-dongusu\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/kimten-node-js-icin-cerceve-yuku-olmadan-minik-bir-ajan-dongusu\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Kimten: Node.js \u0130\u00e7in \u00c7er\u00e7eve Y\u00fck\u00fc Olmadan Minik Bir Ajan D\u00f6ng\u00fcs\u00fc"}]},{"@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\/39242","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=39242"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39242\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=39242"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=39242"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=39242"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}