{"id":38769,"date":"2026-02-07T11:01:09","date_gmt":"2026-02-07T08:01:09","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/crewai-ajanlarina-kalici-bellek-ekleme-detayli-bir-rehber\/"},"modified":"2026-02-07T11:01:09","modified_gmt":"2026-02-07T08:01:09","slug":"crewai-ajanlarina-kalici-bellek-ekleme-detayli-bir-rehber","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/crewai-ajanlarina-kalici-bellek-ekleme-detayli-bir-rehber\/","title":{"rendered":"CrewAI Ajanlar\u0131na Kal\u0131c\u0131 Bellek Ekleme: Detayl\u0131 Bir Rehber"},"content":{"rendered":"<h2>CrewAI Ajanlar\u0131na Kal\u0131c\u0131 Bellek Ekleme: Detayl\u0131 Bir Rehber<\/h2>\n<p>Yapay zeka ajanlar\u0131, \u00f6zellikle CrewAI gibi g\u00fc\u00e7l\u00fc orkestrasyon ara\u00e7lar\u0131 kullan\u0131larak geli\u015ftirildi\u011finde, karma\u015f\u0131k g\u00f6revleri ba\u015far\u0131yla yerine getirebilir. Ancak, \u00e7o\u011fu ajan varsay\u0131lan olarak &#8220;unutkan&#8221;d\u0131r; yani her etkile\u015fimden sonra \u00f6nceki ba\u011flam\u0131 kaybederler. Bu durum, daha ak\u0131ll\u0131, ki\u015fiselle\u015ftirilmi\u015f ve tutarl\u0131 deneyimler sunmak i\u00e7in ajanlara kal\u0131c\u0131 bellek eklemenin kritik \u00f6nemini ortaya koymaktad\u0131r. Bu makalede, CrewAI ajanlar\u0131n\u0131za kal\u0131c\u0131 bellek entegrasyonunun neden \u00f6nemli oldu\u011funu, nas\u0131l yap\u0131laca\u011f\u0131n\u0131 ve en iyi uygulama stratejilerini ad\u0131m ad\u0131m inceleyece\u011fiz.<\/p>\n<h3>CrewAI ve Ajan Belle\u011fi Neden \u00d6nemli?<\/h3>\n<p>CrewAI, i\u015f ak\u0131\u015flar\u0131n\u0131 otomatikle\u015ftirmek ve karma\u015f\u0131k g\u00f6revleri \u00e7\u00f6zmek i\u00e7in i\u015fbirli\u011fi yapan birden fazla yapay zeka ajan\u0131n\u0131 bir araya getiren g\u00fc\u00e7l\u00fc bir \u00e7er\u00e7evedir. Bu ajanlar, belirli roller \u00fcstlenir, ara\u00e7lar kullan\u0131r ve birbirleriyle ileti\u015fim kurarak ortak bir hedefe ula\u015fmaya \u00e7al\u0131\u015f\u0131r. Ancak, ajanlar\u0131n &#8220;bellek&#8221; kapasitesi, genel performanslar\u0131n\u0131 ve kullan\u0131c\u0131 deneyimini do\u011frudan etkileyen temel bir fakt\u00f6rd\u00fcr.<\/p>\n<h4>CrewAI Nedir?<\/h4>\n<p>CrewAI, b\u00fcy\u00fck dil modelleri (LLM&#8217;ler) taraf\u0131ndan desteklenen \u00f6zerk ajanlar\u0131n bir ekip halinde \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayan bir orkestrasyon arac\u0131d\u0131r. Her ajan bir role, bir hedefe ve belirli ara\u00e7lara sahip olabilir. Bu yap\u0131, karma\u015f\u0131k projelerin daha mod\u00fcler ve y\u00f6netilebilir bir \u015fekilde ele al\u0131nmas\u0131na olanak tan\u0131r. \u00d6rne\u011fin, bir &#8220;Ara\u015ft\u0131rmac\u0131 Ajan&#8221;, bir &#8220;Yazar Ajan&#8221; ve bir &#8220;Edit\u00f6r Ajan&#8221; bir araya gelerek kapsaml\u0131 bir makale yazabilir.<\/p>\n<h4>Belle\u011fin Ajan Performans\u0131na Etkisi<\/h4>\n<p>Bellek, bir ajan\u0131n ge\u00e7mi\u015f etkile\u015fimlerini, \u00f6\u011frenmelerini ve edindi\u011fi bilgileri saklayabilme yetene\u011fidir. Belle\u011fe sahip bir ajan, \u00f6nceki konu\u015fmalar\u0131 hat\u0131rlayarak daha tutarl\u0131 yan\u0131tlar verebilir, kullan\u0131c\u0131 tercihlerini \u00f6\u011frenebilir ve zaman i\u00e7inde daha ak\u0131ll\u0131 hale gelebilir. Bellek, ajan\u0131n ba\u011flam\u0131 korumas\u0131n\u0131 sa\u011flayarak gereksiz tekrarlar\u0131 \u00f6nler ve daha verimli bir ileti\u015fim ak\u0131\u015f\u0131 sunar.<\/p>\n<h4>Mevcut Durum: Belleksiz Ajanlar\u0131n S\u0131n\u0131rl\u0131l\u0131klar\u0131<\/h4>\n<p>Varsay\u0131lan olarak, CrewAI ajanlar\u0131 genellikle her etkile\u015fimde yeni bir ba\u015flang\u0131\u00e7 yapar. Bu, her sorguda ayn\u0131 bilgilerin yeniden sa\u011flanmas\u0131 gerekti\u011fi anlam\u0131na gelir. Belleksiz ajanlar, uzun s\u00fcreli sohbetlerde veya \u00e7ok ad\u0131ml\u0131 g\u00f6revlerde ba\u011flam\u0131 kaybedebilir, bu da kullan\u0131c\u0131 deneyimini olumsuz etkiler ve ajan\u0131n verimlili\u011fini d\u00fc\u015f\u00fcr\u00fcr. Bu s\u0131n\u0131rl\u0131l\u0131k, \u00f6zellikle ki\u015fiselle\u015ftirme ve \u00f6\u011frenme gerektiren uygulamalar i\u00e7in b\u00fcy\u00fck bir engel te\u015fkil eder.<\/p>\n<h3>Kal\u0131c\u0131 Bellek Kavram\u0131 ve Avantajlar\u0131<\/h3>\n<p>Kal\u0131c\u0131 bellek, yapay zeka ajanlar\u0131n\u0131n sadece mevcut oturumda de\u011fil, farkl\u0131 oturumlar ve zaman dilimleri aras\u0131nda da bilgiyi saklayabilmesini sa\u011flayan bir mekanizmad\u0131r. Bu, ajanlar\u0131n daha insan benzeri bir etkile\u015fim sunmas\u0131na ve zamanla daha yetenekli hale gelmesine olanak tan\u0131r.<\/p>\n<h4>Ge\u00e7ici ve Kal\u0131c\u0131 Bellek Fark\u0131<\/h4>\n<p><strong>Ge\u00e7ici bellek (Short-term memory)<\/strong>, ajan\u0131n mevcut etkile\u015fim veya oturum s\u0131ras\u0131nda hat\u0131rlad\u0131\u011f\u0131 bilgidir. Genellikle LLM&#8217;nin ba\u011flam penceresi i\u00e7inde tutulur ve oturum sona erdi\u011finde kaybolur. \u00d6rne\u011fin, bir sohbet botunun son birka\u00e7 mesaj\u0131 hat\u0131rlamas\u0131 ge\u00e7ici belle\u011fe \u00f6rnektir.<\/p>\n<p><strong>Kal\u0131c\u0131 bellek (Persistent memory)<\/strong> ise, ajan\u0131n oturumlar aras\u0131nda veya uzun vadede saklad\u0131\u011f\u0131 bilgidir. Bu bilgiler genellikle bir veritaban\u0131nda (SQL, NoSQL, vekt\u00f6r veritaban\u0131 vb.) depolan\u0131r ve ajan\u0131n daha sonraki etkile\u015fimlerde eri\u015febilmesi i\u00e7in kal\u0131c\u0131 hale getirilir. Kullan\u0131c\u0131 tercihleri, ge\u00e7mi\u015f g\u00f6rev sonu\u00e7lar\u0131 veya \u00f6\u011frenilen kurallar kal\u0131c\u0131 bellekte saklanabilir.<\/p>\n<h4>Kal\u0131c\u0131 Belle\u011fin Temel Faydalar\u0131<\/h4>\n<ul>\n<li><strong>Ba\u011flam Koruma:<\/strong> Ajan, \u00f6nceki etkile\u015fimleri hat\u0131rlayarak daha tutarl\u0131 ve ilgili yan\u0131tlar verebilir.<\/li>\n<li><strong>Ki\u015fiselle\u015ftirme:<\/strong> Kullan\u0131c\u0131 tercihlerini ve ge\u00e7mi\u015f davran\u0131\u015flar\u0131n\u0131 \u00f6\u011frenerek daha ki\u015fiselle\u015ftirilmi\u015f deneyimler sunar.<\/li>\n<li><strong>Verimlilik:<\/strong> Ayn\u0131 bilgilerin tekrar tekrar sa\u011flanmas\u0131n\u0131 \u00f6nleyerek etkile\u015fimleri h\u0131zland\u0131r\u0131r ve ajan\u0131n daha verimli \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar.<\/li>\n<li><strong>\u00d6\u011frenme ve Geli\u015fme:<\/strong> Ajan\u0131n zamanla yeni bilgiler edinmesine ve bu bilgileri gelecekteki g\u00f6revlerde kullanmas\u0131na olanak tan\u0131r.<\/li>\n<li><strong>Karma\u015f\u0131k G\u00f6rev Y\u00f6netimi:<\/strong> \u00c7ok ad\u0131ml\u0131 ve uzun soluklu g\u00f6revlerde ajan\u0131n ba\u011flam\u0131 kaybetmeden ilerlemesini sa\u011flar.<\/li>\n<\/ul>\n<h4>Kullan\u0131m Senaryolar\u0131<\/h4>\n<p>Kal\u0131c\u0131 bellek, m\u00fc\u015fteri hizmetleri botlar\u0131ndan ki\u015fisel asistanlara, proje y\u00f6neticisi ajanlardan i\u00e7erik \u00fcretimi ekiplerine kadar bir\u00e7ok alanda kritik \u00f6neme sahiptir. \u00d6rne\u011fin, bir m\u00fc\u015fteri hizmetleri ajan\u0131, ge\u00e7mi\u015f \u015fikayetleri veya sat\u0131n alma ge\u00e7mi\u015fini hat\u0131rlayarak daha h\u0131zl\u0131 ve do\u011fru destek sa\u011flayabilir. Bir proje y\u00f6neticisi ajan\u0131, projenin ilerleyi\u015fini, tamamlanan g\u00f6revleri ve ekip \u00fcyelerinin rollerini hat\u0131rlayarak daha etkin bir koordinasyon sa\u011flayabilir.<\/p>\n<h3>CrewAI&#8217;da Bellek Y\u00f6netimi Se\u00e7enekleri<\/h3>\n<p>CrewAI, ajanlar\u0131n bellek y\u00f6netimi i\u00e7in do\u011frudan entegre bir kal\u0131c\u0131 bellek katman\u0131 sunmasa da, mevcut k\u00fct\u00fcphaneler ve veritabanlar\u0131 arac\u0131l\u0131\u011f\u0131yla bu yetene\u011fi eklemek olduk\u00e7a m\u00fcmk\u00fcnd\u00fcr.<\/p>\n<h4>CrewAI&#8217;\u0131n Dahili Bellek Mekanizmalar\u0131<\/h4>\n<p>CrewAI, ajanlar aras\u0131ndaki anl\u0131k ileti\u015fimi ve g\u00f6rev ba\u011flam\u0131n\u0131 y\u00f6netmek i\u00e7in dahili mekanizmalara sahiptir. Ancak bu mekanizmalar genellikle oturum bazl\u0131d\u0131r ve kal\u0131c\u0131 depolama sa\u011flamaz. Bir ajan\u0131n ge\u00e7mi\u015fteki g\u00f6revleri veya uzun s\u00fcreli \u00f6\u011frenimleri i\u00e7in harici bir bellek \u00e7\u00f6z\u00fcm\u00fcne ihtiya\u00e7 duyulur. CrewAI&#8217;\u0131n <code>memory=True<\/code> parametresi, ajan\u0131n mevcut g\u00f6rev ak\u0131\u015f\u0131ndaki k\u0131sa s\u00fcreli ba\u011flam\u0131 hat\u0131rlamas\u0131na yard\u0131mc\u0131 olsa da, bu kal\u0131c\u0131 bir depolama \u00e7\u00f6z\u00fcm\u00fc de\u011fildir.<\/p>\n<h4>Harici Veritabanlar\u0131 ile Entegrasyon<\/h4>\n<p>CrewAI ajanlar\u0131na kal\u0131c\u0131 bellek eklemenin en yayg\u0131n ve etkili yolu, harici bir veritaban\u0131 kullanmakt\u0131r. Se\u00e7enekler olduk\u00e7a geni\u015ftir:<\/p>\n<ul>\n<li><strong>NoSQL Veritabanlar\u0131 (MongoDB, Redis):<\/strong> H\u0131zl\u0131 okuma\/yazma i\u015flemleri ve esnek \u015fema yap\u0131lar\u0131 sayesinde ajanlar\u0131n ge\u00e7mi\u015f etkile\u015fimlerini, tercihleri veya g\u00f6rev durumlar\u0131n\u0131 depolamak i\u00e7in idealdir. \u00d6zellikle Redis, h\u0131zl\u0131 anahtar-de\u011fer depolama ve \u00f6nbellekleme yetenekleri ile \u00f6ne \u00e7\u0131kar.<\/li>\n<li><strong>SQL Veritabanlar\u0131 (PostgreSQL, MySQL, SQLite):<\/strong> Yap\u0131land\u0131r\u0131lm\u0131\u015f verileri depolamak i\u00e7in uygundur. Ajanlar\u0131n belirli kullan\u0131c\u0131larla ilgili profil bilgilerini, ge\u00e7mi\u015f kararlar\u0131n\u0131 veya \u00f6\u011frenilen kurallar\u0131 saklamak i\u00e7in kullan\u0131labilir.<\/li>\n<li><strong>Vekt\u00f6r Veritabanlar\u0131 (Chroma, Pinecone, Weaviate):<\/strong> \u00d6zellikle ajan\u0131n &#8220;uzun s\u00fcreli belle\u011fi&#8221; i\u00e7in kritiktir. Ajan\u0131n geni\u015f bir bilgi taban\u0131ndan ilgili bilgileri almas\u0131n\u0131 sa\u011flar. G\u00f6m\u00fcl\u00fc (embedding) edilmi\u015f metinleri depolayarak anlamsal arama yap\u0131lmas\u0131na olanak tan\u0131r.<\/li>\n<\/ul>\n<h4>\u00d6zel Bellek \u00c7\u00f6z\u00fcmleri Geli\u015ftirme<\/h4>\n<p>Daha spesifik ihtiya\u00e7lar i\u00e7in, geli\u015ftiriciler kendi \u00f6zel bellek \u00e7\u00f6z\u00fcmlerini tasarlayabilirler. Bu, mevcut veritabanlar\u0131 \u00fczerine katmanlar ekleyerek veya tamamen \u00f6zel bir depolama mekanizmas\u0131 geli\u015ftirerek yap\u0131labilir. \u00d6rne\u011fin, bir ajan i\u00e7in \u00f6zel bir &#8220;bilgi grafi\u011fi&#8221; olu\u015fturmak veya belirli olaylar\u0131 tetikleyen bir olay g\u00fcnl\u00fc\u011f\u00fc sistemi kurmak gibi yakla\u015f\u0131mlar benimsenebilir.<\/p>\n<h3>Bellek Entegrasyonu \u0130\u00e7in Gerekli Ad\u0131mlar<\/h3>\n<p>CrewAI ajanlar\u0131n\u0131za kal\u0131c\u0131 bellek eklemek, belirli bir plan ve ad\u0131mlar gerektirir. Bu b\u00f6l\u00fcmde, entegrasyon s\u00fcrecinin temel a\u015famalar\u0131n\u0131 inceleyece\u011fiz.<\/p>\n<h4>\u00d6n Ko\u015fullar ve Gerekli Ara\u00e7lar<\/h4>\n<p>Ba\u015flamadan \u00f6nce a\u015fa\u011f\u0131daki \u00f6n ko\u015fullar\u0131n kar\u015f\u0131land\u0131\u011f\u0131ndan emin olun:<\/p>\n<ul>\n<li><strong>Python Ortam\u0131:<\/strong> Geli\u015ftirme i\u00e7in Python 3.9+ kurulu olmal\u0131.<\/li>\n<li><strong>CrewAI Kurulumu:<\/strong> <code>pip install crewai<\/code> komutu ile CrewAI y\u00fckl\u00fc olmal\u0131.<\/li>\n<li><strong>LLM API Anahtar\u0131:<\/strong> OpenAI, Anthropic veya benzeri bir LLM sa\u011flay\u0131c\u0131s\u0131ndan API anahtar\u0131na sahip olmal\u0131s\u0131n\u0131z.<\/li>\n<li><strong>Veritaban\u0131 Kurulumu:<\/strong> Se\u00e7ti\u011finiz veritaban\u0131n\u0131n (\u00f6rne\u011fin Redis) sunucusu kurulu ve eri\u015filebilir olmal\u0131.<\/li>\n<li><strong>\u0130lgili K\u00fct\u00fcphaneler:<\/strong> Veritaban\u0131 ile etkile\u015fim kurmak i\u00e7in gerekli Python k\u00fct\u00fcphaneleri (\u00f6rne\u011fin <code>redis-py<\/code>, <code>langchain<\/code>&#8216;in bellek mod\u00fclleri).<\/li>\n<\/ul>\n<h4>Veritaban\u0131 Se\u00e7imi ve Kurulumu (\u00d6rn: Redis)<\/h4>\n<p>Bu makalede Redis&#8217;i \u00f6rnek olarak kullanaca\u011f\u0131z, \u00e7\u00fcnk\u00fc h\u0131zl\u0131 ve hafif bir \u00e7\u00f6z\u00fcmd\u00fcr. Redis&#8217;i yerel makinenize kurmak i\u00e7in i\u015fletim sisteminize uygun ad\u0131mlar\u0131 izleyebilirsiniz (\u00f6rne\u011fin Ubuntu&#8217;da <code>sudo apt install redis-server<\/code> veya Docker ile <code>docker run --name my-redis -p 6379:6379 -d redis<\/code>).<\/p>\n<p>Redis sunucusu \u00e7al\u0131\u015ft\u0131ktan sonra, Python&#8217;dan eri\u015fmek i\u00e7in <code>redis<\/code> k\u00fct\u00fcphanesini kurman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">pip install redis<\/pre>\n<p><\/code><\/p>\n<h4>CrewAI Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>Bellek entegrasyonu, genellikle CrewAI ajanlar\u0131n\u0131n veya g\u00f6revlerinin tan\u0131mland\u0131\u011f\u0131 yerde yap\u0131l\u0131r. LangChain'in bellek mod\u00fclleri, CrewAI ile kolayca entegre edilebilir bir yap\u0131 sunar. Bu mod\u00fcller, farkl\u0131 veritaban\u0131 t\u00fcrleri i\u00e7in bellek s\u0131n\u0131flar\u0131 sa\u011flar.<\/p>\n<h3>Pratik Bir Uygulama: Redis ile Kal\u0131c\u0131 Bellek Ekleme<\/h3>\n<p>\u015eimdi, CrewAI ajan\u0131m\u0131za Redis kullanarak nas\u0131l kal\u0131c\u0131 bellek ekleyece\u011fimize dair pratik bir \u00f6rnek \u00fczerinden ilerleyelim.<\/p>\n<h4>Redis Kurulumu ve Temel Kullan\u0131m\u0131<\/h4>\n<p>Redis sunucunuzun \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 varsayarak, Python ile temel bir ba\u011flant\u0131 kural\u0131m:<\/p>\n<pre><code class=\"language-python\">import redis\n\n# Redis ba\u011flant\u0131s\u0131\nr = redis.Redis(host='localhost', port=6379, db=0)\n\n# Veri yazma\nr.set('kullanici:1:tercih', 'teknoloji')\nr.set('kullanici:2:tercih', 'sanat')\n\n# Veri okuma\ntercih1 = r.get('kullanici:1:tercih')\nprint(f\"Kullan\u0131c\u0131 1 tercihi: {tercih1.decode('utf-8')}\")\n\n# Belle\u011fi temizleme (\u00f6rnek)\n# r.delete('kullanici:1:tercih')\n<\/pre>\n<p><\/code><\/p>\n<h4>CrewAI Ajan\u0131n\u0131 Bellekle Yap\u0131land\u0131rma<\/h4>\n<p>CrewAI ajanlar\u0131na bellek eklemek i\u00e7in genellikle LangChain'in bellek s\u0131n\u0131flar\u0131n\u0131 kullan\u0131r\u0131z. <code>ConversationBufferWindowMemory<\/code> gibi s\u0131n\u0131flar, ge\u00e7mi\u015f konu\u015fmalar\u0131 belirli bir pencere i\u00e7inde tutar. Kal\u0131c\u0131 bellek i\u00e7in ise <code>ChatMessageHistory<\/code> ve bir depolama mekanizmas\u0131 (\u00f6rne\u011fin Redis) kullan\u0131l\u0131r.<\/p>\n<p>\u0130lk olarak gerekli k\u00fct\u00fcphaneleri kural\u0131m:<\/p>\n<pre><code class=\"language-bash\">pip install crewai langchain langchain-community langchain-openai redis<\/pre>\n<p><\/code><\/p>\n<p>Ard\u0131ndan, bir CrewAI ajan\u0131 i\u00e7in Redis tabanl\u0131 kal\u0131c\u0131 bellek olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-python\">import os\nfrom crewai import Agent, Task, Crew, Process\nfrom langchain_openai import ChatOpenAI\nfrom langchain.memory import ConversationBufferWindowMemory\nfrom langchain_community.chat_message_histories import RedisChatMessageHistory\n\n# OpenAI API anahtar\u0131n\u0131z\u0131 ayarlay\u0131n\nos.environ[\"OPENAI_API_KEY\"] = \"sk-...\" # Kendi API anahtar\u0131n\u0131z\u0131 buraya girin\n\n# LLM modelini tan\u0131mla\nllm = ChatOpenAI(model_name=\"gpt-4o\", temperature=0.7)\n\n# Redis ba\u011flant\u0131 URL'si\nREDIS_URL = \"redis:\/\/localhost:6379\/0\"\n\n# Kal\u0131c\u0131 bellek fonksiyonu\ndef get_persistent_memory(session_id: str):\n    return RedisChatMessageHistory(session_id=session_id, url=REDIS_URL)\n\n# \u00d6rnek bir ajan olu\u015ftural\u0131m\n# Ajan\u0131n memory=True olmas\u0131, CrewAI'\u0131n dahili k\u0131sa s\u00fcreli belle\u011fini kullan\u0131r.\n# Kal\u0131c\u0131 bellek i\u00e7in ise bu belle\u011fi kendi ChatMessageHistory'mizle beslememiz gerekir.\n\n# Ajan tan\u0131m\u0131 (\u015fimdilik memory=True kullanm\u0131yoruz, \u00e7\u00fcnk\u00fc harici bellek y\u00f6netece\u011fiz)\nresearcher = Agent(\n    role='Ara\u015ft\u0131rmac\u0131',\n    goal='Kullan\u0131c\u0131n\u0131n ilgi alan\u0131na g\u00f6re detayl\u0131 bilgi toplamak',\n    backstory='Konular hakk\u0131nda derinlemesine ara\u015ft\u0131rma yapan deneyimli bir ara\u015ft\u0131rmac\u0131.',\n    verbose=True,\n    allow_delegation=False,\n    llm=llm\n)\n\n# G\u00f6rev tan\u0131m\u0131\nresearch_task = Task(\n    description=(\n        \"Kullan\u0131c\u0131n\u0131n son ilgi alan\u0131na g\u00f6re en son teknoloji haberlerini bul.\"\n        \"E\u011fer kullan\u0131c\u0131 daha \u00f6nce bir ilgi alan\u0131 belirtmi\u015fse, onu dikkate al.\"\n        \"Aksi takdirde, genel teknoloji haberlerini ara\u015ft\u0131r.\"\n    ),\n    expected_output='Kullan\u0131c\u0131n\u0131n ilgi alan\u0131na g\u00f6re \u00f6zetlenmi\u015f en son teknoloji haberleri.',\n    agent=researcher\n)\n\n# Crew olu\u015fturma ve kal\u0131c\u0131 bellek entegrasyonu\n# CrewAI'da do\u011frudan ajanlara LangChain'in RedisChatMessageHistory'sini entegre etmek\n# biraz daha dolayl\u0131 olabilir. Genellikle, LangChain agent'lar\u0131nda bu daha do\u011frudan yap\u0131l\u0131r.\n# CrewAI'da, ajan\u0131n ara\u00e7lar\u0131 veya g\u00f6revleri arac\u0131l\u0131\u011f\u0131yla bu belle\u011fe eri\u015fim sa\u011flanabilir.\n# Ancak, CrewAI 0.28.0 s\u00fcr\u00fcm\u00fc ve sonras\u0131 ile ajanlara bellek nesnesi do\u011frudan atanabilir.\n\n# CrewAI 0.28.0+ ile bellek entegrasyonu\n# Ajan\u0131 olu\u015ftururken memory=True ve bir memory_handler sa\u011flamak.\n# Ancak, RedisChatMessageHistory'yi do\u011frudan bir memory_handler olarak atamak\n# CrewAI'\u0131n bekledi\u011fi Memory tipine uymayabilir.\n# Bunun yerine, memory=True ile ajan\u0131n kendi ConversationBufferWindowMemory'sini kullan\u0131p,\n# bu belle\u011fi Redis'e yaz\u0131p okuyacak bir mekanizma kurmak daha yayg\u0131nd\u0131r.\n\n# Daha pratik bir yakla\u015f\u0131m: Ajan\u0131n arac\u0131n\u0131 kullanarak belle\u011fe eri\u015fim\n# VEYA CrewAI 0.28.0+ ile Agent s\u0131n\u0131f\u0131n\u0131n memory parametresini kullanmak.\n\n# CrewAI'da bellek kullan\u0131m\u0131 i\u00e7in genellikle ConversationBufferWindowMemory kullan\u0131l\u0131r\n# ve bu belle\u011fin arkas\u0131na bir mesaj ge\u00e7mi\u015fi (ChatMessageHistory) eklenebilir.\n# CrewAI'\u0131n do\u011frudan Redis entegrasyonu i\u00e7in, LangChain'in bellek mod\u00fcllerini\n# ajan\u0131n\u0131z\u0131n ara\u00e7lar\u0131 veya \u00f6zel bir callback mekanizmas\u0131 arac\u0131l\u0131\u011f\u0131yla kullanabilirsiniz.\n\n# Basit bir Redis tabanl\u0131 bellek kullan\u0131m\u0131 \u00f6rne\u011fi (do\u011frudan CrewAI ajan\u0131na entegrasyon de\u011fil,\n# ancak CrewAI ajan\u0131 taraf\u0131ndan kullan\u0131labilecek bir bellek sistemi)\n\n# Kullan\u0131c\u0131 oturumu i\u00e7in bir ID\nuser_session_id = \"user_123\"\nuser_memory = get_persistent_memory(user_session_id)\n\n# Belle\u011fe ge\u00e7mi\u015f bir mesaj ekleyelim (sim\u00fclasyon)\nuser_memory.add_user_message(\"Daha \u00f6nce uzay ara\u015ft\u0131rmalar\u0131 ile ilgilendi\u011fimi belirtmi\u015ftim.\")\nuser_memory.add_ai_message(\"Hat\u0131rl\u0131yorum, uzay ara\u015ft\u0131rmalar\u0131 hakk\u0131nda bilgi toplam\u0131\u015ft\u0131m.\")\n\n# Ajan\u0131n bu belle\u011fi kullanmas\u0131n\u0131 sa\u011flayacak bir ara\u00e7 veya g\u00f6rev mekanizmas\u0131\n# Bu, CrewAI'\u0131n do\u011frudan bellek entegrasyonu i\u00e7in bir ara \u00e7\u00f6z\u00fcm olabilir.\n# Ajan\u0131n g\u00f6rev tan\u0131m\u0131nda veya ara\u00e7lar\u0131nda bu bellekten okuma\/yazma i\u015flemleri yap\u0131labilir.\n\n# \u00d6rnek: Ajan\u0131n g\u00f6revinde bellekten okuma\n# research_task.description = (\n#     f\"Kullan\u0131c\u0131n\u0131n oturum ID'si '{user_session_id}' i\u00e7in ge\u00e7mi\u015f ilgi alanlar\u0131n\u0131 bellekte ara. \"\n#     f\"E\u011fer bir ilgi alan\u0131 bulunursa, o konuda en son haberleri bul. \"\n#     f\"Aksi takdirde, genel teknoloji haberlerini ara\u015ft\u0131r.\"\n# )\n\n# CrewAI'\u0131n 0.28.0+ s\u00fcr\u00fcm\u00fcnde Agent s\u0131n\u0131f\u0131na memory_handler parametresi eklenmi\u015ftir.\n# Bu parametre, LangChain'in BaseChatMessageHistory aray\u00fcz\u00fcn\u00fc uygulayan bir nesne bekler.\n# Bu sayede RedisChatMessageHistory do\u011frudan kullan\u0131labilir.\n\nresearcher_with_memory = Agent(\n    role='Bellekli Ara\u015ft\u0131rmac\u0131',\n    goal='Kullan\u0131c\u0131n\u0131n ge\u00e7mi\u015f ilgi alanlar\u0131n\u0131 hat\u0131rlayarak detayl\u0131 bilgi toplamak',\n    backstory='Ge\u00e7mi\u015f etkile\u015fimleri \u00f6\u011frenen ve bunlara g\u00f6re ara\u015ft\u0131rma yapan deneyimli bir ara\u015ft\u0131rmac\u0131.',\n    verbose=True,\n    allow_delegation=False,\n    llm=llm,\n    memory=True, # CrewAI'\u0131n dahili k\u0131sa s\u00fcreli belle\u011fini etkinle\u015ftir\n    # persistent_memory_handler=get_persistent_memory(user_session_id) # Bu parametre 0.28.0+ s\u00fcr\u00fcm\u00fcnde mevcut\n)\n\n# E\u011fer CrewAI s\u00fcr\u00fcm\u00fcn\u00fcz 0.28.0'dan eskiyse, bellek y\u00f6netimi i\u00e7in ara\u00e7lar kullanman\u0131z gerekebilir.\n# \u00d6rne\u011fin, bir \"Bellek Okuyucu\" ve \"Bellek Yaz\u0131c\u0131\" arac\u0131 tan\u0131mlayabilirsiniz.\n\n# G\u00fcncel CrewAI (0.28.0+) ile do\u011frudan entegrasyon\n# Bu kod par\u00e7as\u0131, CrewAI'\u0131n gelecekteki s\u00fcr\u00fcmlerinde veya 0.28.0+ s\u00fcr\u00fcm\u00fcnde\n# persistent_memory_handler'\u0131 destekledi\u011fi varsay\u0131m\u0131yla yaz\u0131lm\u0131\u015ft\u0131r.\n# \u015eu anki stabil s\u00fcr\u00fcmde (0.27.x) bu \u00f6zellik hen\u00fcz tam olarak entegre olmayabilir.\n# En g\u00fcncel dok\u00fcmantasyonu kontrol etmek \u00f6nemlidir.\n\n# E\u011fer persistent_memory_handler do\u011frudan desteklenmiyorsa, CrewAI ajan\u0131n\u0131n\n# ara\u00e7lar\u0131na bellek okuma\/yazma yetene\u011fi kazand\u0131rmak daha do\u011fru bir yakla\u015f\u0131md\u0131r.\n\n# \u00d6rnek: Bir \"Bellek Okuyucu\" arac\u0131 tan\u0131mlama\n# from crewai_tools import Tool\n#\n# def read_from_memory(session_id: str, key: str):\n#     r = redis.Redis(host='localhost', port=6379, db=0)\n#     value = r.get(f\"{session_id}:{key}\")\n#     return value.decode('utf-8') if value else \"Bellekte bilgi bulunamad\u0131.\"\n#\n# def write_to_memory(session_id: str, key: str, value: str):\n#     r = redis.Redis(host='localhost', port=6379, db=0)\n#     r.set(f\"{session_id}:{key}\", value)\n#     return f\"'{key}' belle\u011fe yaz\u0131ld\u0131.\"\n#\n# memory_reader_tool = Tool(\n#     name=\"Bellek Okuyucu\",\n#     func=lambda key: read_from_memory(user_session_id, key),\n#     description=\"Kullan\u0131c\u0131n\u0131n ge\u00e7mi\u015f ilgi alanlar\u0131n\u0131 veya tercihlerini bellekte okur.\"\n# )\n#\n# memory_writer_tool = Tool(\n#     name=\"Bellek Yaz\u0131c\u0131\",\n#     func=lambda key, value: write_to_memory(user_session_id, key, value),\n#     description=\"Kullan\u0131c\u0131n\u0131n yeni ilgi alanlar\u0131n\u0131 veya \u00f6\u011frenilen bilgileri belle\u011fe yazar.\"\n# )\n#\n# researcher_with_tools = Agent(\n#     role='Bellekli Ara\u015ft\u0131rmac\u0131',\n#     goal='Kullan\u0131c\u0131n\u0131n ge\u00e7mi\u015f ilgi alanlar\u0131n\u0131 hat\u0131rlayarak detayl\u0131 bilgi toplamak',\n#     backstory='Ge\u00e7mi\u015f etkile\u015fimleri \u00f6\u011frenen ve bunlara g\u00f6re ara\u015ft\u0131rma yapan deneyimli bir ara\u015ft\u0131rmac\u0131.',\n#     verbose=True,\n#     allow_delegation=False,\n#     llm=llm,\n#     tools=[memory_reader_tool, memory_writer_tool] # Ajan\u0131n ara\u00e7lar\u0131na bellek ara\u00e7lar\u0131n\u0131 ekle\n# )\n#\n# research_task_with_memory = Task(\n#     description=(\n#         \"\u00d6nce 'Bellek Okuyucu' arac\u0131n\u0131 kullanarak kullan\u0131c\u0131n\u0131n son ilgi alan\u0131n\u0131 oku. \"\n#         \"E\u011fer bir ilgi alan\u0131 bulunursa, o konuda en son haberleri bul ve \u00f6zetle. \"\n#         \"Aksi takdirde, genel teknoloji haberlerini ara\u015ft\u0131r. \"\n#         \"Ara\u015ft\u0131rma sonucunda yeni bir ilgi alan\u0131 tespit edersen, 'Bellek Yaz\u0131c\u0131' arac\u0131n\u0131 kullanarak bunu belle\u011fe kaydet.\"\n#     ),\n#     expected_output='Kullan\u0131c\u0131n\u0131n ilgi alan\u0131na g\u00f6re \u00f6zetlenmi\u015f en son teknoloji haberleri.',\n#     agent=researcher_with_tools\n# )\n#\n# crew_with_memory = Crew(\n#     agents=[researcher_with_tools],\n#     tasks=[research_task_with_memory],\n#     process=Process.sequential,\n#     verbose=2\n# )\n#\n# result = crew_with_memory.kickoff()\n# print(result)\n<\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki kod \u00f6rne\u011fi, CrewAI'\u0131n mevcut esnekli\u011fini g\u00f6sterir. E\u011fer <code>persistent_memory_handler<\/code> parametresi do\u011frudan desteklenmiyorsa (CrewAI'\u0131n s\u00fcr\u00fcm\u00fcne ba\u011fl\u0131 olarak), ajanlar\u0131n\u0131za \u00f6zel ara\u00e7lar ekleyerek Redis gibi harici bir veritaban\u0131yla etkile\u015fim kurmalar\u0131n\u0131 sa\u011flayabilirsiniz. Bu sayede ajanlar, g\u00f6revlerini yerine getirirken ge\u00e7mi\u015f bilgileri okuyabilir ve yeni bilgileri depolayabilir.<\/p>\n<h4>Bellek \u0130\u00e7eri\u011fini G\u00f6r\u00fcnt\u00fcleme<\/h4>\n<p>Ajan\u0131n\u0131z\u0131n belle\u011finin do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulamak i\u00e7in Redis CLI veya Python kodu arac\u0131l\u0131\u011f\u0131yla Redis sunucusundaki verileri kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">redis-cli\nKEYS \"user_123:*\" # Oturum ID'nize g\u00f6re anahtarlar\u0131 listeleyin\nGET \"user_123:ilgi_alani\" # Belirli bir anahtar\u0131n de\u011ferini al\u0131n\n<\/pre>\n<p><\/code><\/p>\n<p>Bu, ajan\u0131n\u0131z\u0131n belle\u011fe ne yazd\u0131\u011f\u0131n\u0131 ve neyi hat\u0131rlad\u0131\u011f\u0131n\u0131 g\u00f6rmenizi sa\u011flar.<\/p>\n<h3>Bellek Stratejileri ve En \u0130yi Uygulamalar<\/h3>\n<p>Kal\u0131c\u0131 bellek entegrasyonu sadece teknik bir s\u00fcre\u00e7 de\u011fil, ayn\u0131 zamanda stratejik bir tasar\u0131md\u0131r. Belle\u011fin nas\u0131l kullan\u0131laca\u011f\u0131, ajan\u0131n performans\u0131n\u0131 ve g\u00fcvenilirli\u011fini do\u011frudan etkiler.<\/p>\n<h4>K\u0131sa S\u00fcreli ve Uzun S\u00fcreli Bellek Y\u00f6netimi<\/h4>\n<ul>\n<li><strong>K\u0131sa S\u00fcreli Bellek (Context Window):<\/strong> LLM'lerin s\u0131n\u0131rl\u0131 ba\u011flam penceresini etkin kullan\u0131n. Sadece mevcut g\u00f6rev i\u00e7in en alakal\u0131 bilgileri tutun. Gereksiz bilgileri filtreleyin.<\/li>\n<li><strong>Uzun S\u00fcreli Bellek (Persistent Storage):<\/strong> Kullan\u0131c\u0131 tercihleri, ge\u00e7mi\u015f g\u00f6rev sonu\u00e7lar\u0131, \u00f6\u011frenilen kurallar gibi kal\u0131c\u0131 olmas\u0131 gereken bilgileri depolay\u0131n. Vekt\u00f6r veritabanlar\u0131, geni\u015f bilgi tabanlar\u0131ndan anlamsal arama yaparak uzun s\u00fcreli belle\u011fi zenginle\u015ftirmek i\u00e7in idealdir.<\/li>\n<li><strong>Hibrit Yakla\u015f\u0131m:<\/strong> K\u0131sa s\u00fcreli belle\u011fi (LLM'nin ba\u011flam penceresi) anl\u0131k etkile\u015fimler i\u00e7in kullan\u0131rken, uzun s\u00fcreli belle\u011fi ge\u00e7mi\u015f bilgileri ve genel \u00f6\u011frenmeleri depolamak i\u00e7in kullan\u0131n. Ajan, uzun s\u00fcreli bellekten ilgili par\u00e7alar\u0131 al\u0131p k\u0131sa s\u00fcreli belle\u011fe y\u00fckleyerek daha zengin bir ba\u011flam olu\u015fturabilir.<\/li>\n<\/ul>\n<h4>Bellek Temizleme ve G\u00fcncelleme Politikalar\u0131<\/h4>\n<p>Belle\u011fin b\u00fcy\u00fcmesini y\u00f6netmek ve g\u00fcncel kalmas\u0131n\u0131 sa\u011flamak \u00f6nemlidir:<\/p>\n<ul>\n<li><strong>TTL (Time-To-Live):<\/strong> Baz\u0131 bellek \u00f6\u011feleri i\u00e7in bir ya\u015fam s\u00fcresi belirleyin. \u00d6rne\u011fin, belirli bir s\u00fcre sonra g\u00fcncelli\u011fini yitirecek ge\u00e7ici verileri otomatik olarak silin.<\/li>\n<li><strong>Bellek S\u0131k\u0131\u015ft\u0131rma\/\u00d6zetleme:<\/strong> Uzun sohbet ge\u00e7mi\u015flerini veya detayl\u0131 g\u00f6rev sonu\u00e7lar\u0131n\u0131 \u00f6zetleyerek bellekte daha az yer kaplamalar\u0131n\u0131 sa\u011flay\u0131n. Bu \u00f6zetler, ajan\u0131n ana noktalar\u0131 hat\u0131rlamas\u0131na yard\u0131mc\u0131 olurken depolama maliyetini d\u00fc\u015f\u00fcr\u00fcr.<\/li>\n<li><strong>G\u00fcncelleme Mekanizmalar\u0131:<\/strong> Kullan\u0131c\u0131 tercihleri de\u011fi\u015fti\u011finde veya yeni bilgiler edinildi\u011finde bellek i\u00e7eri\u011fini g\u00fcncelleyin. Ajan\u0131n \u00f6\u011frenme d\u00f6ng\u00fcs\u00fcn\u00fcn bir par\u00e7as\u0131 olarak bellek g\u00fcncelleme ad\u0131mlar\u0131 tan\u0131mlay\u0131n.<\/li>\n<\/ul>\n<h4>Bellek G\u00fcvenli\u011fi ve Performans \u0130pu\u00e7lar\u0131<\/h4>\n<ul>\n<li><strong>Veri \u015eifreleme:<\/strong> Hassas verileri bellekte depolarken \u015fifreleme kullan\u0131n.<\/li>\n<li><strong>Eri\u015fim Kontrol\u00fc:<\/strong> Belle\u011fe sadece yetkili ajanlar\u0131n veya sistemlerin eri\u015febildi\u011finden emin olun.<\/li>\n<li><strong>Performans Optimizasyonu:<\/strong> Bellek okuma\/yazma i\u015flemlerinin h\u0131zl\u0131 oldu\u011fundan emin olun. \u00d6zellikle vekt\u00f6r veritabanlar\u0131nda indeksleme ve sorgu optimizasyonlar\u0131 \u00f6nemlidir.<\/li>\n<li><strong>Hata Y\u00f6netimi:<\/strong> Bellek eri\u015fiminde veya yazma i\u015flemlerinde olu\u015fabilecek hatalar\u0131 (\u00f6rne\u011fin veritaban\u0131 ba\u011flant\u0131 sorunlar\u0131) ele al\u0131n.<\/li>\n<\/ul>\n<h3>Sorun Giderme ve \u0130pu\u00e7lar\u0131<\/h3>\n<p>Kal\u0131c\u0131 bellek entegrasyonu s\u0131ras\u0131nda kar\u015f\u0131la\u015fabilece\u011finiz yayg\u0131n sorunlar ve \u00e7\u00f6z\u00fcm \u00f6nerileri.<\/p>\n<h4>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Bellek Sorunlar\u0131<\/h4>\n<ul>\n<li><strong>Bellek Kayb\u0131:<\/strong> Ajan\u0131n \u00f6nceki etkile\u015fimleri hat\u0131rlamamas\u0131. \u00c7\u00f6z\u00fcm: Bellek entegrasyon ad\u0131mlar\u0131n\u0131 kontrol edin, oturum ID'sinin do\u011fru kullan\u0131ld\u0131\u011f\u0131ndan ve veritaban\u0131na yazma i\u015flemlerinin ba\u015far\u0131l\u0131 oldu\u011fundan emin olun.<\/li>\n<li><strong>Performans D\u00fc\u015f\u00fc\u015f\u00fc:<\/strong> Bellek okuma\/yazma i\u015flemlerinin yava\u015flamas\u0131. \u00c7\u00f6z\u00fcm: Veritaban\u0131 performans\u0131n\u0131 kontrol edin, indeksleme stratejilerini g\u00f6zden ge\u00e7irin, gereksiz verileri temizleyin veya bellek s\u0131k\u0131\u015ft\u0131rma uygulay\u0131n.<\/li>\n<li><strong>Yanl\u0131\u015f Bilgi Hat\u0131rlama:<\/strong> Ajan\u0131n alakas\u0131z veya yanl\u0131\u015f bilgileri hat\u0131rlamas\u0131. \u00c7\u00f6z\u00fcm: Bellek temizleme ve g\u00fcncelleme politikalar\u0131n\u0131 g\u00f6zden ge\u00e7irin. Belle\u011fe yaz\u0131lan verilerin do\u011frulu\u011funu ve alakal\u0131l\u0131\u011f\u0131n\u0131 art\u0131r\u0131n.<\/li>\n<\/ul>\n<h4>Hata Ay\u0131klama Yakla\u015f\u0131mlar\u0131<\/h4>\n<ul>\n<li><strong>G\u00fcnl\u00fck Kay\u0131tlar\u0131:<\/strong> Bellek okuma\/yazma i\u015flemlerini ve ajan kararlar\u0131n\u0131 detayl\u0131 olarak g\u00fcnl\u00fc\u011fe kaydedin. Bu, sorunun nerede ba\u015flad\u0131\u011f\u0131n\u0131 anlaman\u0131za yard\u0131mc\u0131 olur.<\/li>\n<li><strong>Veritaban\u0131 Kontrol\u00fc:<\/strong> Do\u011frudan veritaban\u0131n\u0131 (Redis CLI gibi) kullanarak verilerin do\u011fru \u015fekilde depolan\u0131p depolanmad\u0131\u011f\u0131n\u0131 kontrol edin.<\/li>\n<li><strong>Ad\u0131m Ad\u0131m \u0130nceleme:<\/strong> Kodunuzu ad\u0131m ad\u0131m \u00e7al\u0131\u015ft\u0131rarak bellek i\u015flemlerinin beklendi\u011fi gibi ger\u00e7ekle\u015fip ger\u00e7ekle\u015fmedi\u011fini izleyin.<\/li>\n<\/ul>\n<h4>Performans Optimizasyonu<\/h4>\n<ul>\n<li><strong>\u00d6nbellekleme:<\/strong> S\u0131k eri\u015filen bellek par\u00e7alar\u0131n\u0131 uygulama taraf\u0131nda \u00f6nbelle\u011fe alarak veritaban\u0131 y\u00fck\u00fcn\u00fc azalt\u0131n.<\/li>\n<li><strong>Asenkron \u0130\u015flemler:<\/strong> Bellek yazma gibi kritik olmayan i\u015flemleri asenkron olarak ger\u00e7ekle\u015ftirerek ajan\u0131n yan\u0131t s\u00fcresini iy<br \/>\n","protected":false},"excerpt":{"rendered":"CrewAI, b\u00fcy\u00fck dil modelleri (LLM&#8217;ler) taraf\u0131ndan desteklenen \u00f6zerk ajanlar\u0131n bir ekip halinde \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayan bir orkestrasyon arac\u0131d\u0131r. He&#8230;","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-38769","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>CrewAI Ajanlar\u0131na Kal\u0131c\u0131 Bellek Ekleme: Detayl\u0131 Bir Rehber - 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\/crewai-ajanlarina-kalici-bellek-ekleme-detayli-bir-rehber\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CrewAI Ajanlar\u0131na Kal\u0131c\u0131 Bellek Ekleme: Detayl\u0131 Bir Rehber\" \/>\n<meta property=\"og:description\" content=\"CrewAI, b\u00fcy\u00fck dil modelleri (LLM&#039;ler) taraf\u0131ndan desteklenen \u00f6zerk ajanlar\u0131n bir ekip halinde \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayan bir orkestrasyon arac\u0131d\u0131r. He...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/crewai-ajanlarina-kalici-bellek-ekleme-detayli-bir-rehber\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-07T08:01:09+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=\"18 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/crewai-ajanlarina-kalici-bellek-ekleme-detayli-bir-rehber\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/crewai-ajanlarina-kalici-bellek-ekleme-detayli-bir-rehber\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"CrewAI Ajanlar\u0131na Kal\u0131c\u0131 Bellek Ekleme: Detayl\u0131 Bir Rehber\",\"datePublished\":\"2026-02-07T08:01:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/crewai-ajanlarina-kalici-bellek-ekleme-detayli-bir-rehber\/\"},\"wordCount\":2320,\"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\/crewai-ajanlarina-kalici-bellek-ekleme-detayli-bir-rehber\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/crewai-ajanlarina-kalici-bellek-ekleme-detayli-bir-rehber\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/crewai-ajanlarina-kalici-bellek-ekleme-detayli-bir-rehber\/\",\"name\":\"CrewAI Ajanlar\u0131na Kal\u0131c\u0131 Bellek Ekleme: Detayl\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-07T08:01:09+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/crewai-ajanlarina-kalici-bellek-ekleme-detayli-bir-rehber\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/crewai-ajanlarina-kalici-bellek-ekleme-detayli-bir-rehber\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/crewai-ajanlarina-kalici-bellek-ekleme-detayli-bir-rehber\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"CrewAI Ajanlar\u0131na Kal\u0131c\u0131 Bellek Ekleme: Detayl\u0131 Bir Rehber\"}]},{\"@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":"CrewAI Ajanlar\u0131na Kal\u0131c\u0131 Bellek Ekleme: Detayl\u0131 Bir Rehber - 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\/crewai-ajanlarina-kalici-bellek-ekleme-detayli-bir-rehber\/","og_locale":"tr_TR","og_type":"article","og_title":"CrewAI Ajanlar\u0131na Kal\u0131c\u0131 Bellek Ekleme: Detayl\u0131 Bir Rehber","og_description":"CrewAI, b\u00fcy\u00fck dil modelleri (LLM'ler) taraf\u0131ndan desteklenen \u00f6zerk ajanlar\u0131n bir ekip halinde \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayan bir orkestrasyon arac\u0131d\u0131r. He...","og_url":"https:\/\/fatihsoysal.com\/blog\/crewai-ajanlarina-kalici-bellek-ekleme-detayli-bir-rehber\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-07T08:01:09+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"18 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/crewai-ajanlarina-kalici-bellek-ekleme-detayli-bir-rehber\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/crewai-ajanlarina-kalici-bellek-ekleme-detayli-bir-rehber\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"CrewAI Ajanlar\u0131na Kal\u0131c\u0131 Bellek Ekleme: Detayl\u0131 Bir Rehber","datePublished":"2026-02-07T08:01:09+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/crewai-ajanlarina-kalici-bellek-ekleme-detayli-bir-rehber\/"},"wordCount":2320,"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\/crewai-ajanlarina-kalici-bellek-ekleme-detayli-bir-rehber\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/crewai-ajanlarina-kalici-bellek-ekleme-detayli-bir-rehber\/","url":"https:\/\/fatihsoysal.com\/blog\/crewai-ajanlarina-kalici-bellek-ekleme-detayli-bir-rehber\/","name":"CrewAI Ajanlar\u0131na Kal\u0131c\u0131 Bellek Ekleme: Detayl\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-07T08:01:09+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/crewai-ajanlarina-kalici-bellek-ekleme-detayli-bir-rehber\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/crewai-ajanlarina-kalici-bellek-ekleme-detayli-bir-rehber\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/crewai-ajanlarina-kalici-bellek-ekleme-detayli-bir-rehber\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"CrewAI Ajanlar\u0131na Kal\u0131c\u0131 Bellek Ekleme: Detayl\u0131 Bir Rehber"}]},{"@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\/38769","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=38769"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38769\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=38769"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=38769"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=38769"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}