{"id":34916,"date":"2025-11-23T16:01:09","date_gmt":"2025-11-23T13:01:09","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/opencode-ile-yerel-llmlerde-ajans-gelistirme-kapsamli-rehber\/"},"modified":"2025-11-23T16:01:09","modified_gmt":"2025-11-23T13:01:09","slug":"opencode-ile-yerel-llmlerde-ajans-gelistirme-kapsamli-rehber","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/opencode-ile-yerel-llmlerde-ajans-gelistirme-kapsamli-rehber\/","title":{"rendered":"Opencode ile Yerel LLM&#8217;lerde Ajans Geli\u015ftirme: Kapsaml\u0131 Rehber"},"content":{"rendered":"<p><body><\/p>\n<p>Yapay zeka d\u00fcnyas\u0131nda \u00e7\u0131\u011f\u0131r a\u00e7an geli\u015fmelerle birlikte, gizlilik, maliyet ve esneklik endi\u015feleri, bulut tabanl\u0131 B\u00fcy\u00fck Dil Modelleri&#8217;nin (LLM) \u00f6tesine ge\u00e7me ihtiyac\u0131n\u0131 do\u011furdu. \u0130\u015fte tam bu noktada, yerel LLM&#8217;ler ve otonom &#8220;ajans&#8221; geli\u015ftirme kavram\u0131 devreye giriyor. Bu rehber, Opencode \u00e7er\u00e7evesini kullanarak kendi yerel yapay zeka ajanslar\u0131n\u0131z\u0131 nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klayacak ve bu alandaki potansiyeli g\u00f6zler \u00f6n\u00fcne serecek.<\/p>\n<p>G\u00fcn\u00fcm\u00fcz dijital \u00e7a\u011f\u0131nda, yapay zeka (YZ) tabanl\u0131 \u00e7\u00f6z\u00fcmler hayat\u0131m\u0131z\u0131n ayr\u0131lmaz bir par\u00e7as\u0131 haline gelmi\u015f durumda. Ancak, \u00e7o\u011fu kurulu\u015f ve geli\u015ftirici, geli\u015fmi\u015f YZ yetenekleri i\u00e7in OpenAI, Google veya Anthropic gibi devlerin bulut tabanl\u0131 B\u00fcy\u00fck Dil Modellerine (LLM&#8217;ler) ba\u011f\u0131ml\u0131 kal\u0131yor. Bu ba\u011f\u0131ml\u0131l\u0131k beraberinde ciddi endi\u015feler getiriyor: veri gizlili\u011fi, y\u00fcksek API maliyetleri, gecikme sorunlar\u0131 ve platform kilitlenmesi riski. \u00d6zellikle hassas verilerle \u00e7al\u0131\u015fan veya k\u0131s\u0131tl\u0131 b\u00fct\u00e7eye sahip projeler i\u00e7in bu durum s\u00fcrd\u00fcr\u00fclebilir olmaktan uzakt\u0131r.<\/p>\n<p>Peki ya YZ&#8217;nin g\u00fcc\u00fcn\u00fc kendi altyap\u0131n\u0131zda, kendi kurallar\u0131n\u0131zla ve kendi verileriniz \u00fczerinde tam kontrolle kullanabilseydiniz? \u0130\u015fte yerel B\u00fcy\u00fck Dil Modelleri (Local LLM&#8217;ler) tam da bu vaadi sunuyor. Kendi sunucular\u0131n\u0131zda, hatta g\u00fc\u00e7l\u00fc masa\u00fcst\u00fc bilgisayarlar\u0131n\u0131zda \u00e7al\u0131\u015fabilen bu modeller, gizlilik endi\u015felerini ortadan kald\u0131r\u0131r, maliyetleri d\u00fc\u015f\u00fcr\u00fcr ve internet ba\u011flant\u0131s\u0131 olmadan bile \u00e7al\u0131\u015fabilme \u00f6zg\u00fcrl\u00fc\u011f\u00fc sunar. Bu, \u00f6zellikle veri g\u00fcvenli\u011finin kritik oldu\u011fu finans, sa\u011fl\u0131k veya devlet sekt\u00f6rleri i\u00e7in devrim niteli\u011finde bir ad\u0131md\u0131r.<\/p>\n<p>Ancak, sadece bir LLM&#8217;i yerel olarak \u00e7al\u0131\u015ft\u0131rmak yeterli de\u011fildir. Ger\u00e7ek potansiyel, bu modelleri belirli g\u00f6revleri otonom olarak yerine getirebilecek &#8220;ajanlar&#8221; haline getirmekte yatar. Ajans tabanl\u0131 geli\u015ftirme (Agentic Development), yapay zekan\u0131n sadece bir \u00e7\u0131kt\u0131 \u00fcretmekle kalmay\u0131p, bir dizi arac\u0131 kullanarak karma\u015f\u0131k problemleri \u00e7\u00f6zmek, planlar olu\u015fturmak, hatalar\u0131ndan ders \u00e7\u0131karmak ve hedeflerine ula\u015fmak i\u00e7in aktif olarak \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar. Bir ajans, basit bir sohbet botundan \u00e7ok daha fazlas\u0131d\u0131r; kendi kararlar\u0131n\u0131 verebilen, ortam\u0131yla etkile\u015fim kurabilen ve s\u00fcrekli \u00f6\u011frenen bir varl\u0131kt\u0131r. \u00d6rne\u011fin, bir ajans internetten bilgi toplayabilir, kod yazabilir, veritabanlar\u0131n\u0131 sorgulayabilir veya e-posta g\u00f6nderebilir.<\/p>\n<p>\u0130\u015fte Opencode \u00e7er\u00e7evesi, bu iki g\u00fc\u00e7l\u00fc kavram\u0131 bir araya getiriyor: Yerel LLM&#8217;lerin sundu\u011fu esneklik ve gizlili\u011fi, ajans tabanl\u0131 geli\u015ftirmenin otonom yetenekleriyle birle\u015ftiriyor. Opencode, geli\u015ftiricilere, kendi \u00f6zel ihtiya\u00e7lar\u0131na g\u00f6re uyarlanm\u0131\u015f, g\u00fcvenli ve maliyet etkin yapay zeka \u00e7\u00f6z\u00fcmleri olu\u015fturma g\u00fcc\u00fc veriyor. Bu makalede, Opencode ile s\u0131f\u0131rdan ba\u015flayarak, kendi yapay zeka ajanslar\u0131n\u0131z\u0131 nas\u0131l tasarlayaca\u011f\u0131n\u0131z\u0131, geli\u015ftirece\u011finizi ve da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m ke\u015ffedece\u011fiz. Art\u0131k YZ&#8217;yi sadece t\u00fcketen de\u011fil, ayn\u0131 zamanda \u00fcreten ve y\u00f6nlendiren bir akt\u00f6r olma zaman\u0131 geldi.<\/p>\n<h2>Temel Kavramlar\u0131 Anlamak: Yerel LLM&#8217;ler ve Ajans Tabanl\u0131 Yapay Zeka Nedir?<\/h2>\n<p>Opencode ile ajans geli\u015ftirmeye ba\u015flamadan \u00f6nce, temel ta\u015flar\u0131 olan yerel B\u00fcy\u00fck Dil Modelleri (LLM&#8217;ler) ve ajans tabanl\u0131 yapay zeka kavramlar\u0131n\u0131 sa\u011flam bir \u015fekilde anlamam\u0131z gerekiyor. Bu iki konsept, modern yapay zeka uygulamalar\u0131n\u0131n omurgas\u0131n\u0131 olu\u015fturuyor ve birlikte \u00e7al\u0131\u015farak \u015fa\u015f\u0131rt\u0131c\u0131 yetenekler sunabiliyor.<\/p>\n<h3>Yerel B\u00fcy\u00fck Dil Modelleri (LLM&#8217;ler) Nas\u0131l \u00c7al\u0131\u015f\u0131r?<\/h3>\n<p>B\u00fcy\u00fck Dil Modelleri (LLM&#8217;ler), muazzam miktardaki metin verisi \u00fczerinde e\u011fitilmi\u015f derin \u00f6\u011frenme modelleridir. Metinleri anlamak, \u00fcretmek, \u00f6zetlemek, \u00e7evirmek ve sorular\u0131 yan\u0131tlamak gibi bir dizi dil tabanl\u0131 g\u00f6revi yerine getirebilirler. Genellikle bu modeller, bulut sunucular\u0131nda, NVIDIA&#8217;n\u0131n GPU&#8217;lar\u0131 gibi y\u00fcksek performansl\u0131 donan\u0131mlar \u00fczerinde \u00e7al\u0131\u015f\u0131r ve API&#8217;ler arac\u0131l\u0131\u011f\u0131yla eri\u015filebilirler.<\/p>\n<p>Ancak, &#8220;yerel LLM&#8221; terimi, bu modellerin kendi bilgisayar\u0131n\u0131zda veya sunucunuzda \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131 anlam\u0131na gelir. Bu, \u00f6zellikle gizlilik ve veri g\u00fcvenli\u011fi a\u00e7\u0131s\u0131ndan b\u00fcy\u00fck avantajlar sunar, \u00e7\u00fcnk\u00fc verileriniz a\u011f d\u0131\u015f\u0131na \u00e7\u0131kmaz. Ayr\u0131ca, API \u00fccretlerinden kurtulur ve internet ba\u011flant\u0131s\u0131 olmadan da \u00e7al\u0131\u015fabilirsiniz. Yerel LLM&#8217;lerin \u00e7al\u0131\u015fmas\u0131 i\u00e7in genellikle daha d\u00fc\u015f\u00fck hassasiyetli (\u00f6rne\u011fin, 8-bit veya 4-bit) quantize edilmi\u015f versiyonlar\u0131 kullan\u0131l\u0131r. Bu, modelin boyutunu k\u00fc\u00e7\u00fclt\u00fcr ve daha az bellek t\u00fcketmesini sa\u011flar, b\u00f6ylece ortalama bir donan\u0131mda bile \u00e7al\u0131\u015fabilir hale gelirler.<\/p>\n<p>Pop\u00fcler yerel LLM \u00e7er\u00e7eveleri aras\u0131nda <a href=\"https:\/\/ollama.com\/\" target=\"_blank\">Ollama<\/a>, <a href=\"https:\/\/lmstudio.ai\/\" target=\"_blank\">LM Studio<\/a> ve <a href=\"https:\/\/github.com\/ggerganov\/llama.cpp\" target=\"_blank\">Llama.cpp<\/a> bulunmaktad\u0131r. Bu ara\u00e7lar, Llama 3, Mistral, Phi-3 gibi \u00e7e\u015fitli a\u00e7\u0131k kaynakl\u0131 modelleri kolayca indirmenize ve \u00e7al\u0131\u015ft\u0131rman\u0131za olanak tan\u0131r. Genellikle GGUF format\u0131ndaki modeller tercih edilir, \u00e7\u00fcnk\u00fc bu format CPU ve GPU \u00fczerinde verimli bir \u015fekilde \u00e7al\u0131\u015facak \u015fekilde optimize edilmi\u015ftir. Yerel LLM&#8217;leri kullanman\u0131n temel zorlu\u011fu, yeterli RAM ve \u00f6zellikle bir grafik i\u015flem birimi (GPU) gerektirmesidir, ancak \u00e7o\u011fu modern bilgisayar temel modelleri \u00e7al\u0131\u015ft\u0131rabilir.<\/p>\n<div class=\"expert-tip\">\n  Uzman \u0130pucu: Yerel LLM&#8217;lerin performans\u0131n\u0131 art\u0131rmak i\u00e7in modelin Q (quantization) seviyesini dikkatlice se\u00e7in. Daha d\u00fc\u015f\u00fck Q de\u011ferleri (\u00f6rn. Q4_K_M) daha h\u0131zl\u0131 \u00e7al\u0131\u015f\u0131r ancak biraz do\u011fruluk kayb\u0131na neden olabilirken, daha y\u00fcksek Q de\u011ferleri (\u00f6rn. Q8_0) daha do\u011fru ancak daha yava\u015f olabilir. Ba\u015flang\u0131\u00e7ta Q4 veya Q5 denemeler yapmak iyi bir stratejidir.\n<\/div>\n<h3>Ajans Tabanl\u0131 Geli\u015ftirme Yakla\u015f\u0131m\u0131 Ne Anlama Geliyor?<\/h3>\n<p>Ajans tabanl\u0131 geli\u015ftirme, yapay zeka sistemlerini, belirli hedeflere ula\u015fmak i\u00e7in kendi ba\u015flar\u0131na hareket edebilen, karar verebilen ve ara\u00e7lar\u0131 kullanabilen otonom varl\u0131klar (ajanlar) olarak tasarlama felsefesidir. Geleneksel YZ uygulamalar\u0131 genellikle kullan\u0131c\u0131dan bir girdi al\u0131r ve do\u011frudan bir \u00e7\u0131kt\u0131 \u00fcretir. Oysa bir ajans, bir hedef verildi\u011finde, bu hedefe ula\u015fmak i\u00e7in a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 i\u00e7erebilen bir d\u00fc\u015f\u00fcnme, planlama ve uygulama d\u00f6ng\u00fcs\u00fcne girer:<\/p>\n<ol>\n<li><strong>Hedef Anlama ve Ayr\u0131\u015ft\u0131rma:<\/strong> Ajans, verilen ana hedefi daha k\u00fc\u00e7\u00fck, y\u00f6netilebilir alt g\u00f6revlere b\u00f6ler.<\/li>\n<li><strong>Planlama:<\/strong> Hangi ad\u0131mlar\u0131n at\u0131laca\u011f\u0131n\u0131 ve hangi ara\u00e7lar\u0131n kullan\u0131laca\u011f\u0131n\u0131 belirler.<\/li>\n<li><strong>Ara\u00e7 Kullan\u0131m\u0131:<\/strong> G\u00f6revleri yerine getirmek i\u00e7in \u00f6zel olarak tasarlanm\u0131\u015f i\u015flevleri (\u00f6rne\u011fin, internet aramas\u0131 yapmak, dosya okumak, kod \u00e7al\u0131\u015ft\u0131rmak) \u00e7a\u011f\u0131r\u0131r.<\/li>\n<li><strong>G\u00f6zlem ve Geri Bildirim:<\/strong> Ara\u00e7lar\u0131n \u00e7\u0131kt\u0131s\u0131n\u0131 de\u011ferlendirir, plan\u0131n i\u015fe yaray\u0131p yaramad\u0131\u011f\u0131n\u0131 kontrol eder.<\/li>\n<li><strong>\u00d6\u011frenme ve Adaptasyon:<\/strong> Ba\u015far\u0131s\u0131zl\u0131k durumunda plan\u0131n\u0131 revize eder veya yeni stratejiler dener.<\/li>\n<li><strong>Bellek Y\u00f6netimi:<\/strong> Ge\u00e7mi\u015f etkile\u015fimleri ve bilgileri hat\u0131rlar, b\u00f6ylece ba\u011flam\u0131 korur ve daha tutarl\u0131 yan\u0131tlar \u00fcretir.<\/li>\n<\/ol>\n<p>Bu yakla\u015f\u0131m, yapay zekan\u0131n \u00e7ok daha karma\u015f\u0131k ve dinamik problemleri \u00e7\u00f6zmesine olanak tan\u0131r. \u00d6rne\u011fin, bir kullan\u0131c\u0131dan &#8220;\u0130stanbul&#8217;daki en iyi 5 \u0130talyan restoran\u0131n\u0131 bul ve rezervasyon yapt\u0131r&#8221; gibi bir istek ald\u0131\u011f\u0131nda, ajans:<\/p>\n<ul>\n<li>Bir internet arama arac\u0131 kullanarak &#8220;\u0130stanbul en iyi \u0130talyan restoranlar\u0131&#8221; sorgusunu yapar.<\/li>\n<li>Elde etti\u011fi sonu\u00e7lar\u0131 filtreler ve en iyi 5&#8217;ini belirler.<\/li>\n<li>Her restoran\u0131n rezervasyon y\u00f6ntemini ara\u015ft\u0131r\u0131r (web sitesi, telefon).<\/li>\n<li>Kullan\u0131c\u0131n\u0131n tercihlerine g\u00f6re rezervasyon arac\u0131n\u0131 kullanarak rezervasyon yapmaya \u00e7al\u0131\u015f\u0131r.<\/li>\n<li>T\u00fcm ad\u0131mlar\u0131 ba\u015far\u0131yla tamamlad\u0131\u011f\u0131nda kullan\u0131c\u0131ya nihai bilgiyi sunar.<\/li>\n<\/ul>\n<p>Bu s\u00fcre\u00e7, basit bir sohbet botunun tek seferlik bir yan\u0131t\u0131ndan \u00e7ok daha fazlas\u0131n\u0131 gerektirir ve ger\u00e7ek anlamda ak\u0131ll\u0131, otonom sistemler olu\u015fturman\u0131n temelini olu\u015fturur. Opencode, bu ajans geli\u015ftirme s\u00fcrecini basitle\u015ftiren ve yerel LLM&#8217;lerle entegrasyonu kolayla\u015ft\u0131ran bir k\u00f6pr\u00fc g\u00f6revi g\u00f6r\u00fcr.<\/p>\n<h2>Opencode \u00c7er\u00e7evesi ile Ajans Geli\u015ftirme Nas\u0131l Ba\u015flar?<\/h2>\n<p>\u015eimdi s\u0131ra geldi Opencode&#8217;un pratik y\u00f6n\u00fcne. Opencode, yerel LLM&#8217;ler \u00fczerinde g\u00fc\u00e7l\u00fc ve esnek yapay zeka ajanlar\u0131 olu\u015fturmay\u0131 kolayla\u015ft\u0131ran, a\u00e7\u0131k kaynakl\u0131 bir geli\u015ftirme \u00e7er\u00e7evesidir. Temel amac\u0131, ajans tabanl\u0131 YZ sistemlerinin karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 soyutlamak ve geli\u015ftiricilerin, temel altyap\u0131 detaylar\u0131yla bo\u011fu\u015fmadan i\u015f mant\u0131\u011f\u0131na odaklanmas\u0131n\u0131 sa\u011flamakt\u0131r. Bu b\u00f6l\u00fcmde, Opencode&#8217;un temel kurulumundan ba\u015flayarak basit bir ajan olu\u015fturma s\u00fcrecini ad\u0131m ad\u0131m inceleyece\u011fiz.<\/p>\n<p>\u00d6ncelikle, Opencode&#8217;u sistemimize kurmam\u0131z gerekiyor. Genellikle Python tabanl\u0131 bir \u00e7er\u00e7eve olan Opencode, pip arac\u0131l\u0131\u011f\u0131yla kolayca kurulabilir. Terminalinizi a\u00e7\u0131n ve a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code>\npip install opencode\n<\/pre>\n<p><\/code><\/p>\n<p>Kurulum tamamland\u0131ktan sonra, Opencode'un yerel LLM'lerle ileti\u015fim kurabilmesi i\u00e7in bir LLM \u00e7al\u0131\u015ft\u0131rma ortam\u0131na ihtiyac\u0131m\u0131z var. Bu makalede Ollama'y\u0131 varsayaca\u011f\u0131z, \u00e7\u00fcnk\u00fc kullan\u0131m\u0131 kolayd\u0131r ve \u00e7e\u015fitli modelleri destekler. Ollama'y\u0131 <a href=\"https:\/\/ollama.com\/download\" target=\"_blank\">resmi web sitesinden<\/a> indirip kurduktan sonra, ihtiyac\u0131m\u0131z olan bir modeli (\u00f6rne\u011fin, Llama 3) indirip \u00e7al\u0131\u015ft\u0131rmal\u0131y\u0131z:<\/p>\n<pre><code>\nollama pull llama3\nollama run llama3\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, Llama 3 modelini indirir ve yerel bir sunucu \u00fczerinde \u00e7al\u0131\u015ft\u0131rmaya ba\u015flar. Art\u0131k Opencode ajanlar\u0131m\u0131z bu yerel LLM ile etkile\u015fim kurabilir.<\/p>\n<p>\u015eimdi basit bir Opencode ajan\u0131 olu\u015ftural\u0131m. Bu ajan\u0131n g\u00f6revi, kendisine verilen bir konuyu \u00f6zetlemek ve anahtar kelimeleri \u00e7\u0131karmak olsun. \u00d6ncelikle, Opencode'un temel bile\u015fenlerini kullanarak bir ajan s\u0131n\u0131f\u0131 tan\u0131mlayaca\u011f\u0131z.<\/p>\n<pre><code>\nfrom opencode.agent import Agent\nfrom opencode.llm import OllamaLLM\nfrom opencode.tools import Tool\n\n# 1. Yerel LLM'i Tan\u0131mlama\n# Ollama'da \u00e7al\u0131\u015fan Llama 3 modelini kullanaca\u011f\u0131z\nlocal_llm = OllamaLLM(model=\"llama3\", base_url=\"http:\/\/localhost:11434\")\n\n# 2. Ajans i\u00e7in Ara\u00e7lar Tan\u0131mlama (\u015eimdilik yok, ama sonra ekleyece\u011fiz)\n# Bir \u00f6rnek ara\u00e7 tan\u0131mlayal\u0131m:\nclass KeywordExtractorTool(Tool):\n    def __init__(self):\n        super().__init__(name=\"keyword_extractor\", description=\"Verilen metinden anahtar kelimeleri \u00e7\u0131kar\u0131r.\")\n\n    def run(self, text: str) -> str:\n        # Ger\u00e7ek d\u00fcnyada burada geli\u015fmi\u015f bir NLP k\u00fct\u00fcphanesi kullan\u0131labilir.\n        # Basit bir \u00f6rnek i\u00e7in, metindeki ilk 5 benzersiz kelimeyi alal\u0131m.\n        words = list(set(word.lower() for word in text.split() if len(word) > 3))\n        return \", \".join(words[:5])\n\n# 3. Ajans Tan\u0131mlama\nclass SummarizerAgent(Agent):\n    def __init__(self):\n        super().__init__(\n            name=\"OzetlemeVeAnahtarKelimeAjani\",\n            description=\"Verilen metni \u00f6zetler ve anahtar kelimelerini belirler.\",\n            llm=local_llm,\n            tools=[KeywordExtractorTool()], # Tan\u0131mlad\u0131\u011f\u0131m\u0131z arac\u0131 ajansa ekledik\n            system_prompt=\"\"\"Sen bir metin \u00f6zetleme ve anahtar kelime \u00e7\u0131karma uzman\u0131s\u0131n. Kullan\u0131c\u0131dan ald\u0131\u011f\u0131n metni \u00f6nce \u00f6zetle, ard\u0131ndan KeywordExtractorTool arac\u0131n\u0131 kullanarak anahtar kelimeleri \u00e7\u0131kar. \u00d6zet ve anahtar kelimeleri ayr\u0131 ayr\u0131 sun.\"\"\"\n        )\n\n# 4. Ajans\u0131 \u00c7al\u0131\u015ft\u0131rma\nif __name__ == \"__main__\":\n    summarizer_agent = SummarizerAgent()\n    \n    input_text = \"\"\"B\u00fcy\u00fck Dil Modelleri (LLM'ler) son y\u0131llarda yapay zeka alan\u0131nda devrim niteli\u011finde bir etki yaratt\u0131. Metin olu\u015fturma, anlama, \u00e7eviri ve \u00f6zetleme gibi bir\u00e7ok karma\u015f\u0131k g\u00f6revi y\u00fcksek do\u011frulukla yerine getirebiliyorlar. Ancak bu modellerin bulut tabanl\u0131 s\u00fcr\u00fcmleri, \u00f6zellikle veri gizlili\u011fi ve maliyet konular\u0131nda baz\u0131 endi\u015feleri beraberinde getiriyor. Bu nedenle, yerel LLM'ler geli\u015ftiriciler ve \u015firketler i\u00e7in giderek daha cazip hale gelmektedir. Opencode gibi \u00e7er\u00e7eveler, bu yerel modelleri kullanarak ajans tabanl\u0131 sistemler geli\u015ftirmeyi kolayla\u015ft\u0131r\u0131r ve YZ'nin daha geni\u015f kitlelere ula\u015fmas\u0131n\u0131 sa\u011flar.\"\"\"\n\n    print(f\"Ajansa Giri\u015f Metni:\\n{input_text}\\n\")\n    \n    response = summarizer_agent.run(input_text)\n    print(f\"Ajans\u0131n \u00c7\u0131kt\u0131s\u0131:\\n{response}\")\n<\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki kod blo\u011fu, temel bir Opencode ajans\u0131n\u0131n nas\u0131l olu\u015fturulaca\u011f\u0131n\u0131 g\u00f6steriyor. \u0130lk olarak, kulland\u0131\u011f\u0131m\u0131z yerel LLM'i (OllamaLLM) tan\u0131ml\u0131yoruz. Ard\u0131ndan, ajan\u0131m\u0131z\u0131n kullanabilece\u011fi bir <code>KeywordExtractorTool<\/code> arac\u0131 olu\u015fturuyoruz. Bu ara\u00e7, ajan\u0131n metin i\u015fleme yeteneklerini geni\u015fletiyor. Son olarak, <code>SummarizerAgent<\/code> s\u0131n\u0131f\u0131m\u0131z\u0131 tan\u0131ml\u0131yor, LLM'i, ara\u00e7lar\u0131 ve ajans\u0131n davran\u0131\u015f\u0131n\u0131 belirleyen bir <code>system_prompt<\/code> ile donat\u0131yoruz. <code>if __name__ == \"__main__\":<\/code> blo\u011funda ise ajans\u0131 ba\u015flat\u0131p bir metinle test ediyoruz.<\/p>\n<p>Bu \u00f6rnek, Opencode'un temel yap\u0131s\u0131n\u0131 ve yerel LLM entegrasyonunu sergiler. Ger\u00e7ek d\u00fcnya senaryolar\u0131nda, ajanlar \u00e7ok daha fazla araca (API \u00e7a\u011fr\u0131lar\u0131, veritaban\u0131 sorgular\u0131, dosya i\u015flemleri vb.) sahip olabilir ve daha karma\u015f\u0131k karar verme s\u00fcre\u00e7lerini i\u00e7erebilirler. Opencode'un mod\u00fcler yap\u0131s\u0131, bu karma\u015f\u0131kl\u0131\u011f\u0131 y\u00f6netmeyi kolayla\u015ft\u0131r\u0131r.<\/p>\n<div class=\"expert-tip\">\n  Uzman \u0130pucu: Opencode'un <code>system_prompt<\/code> parametresi, ajans\u0131n\u0131z\u0131n ki\u015fili\u011fini, rol\u00fcn\u00fc ve g\u00f6revini tan\u0131mlayan en \u00f6nemli k\u0131s\u0131mlardan biridir. Ne kadar a\u00e7\u0131k ve detayl\u0131 bir prompt verirseniz, ajans\u0131n\u0131z o kadar tutarl\u0131 ve istenen sonu\u00e7lar\u0131 \u00fcretir. \u00d6zellikle ara\u00e7 kullan\u0131m\u0131n\u0131 te\u015fvik etmek i\u00e7in prompt'unuza ara\u00e7lar\u0131n adlar\u0131n\u0131 ve a\u00e7\u0131klamalar\u0131n\u0131 ekleyebilirsiniz.\n<\/div>\n<h2>Ger\u00e7ek D\u00fcnya Senaryolar\u0131nda Opencode Ajanslar\u0131n\u0131 Kullanmak: Vaka Analizleri<\/h2>\n<p>Teorik bilgilerin ve basit bir \u00f6rne\u011fin ard\u0131ndan, Opencode'un ger\u00e7ek d\u00fcnya problemlerini \u00e7\u00f6zmede nas\u0131l kullan\u0131labilece\u011fini iki farkl\u0131 vaka analiziyle derinlemesine inceleyelim. Bu vaka analizleri, yerel LLM'ler ve ajans tabanl\u0131 geli\u015ftirmenin i\u015fletmelere ve bireylere sa\u011flayabilece\u011fi somut faydalar\u0131 vurgulayacakt\u0131r.<\/p>\n<h3>Vaka Analizi 1: Otomatik Belge \u00d6zetleme ve S\u0131n\u0131fland\u0131rma Ajans\u0131<\/h3>\n<p>B\u00fcy\u00fck kurulu\u015flar, her g\u00fcn y\u00fczlerce, hatta binlerce belgeyle (raporlar, e-postalar, yasal metinler, ara\u015ft\u0131rma makaleleri) kar\u015f\u0131la\u015f\u0131r. Bu belgeleri manuel olarak \u00f6zetlemek, anahtar bilgilerini \u00e7\u0131karmak ve do\u011fru kategorilere ay\u0131rmak, zaman al\u0131c\u0131, maliyetli ve hataya a\u00e7\u0131k bir s\u00fcre\u00e7tir. Gizlilik endi\u015feleri nedeniyle bu belgelerin bulut tabanl\u0131 LLM'lere g\u00f6nderilmesi de \u00e7o\u011fu zaman m\u00fcmk\u00fcn de\u011fildir.<\/p>\n<p><strong>Problem:<\/strong> Finans sekt\u00f6r\u00fcnde faaliyet g\u00f6steren bir \u015firket, m\u00fc\u015fterilerden gelen kredi ba\u015fvurular\u0131, s\u00f6zle\u015fmeler ve finansal raporlar gibi hassas belgeleri h\u0131zl\u0131 ve g\u00fcvenli bir \u015fekilde i\u015flemek, \u00f6zetlemek ve ilgili departmanlara g\u00f6re s\u0131n\u0131fland\u0131rmak istiyor. Manuel s\u00fcre\u00e7ler yetersiz kal\u0131yor ve veri gizlili\u011fi nedeniyle d\u0131\u015far\u0131dan bir hizmet kullan\u0131lam\u0131yor.<\/p>\n<p><strong>\u00c7\u00f6z\u00fcm:<\/strong> Opencode ile yerel bir belge i\u015fleme ajans\u0131 geli\u015ftirilebilir. Bu ajans, \u015firketin kendi sunucular\u0131nda \u00e7al\u0131\u015fan bir Llama 3 modeliyle entegre edilecek ve \u00f6zel ara\u00e7larla donat\u0131lacakt\u0131r. Ajans\u0131n temel ara\u00e7lar\u0131 \u015funlar olacakt\u0131r:<\/p>\n<ul>\n<li><strong><code>FileReaderTool<\/code>:<\/strong> Yerel dosya sisteminden metin belgelerini (PDF, DOCX, TXT) okuma yetene\u011fi.<\/li>\n<li><strong><code>CategorizerTool<\/code>:<\/strong> Belgenin i\u00e7eri\u011fine g\u00f6re \u00f6nceden tan\u0131mlanm\u0131\u015f kategorilerden (\u00f6rne\u011fin, \"Kredi Ba\u015fvurusu\", \"Yasal Metin\", \"Pazarlama Raporu\", \"Finansal Analiz\") birini atama yetene\u011fi.<\/li>\n<li><strong><code>DatabaseWriterTool<\/code>:<\/strong> \u00d6zetleri, anahtar kelimeleri ve kategorileri \u015firket i\u00e7i bir veritaban\u0131na kaydetme yetene\u011fi.<\/li>\n<\/ul>\n<p><strong>Ajans\u0131n \u0130\u015f Ak\u0131\u015f\u0131:<\/strong><\/p>\n<ol>\n<li>Ajans, belirlenmi\u015f bir klas\u00f6rdeki yeni belgeleri izler.<\/li>\n<li>Yeni bir belge tespit etti\u011finde, <code>FileReaderTool<\/code>'u kullanarak belgenin i\u00e7eri\u011fini okur.<\/li>\n<li>Okunan metni yerel Llama 3 modeline g\u00f6ndererek bir \u00f6zet olu\u015fturmas\u0131n\u0131 ve anahtar kelimeleri \u00e7\u0131karmas\u0131n\u0131 ister.<\/li>\n<li>Ayn\u0131 metni <code>CategorizerTool<\/code>'a g\u00f6ndererek belgenin t\u00fcr\u00fcn\u00fc belirler.<\/li>\n<li>Elde edilen \u00f6zet, anahtar kelimeler, kategori ve belge referans\u0131n\u0131 <code>DatabaseWriterTool<\/code> arac\u0131l\u0131\u011f\u0131yla veritaban\u0131na kaydeder.<\/li>\n<li>Son olarak, ilgili departmana bir bildirim g\u00f6nderir (bu da ba\u015fka bir ara\u00e7 olabilir).<\/li>\n<\/ol>\n<p><strong>\u00d6rnek Ara\u00e7 Tan\u0131m\u0131 (Basitle\u015ftirilmi\u015f):<\/strong><\/p>\n<pre><code>\nfrom opencode.tools import Tool\nimport os\n\nclass FileReaderTool(Tool):\n    def __init__(self):\n        super().__init__(name=\"file_reader\", description=\"Belirtilen dosya yolundan metin i\u00e7eri\u011fini okur.\")\n\n    def run(self, file_path: str) -> str:\n        if not os.path.exists(file_path):\n            return f\"Hata: Dosya bulunamad\u0131 - {file_path}\"\n        try:\n            with open(file_path, \"r\", encoding=\"utf-8\") as f:\n                content = f.read()\n            return content\n        except Exception as e:\n            return f\"Dosya okuma hatas\u0131: {e}\"\n\n# CategorizerTool ve DatabaseWriterTool benzer \u015fekilde tan\u0131mlanabilir.\n# CategorizerTool, \u00f6nceden tan\u0131mlanm\u0131\u015f kategorileri ve \u00f6rnek metinleri kullanarak \n# LLM'den s\u0131n\u0131fland\u0131rma yapmas\u0131n\u0131 isteyebilir veya daha basit kural tabanl\u0131 olabilir.\n<\/pre>\n<p><\/code><\/p>\n<p>Bu ajans sayesinde \u015firket, binlerce belgeyi manuel m\u00fcdahale olmadan, h\u0131zl\u0131, g\u00fcvenli ve tutarl\u0131 bir \u015fekilde i\u015fleyebilir. Bu, hem zamandan tasarruf sa\u011flar hem de insan hatas\u0131 riskini minimize eder.<\/p>\n<h3>Vaka Analizi 2: Ak\u0131ll\u0131 M\u00fc\u015fteri Destek Botu Geli\u015ftirme<\/h3>\n<p>M\u00fc\u015fteri destek departmanlar\u0131, genellikle tekrar eden sorularla bo\u011fu\u015fur ve s\u0131n\u0131rl\u0131 insan kaynaklar\u0131 nedeniyle yan\u0131t s\u00fcreleri uzayabilir. Mevcut chatbot'lar genellikle kural tabanl\u0131d\u0131r ve karma\u015f\u0131k sorular\u0131 yan\u0131tlamakta veya ki\u015fiselle\u015ftirilmi\u015f \u00e7\u00f6z\u00fcmler sunmakta yetersiz kal\u0131rlar.<\/p>\n<p><strong>Problem:<\/strong> Bir e-ticaret \u015firketi, s\u0131k\u00e7a sorulan sorulara otomatik ve ki\u015fiselle\u015ftirilmi\u015f yan\u0131tlar verebilen, ancak karma\u015f\u0131k durumlarda canl\u0131 destek temsilcisine devredebilen ak\u0131ll\u0131 bir m\u00fc\u015fteri destek botuna ihtiya\u00e7 duyuyor. M\u00fc\u015fteri verileri hassas oldu\u011fundan bulut tabanl\u0131 bir \u00e7\u00f6z\u00fcm tercih edilmiyor.<\/p>\n<p><strong>\u00c7\u00f6z\u00fcm:<\/strong> Opencode ile yerel LLM destekli bir m\u00fc\u015fteri destek ajans\u0131 olu\u015fturulabilir. Bu ajans, m\u00fc\u015fterinin sorular\u0131n\u0131 anlar, ilgili bilgileri \u015firket i\u00e7i bilgi taban\u0131ndan (Retrieval Augmented Generation - RAG yakla\u015f\u0131m\u0131) \u00e7eker ve uygun bir yan\u0131t olu\u015fturur. Gerekirse, \u015firketin CRM sistemine ba\u011flanarak m\u00fc\u015fteri bilgilerini de kullanabilir.<\/p>\n<p><strong>Ajans\u0131n Temel Ara\u00e7lar\u0131:<\/strong><\/p>\n<ul>\n<li><strong><code>KnowledgeBaseSearchTool<\/code>:<\/strong> \u015eirketin \u00fcr\u00fcn k\u0131lavuzlar\u0131, SSS sayfalar\u0131 ve destek dok\u00fcmanlar\u0131ndan olu\u015fan yerel bir vekt\u00f6r veritaban\u0131n\u0131 sorgulama yetene\u011fi.<\/li>\n<li><strong><code>CRMQueryTool<\/code>:<\/strong> M\u00fc\u015fterinin sipari\u015f ge\u00e7mi\u015fi, hesap durumu gibi bilgilerini \u015firket i\u00e7i CRM sisteminden alma yetene\u011fi.<\/li>\n<li><strong><code>LiveChatHandoverTool<\/code>:<\/strong> Ajans\u0131n \u00e7\u00f6zemedi\u011fi durumlarda, g\u00f6r\u00fc\u015fmeyi bir canl\u0131 destek temsilcisine devretme ve ge\u00e7mi\u015f konu\u015fmay\u0131 aktarma yetene\u011fi.<\/li>\n<\/ul>\n<p><strong>Ajans\u0131n \u0130\u015f Ak\u0131\u015f\u0131:<\/strong><\/p>\n<ol>\n<li>M\u00fc\u015fteri bir soru sordu\u011funda, ajans soruyu analiz eder.<\/li>\n<li>\u00d6ncelikle <code>KnowledgeBaseSearchTool<\/code>'u kullanarak bilgi taban\u0131nda ilgili yan\u0131tlar\u0131 arar.<\/li>\n<li>E\u011fer bilgi taban\u0131nda yeterli bilgi bulursa, bu bilgiyi LLM'e sunar ve ki\u015fiselle\u015ftirilmi\u015f bir yan\u0131t olu\u015fturur.<\/li>\n<li>E\u011fer soru, m\u00fc\u015fterinin sipari\u015f ge\u00e7mi\u015fi gibi \u00f6zel bilgiler gerektiriyorsa, <code>CRMQueryTool<\/code>'u kullanarak ilgili verileri \u00e7eker ve yan\u0131t\u0131 buna g\u00f6re uyarlar.<\/li>\n<li>E\u011fer ajans sorunu \u00e7\u00f6zemeyece\u011fini veya hassas bir durum oldu\u011funu alg\u0131larsa (\u00f6rne\u011fin, \u015fikayetler, iade talepleri), <code>LiveChatHandoverTool<\/code>'u kullanarak konu\u015fmay\u0131 bir insan temsilcisine devreder ve t\u00fcm ba\u011flam\u0131 aktar\u0131r.<\/li>\n<\/ol>\n<pre><code>\nfrom opencode.tools import Tool\n\nclass KnowledgeBaseSearchTool(Tool):\n    def __init__(self):\n        super().__init__(name=\"knowledge_base_search\", description=\"\u015eirketin bilgi taban\u0131nda ilgili makaleleri arar ve d\u00f6nd\u00fcr\u00fcr.\")\n\n    def run(self, query: str) -> str:\n        # Ger\u00e7ek d\u00fcnyada burada bir vekt\u00f6r veritaban\u0131 sorgusu yap\u0131l\u0131r.\n        # Basit bir \u00f6rnek i\u00e7in, statik bir s\u00f6zl\u00fckten arama yapal\u0131m.\n        faq_data = {\n            \"sipari\u015f takibi\": \"Sipari\u015finizi web sitemizdeki 'Sipari\u015flerim' b\u00f6l\u00fcm\u00fcnden takip edebilirsiniz.\",\n            \"iade politikas\u0131\": \"\u00dcr\u00fcn iadeleri 14 g\u00fcn i\u00e7inde yap\u0131labilmektedir. Detayl\u0131 bilgi i\u00e7in iade politikam\u0131z\u0131 inceleyin.\",\n            \"kargo \u00fccretleri\": \"100 TL \u00fczeri sipari\u015flerde kargo \u00fccretsizdir.\"\n        }\n        for keyword, answer in faq_data.items():\n            if keyword in query.lower():\n                return answer\n        return \"Bilgi taban\u0131m\u0131zda bu konuda do\u011frudan bir yan\u0131t bulunamad\u0131.\"\n\n# CRMQueryTool ve LiveChatHandoverTool da benzer \u015fekilde tan\u0131mlanabilir.\n<\/pre>\n<p><\/code><\/p>\n<p>Bu ajans, m\u00fc\u015fteri destek operasyonlar\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde otomatize ederken, m\u00fc\u015fteri memnuniyetini art\u0131r\u0131r ve insan temsilcilerinin daha karma\u015f\u0131k vakalara odaklanmas\u0131n\u0131 sa\u011flar. Yerel LLM kullan\u0131m\u0131 sayesinde, m\u00fc\u015fteri verilerinin g\u00fcvenli\u011fi de garanti alt\u0131na al\u0131n\u0131r.<\/p>\n<h2>\u0130leri D\u00fczey Ajans Tasar\u0131m\u0131 ve Optimizasyonu: Performans\u0131 Nas\u0131l Art\u0131r\u0131rs\u0131n\u0131z?<\/h2>\n<p>Opencode ile temel ajanslar\u0131 olu\u015fturmay\u0131 ve ger\u00e7ek d\u00fcnya senaryolar\u0131nda nas\u0131l kullan\u0131labilece\u011fini g\u00f6rd\u00fck. Ancak, daha verimli, daha ak\u0131ll\u0131 ve daha yetenekli ajanlar tasarlamak i\u00e7in baz\u0131 ileri d\u00fczey tekniklere ihtiya\u00e7 vard\u0131r. Bu b\u00f6l\u00fcmde, ajanslar\u0131n\u0131z\u0131n performans\u0131n\u0131 ve yeteneklerini nas\u0131l art\u0131rabilece\u011finize dair ipu\u00e7lar\u0131 ve stratejiler sunaca\u011f\u0131z.<\/p>\n<h3>Ajans Bellek Y\u00f6netimi ve Durum Takibi<\/h3>\n<p>Bir ajans\u0131n \"ak\u0131ll\u0131\" olabilmesi i\u00e7in sadece mevcut g\u00f6reve odaklanmas\u0131 yetmez; ge\u00e7mi\u015f konu\u015fmalar\u0131, kararlar\u0131 ve elde etti\u011fi bilgileri hat\u0131rlamas\u0131 gerekir. Bu, ajans\u0131n ba\u011flam\u0131 korumas\u0131n\u0131, \u00f6nceki hatalar\u0131ndan ders \u00e7\u0131karmas\u0131n\u0131 ve daha tutarl\u0131 yan\u0131tlar vermesini sa\u011flar. Opencode gibi \u00e7er\u00e7eveler genellikle farkl\u0131 bellek t\u00fcrlerini destekler:<\/p>\n<ul>\n<li><strong>K\u0131sa S\u00fcreli Bellek (Short-Term Memory):<\/strong> Genellikle mevcut diyalogdaki son birka\u00e7 d\u00f6n\u00fc\u015f\u00fc veya son kullan\u0131lan ara\u00e7 \u00e7\u0131kt\u0131lar\u0131n\u0131 i\u00e7erir. Bu, LLM'in anl\u0131k ba\u011flam\u0131 korumas\u0131na yard\u0131mc\u0131 olur.<\/li>\n<li><strong>Uzun S\u00fcreli Bellek (Long-Term Memory):<\/strong> Ge\u00e7mi\u015f etkile\u015fimlerden \u00f6\u011frenilen kal\u0131c\u0131 bilgileri, ajans\u0131n genel deneyimini ve kritik verileri depolar. Bu genellikle bir vekt\u00f6r veritaban\u0131 (\u00f6rne\u011fin, ChromaDB, FAISS) veya geleneksel bir veritaban\u0131 arac\u0131l\u0131\u011f\u0131yla uygulan\u0131r. Ajans, gerekti\u011finde bu uzun s\u00fcreli bellekten bilgi \u00e7ekerek g\u00fcncel g\u00f6reve entegre edebilir.<\/li>\n<\/ul>\n<p>Opencode'da ajans\u0131n\u0131z i\u00e7in bellek mod\u00fcllerini yap\u0131land\u0131rarak bu yetenekleri entegre edebilirsiniz. \u00d6rne\u011fin, bir vekt\u00f6r veritaban\u0131n\u0131 uzun s\u00fcreli bellek olarak kullanarak, ajans\u0131n\u0131z\u0131n zamanla belirli konularda uzmanla\u015fmas\u0131n\u0131 sa\u011flayabilirsiniz.<\/p>\n<h3>Ara\u00e7 Se\u00e7imi ve Entegrasyonu<\/h3>\n<p>Bir ajans\u0131n g\u00fcc\u00fc, kullanabildi\u011fi ara\u00e7larla do\u011fru orant\u0131l\u0131d\u0131r. \u0130nternet aramas\u0131, dosya okuma\/yazma, API \u00e7a\u011fr\u0131lar\u0131, veritaban\u0131 sorgular\u0131, kod \u00e7al\u0131\u015ft\u0131rma gibi ara\u00e7lar, ajans\u0131n fiziksel d\u00fcnyaya veya dijital servislere eri\u015fimini sa\u011flar. Ara\u00e7lar\u0131n do\u011fru se\u00e7imi ve entegrasyonu kritiktir:<\/p>\n<ul>\n<li><strong>\u00d6zel Ara\u00e7lar Geli\u015ftirme:<\/strong> Ajans\u0131n\u0131z\u0131n benzersiz ihtiya\u00e7lar\u0131na g\u00f6re \u00f6zel Python fonksiyonlar\u0131 veya s\u0131n\u0131flar\u0131 yazarak yeni ara\u00e7lar olu\u015fturun. \u00d6rne\u011fin, \u015firketinizin i\u00e7 API'lerini \u00e7a\u011f\u0131ran bir ara\u00e7.<\/li>\n<li><strong>Hata Y\u00f6netimi:<\/strong> Ara\u00e7lar ba\u015far\u0131s\u0131z oldu\u011funda ajans\u0131n ne yapaca\u011f\u0131n\u0131 tan\u0131mlay\u0131n. Tekrar denemeli mi, kullan\u0131c\u0131ya hata mesaj\u0131 m\u0131 vermeli, yoksa farkl\u0131 bir araca m\u0131 ge\u00e7meli?<\/li>\n<li><strong>Ara\u00e7 A\u00e7\u0131klamalar\u0131:<\/strong> LLM'in ara\u00e7lar\u0131 ne zaman ve nas\u0131l kullanaca\u011f\u0131n\u0131 anlamas\u0131 i\u00e7in ara\u00e7 a\u00e7\u0131klamalar\u0131n\u0131 (<code>description<\/code>) \u00e7ok net ve bilgilendirici yaz\u0131n. Ne kadar iyi a\u00e7\u0131klarsan\u0131z, LLM o kadar do\u011fru karar verir.<\/li>\n<\/ul>\n<p>A\u015fa\u011f\u0131da, bir web sitesinden veri \u00e7ekmek i\u00e7in kullan\u0131labilecek basit bir ara\u00e7 \u00f6rne\u011fi bulunmaktad\u0131r:<\/p>\n<pre><code>\nfrom opencode.tools import Tool\nimport requests\n\nclass WebScraperTool(Tool):\n    def __init__(self):\n        super().__init__(name=\"web_scraper\", description=\"Belirtilen URL'den HTML i\u00e7eri\u011fini \u00e7eker.\")\n\n    def run(self, url: str) -> str:\n        try:\n            response = requests.get(url, timeout=10)\n            response.raise_for_status() # HTTP hatalar\u0131 i\u00e7in istisna f\u0131rlat\u0131r\n            return response.text[:2000] # \u00c7ok uzun sayfalar\u0131 k\u0131rpabiliriz\n        except requests.exceptions.RequestException as e:\n            return f\"Web sitesine eri\u015fim hatas\u0131: {e}\"\n\n# Ajans\u0131n\u0131z bu arac\u0131 kullanarak bir web sayfas\u0131n\u0131 okuyabilir.\n<\/pre>\n<p><\/code><\/p>\n<h3>Prompt M\u00fchendisli\u011fi ve Model Se\u00e7imi<\/h3>\n<p>LLM'ler, ne kadar geli\u015fmi\u015f olursa olsunlar, onlara verilen talimatlar (prompt'lar) kadar iyi performans g\u00f6sterirler. Ajanslar i\u00e7in prompt m\u00fchendisli\u011fi, LLM'in hem g\u00f6revini anlamas\u0131n\u0131 hem de ara\u00e7lar\u0131 etkili bir \u015fekilde kullanmas\u0131n\u0131 sa\u011flamak i\u00e7in hayati \u00f6nem ta\u015f\u0131r:<\/p>\n<ul>\n<li><strong>Sistem Prompt'u (System Prompt):<\/strong> Ajans\u0131n genel rol\u00fcn\u00fc, ki\u015fili\u011fini, neyi yapmas\u0131 ve neyi yapmamas\u0131 gerekti\u011fini net bir \u015fekilde tan\u0131mlay\u0131n.<\/li>\n<li><strong>Ara\u00e7 Kullan\u0131m Talimatlar\u0131:<\/strong> LLM'e ara\u00e7lar\u0131 nas\u0131l d\u00fc\u015f\u00fcnece\u011fini ve kullanaca\u011f\u0131n\u0131 \u00f6\u011fretin. \u00d6rne\u011fin, \"E\u011fer bir bilgiye ihtiyac\u0131n varsa, \u00f6nce <code>tool_name<\/code> arac\u0131n\u0131 kullanmay\u0131 dene.\"<\/li>\n<li><strong>D\u00fc\u015f\u00fcnce S\u00fcreci:<\/strong> LLM'den karar verme s\u00fcrecini ad\u0131m ad\u0131m a\u00e7\u0131klamas\u0131n\u0131 isteyerek (Chain-of-Thought veya ReAct yakla\u015f\u0131mlar\u0131), hatalar\u0131 ay\u0131klamay\u0131 ve ajans\u0131n mant\u0131\u011f\u0131n\u0131 anlamay\u0131 kolayla\u015ft\u0131r\u0131n.<\/li>\n<\/ul>\n<p>Model se\u00e7imi de performans\u0131 do\u011frudan etkiler. Yerel LLM'ler aras\u0131nda Llama 3, Mistral, Phi-3 gibi bir\u00e7ok se\u00e7enek bulunur. Her modelin farkl\u0131 yetenekleri, boyutlar\u0131 ve performans karakteristikleri vard\u0131r. Projenizin ihtiya\u00e7lar\u0131na ve donan\u0131m\u0131n\u0131za en uygun modeli se\u00e7mek i\u00e7in farkl\u0131 modelleri test etmek (benchmarking) \u00f6nemlidir.<\/p>\n<div class=\"expert-tip\">\n  Uzman \u0130pucu: Prompt'lar\u0131n\u0131z\u0131 iteratif olarak geli\u015ftirin. \u0130lk denemede m\u00fckemmel bir prompt yazmak nadirdir. Ajans\u0131n\u0131z\u0131n \u00e7\u0131kt\u0131lar\u0131n\u0131 analiz edin, hatalar\u0131n\u0131 not al\u0131n ve prompt'unuzu bu geri bildirimlere g\u00f6re s\u00fcrekli iyile\u015ftirin. Ayr\u0131ca, prompt'lar\u0131n\u0131za \"d\u00fc\u015f\u00fcnme\" ad\u0131mlar\u0131n\u0131 eklemek (\u00f6rne\u011fin, \"\u00d6nce problemi analiz et, sonra plan yap, sonra ara\u00e7lar\u0131 kullan\") ajans\u0131n daha mant\u0131kl\u0131 davranmas\u0131n\u0131 sa\u011flayabilir.\n<\/div>\n<h2>Opencode Ajanslar\u0131n\u0131 Mobil ve Web Ortamlar\u0131na Entegre Etmek Nas\u0131l Yap\u0131l\u0131r?<\/h2>\n<p>Opencode ile geli\u015ftirdi\u011fimiz ajanslar genellikle Python tabanl\u0131 bir sunucu ortam\u0131nda \u00e7al\u0131\u015f\u0131r. Ancak bu ajanlar\u0131 son kullan\u0131c\u0131lar\u0131n mobil uygulamalar\u0131 veya web taray\u0131c\u0131lar\u0131 \u00fczerinden kullanabilmesi i\u00e7in uygun entegrasyon y\u00f6ntemlerine ihtiyac\u0131m\u0131z var. Bu b\u00f6l\u00fcmde, Opencode ajanlar\u0131n\u0131z\u0131 mobil ve web ortamlar\u0131na nas\u0131l ta\u015f\u0131yaca\u011f\u0131n\u0131z\u0131 ve bu s\u00fcre\u00e7te nelere dikkat etmeniz gerekti\u011fini ele alaca\u011f\u0131z.<\/p>\n<h3>Mobil Cihazlar i\u00e7in Duyarl\u0131 Tasar\u0131m \u0130lkeleri ve Ajans Entegrasyonu<\/h3>\n<p>Mobil cihazlar, s\u0131n\u0131rl\u0131 ekran alan\u0131 ve genellikle farkl\u0131 giri\u015f y\u00f6ntemleri (dokunmatik ekran) nedeniyle \u00f6zel bir tasar\u0131m yakla\u015f\u0131m\u0131 gerektirir. Bir web uygulamas\u0131n\u0131 veya kullan\u0131c\u0131 aray\u00fcz\u00fcn\u00fc mobil cihazlara uygun hale getirmek i\u00e7in duyarl\u0131 (responsive) tasar\u0131m prensipleri kullan\u0131l\u0131r. Bu, ayn\u0131 HTML kodunun farkl\u0131 ekran boyutlar\u0131na ve y\u00f6nlendirmelerine (dikey\/yatay) dinamik olarak adapte olmas\u0131n\u0131 sa\u011flar. CSS medya sorgular\u0131 (media queries) bu s\u00fcrecin temel ta\u015f\u0131d\u0131r.<\/p>\n<p><strong>CSS Medya Sorgusu \u00d6rne\u011fi:<\/strong><\/p>\n<pre><code>\n\/* Genel stil: t\u00fcm cihazlar *\/\n.container {\n    width: 90%;\n    margin: 0 auto;\n    padding: 20px;\n}\n\n.button {\n    padding: 10px 15px;\n    font-size: 16px;\n}\n\n\/* K\u00fc\u00e7\u00fck ekranlar i\u00e7in stil (\u00f6rn. cep telefonlar\u0131) *\/\n@media screen and (max-width: 768px) {\n    .container {\n        width: 100%; \/* Tam ekran geni\u015fli\u011fi *\/\n        padding: 10px;\n    }\n    .button {\n        width: 100%; \/* D\u00fc\u011fmeler tam geni\u015flikte *\/\n        font-size: 14px;\n        margin-top: 10px;\n    }\n    h2 {\n        font-size: 1.5em; \/* Ba\u015fl\u0131k boyutunu k\u00fc\u00e7\u00fclt *\/\n    }\n}\n\n\/* Daha b\u00fcy\u00fck ekranlar i\u00e7in stil (\u00f6rn. tabletler ve masa\u00fcst\u00fc) *\/\n@media screen and (min-width: 769px) {\n    .container {\n        max-width: 960px; \/* Maksimum geni\u015flik belirle *\/\n    }\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, ekran boyutu 768 pikselden k\u00fc\u00e7\u00fck oldu\u011funda (genellikle mobil cihazlar), kapsay\u0131c\u0131 ve d\u00fc\u011fmelerin stilleri de\u011fi\u015ferek daha mobil dostu bir g\u00f6r\u00fcn\u00fcm sunar. Mobil cihazlarda \u00e7al\u0131\u015fan Opencode ajanslar\u0131 do\u011frudan cihaz \u00fczerinde \u00e7al\u0131\u015ft\u0131r\u0131lmak yerine, genellikle bir sunucu \u00fczerinde bar\u0131nd\u0131r\u0131lan ajanlara API \u00e7a\u011fr\u0131lar\u0131 yaparak etkile\u015fime girer.<\/p>\n<p><strong>Mobil Ajans Entegrasyonu:<\/strong><\/p>\n<ol>\n<li><strong>Backend API Olu\u015fturma:<\/strong> Opencode ajanlar\u0131n\u0131z\u0131 i\u00e7eren Python uygulaman\u0131z\u0131 (\u00f6rne\u011fin, FastAPI veya Flask kullanarak) bir REST API veya WebSocket sunucusu olarak yay\u0131nlay\u0131n. Bu API, mobil uygulaman\u0131z\u0131n ajanlarla etkile\u015fim kuraca\u011f\u0131 aray\u00fcz olacakt\u0131r.<\/li>\n<li><strong>Mobil Uygulama Geli\u015ftirme:<\/strong> iOS (Swift\/Kotlin) veya Android (Java\/Kotlin) i\u00e7in native uygulamalar veya React Native, Flutter gibi cross-platform \u00e7er\u00e7eveler kullanarak mobil uygulamalar\u0131n\u0131z\u0131 geli\u015ftirin.<\/li>\n<li><strong>API \u00c7a\u011fr\u0131lar\u0131:<\/strong> Mobil uygulaman\u0131zdan bu API'ye HTTP POST istekleri g\u00f6ndererek ajanlar\u0131n\u0131za komutlar iletin (\u00f6rne\u011fin, \"belgeyi \u00f6zetle\" veya \"soruyu yan\u0131tla\") ve ajanlardan gelen yan\u0131tlar\u0131 JSON format\u0131nda al\u0131n.<\/li>\n<li><strong>D\u00fc\u015f\u00fck Gecikme Optimizasyonu:<\/strong> Mobil a\u011f ko\u015fullar\u0131 de\u011fi\u015fken olabilece\u011fi i\u00e7in, API yan\u0131t s\u00fcrelerini optimize etmek, \u00f6nbelle\u011fe alma mekanizmalar\u0131 kullanmak ve kullan\u0131c\u0131ya geri bildirim sa\u011flamak (\u00f6rne\u011fin, \"y\u00fckleniyor\" mesajlar\u0131) \u00f6nemlidir.<\/li>\n<\/ol>\n<p>Unutmamak gerekir ki, yerel LLM'leri do\u011frudan mobil cihazlarda \u00e7al\u0131\u015ft\u0131rmak (cihaz i\u00e7i LLM'ler) hala donan\u0131m ve performans a\u00e7\u0131s\u0131ndan b\u00fcy\u00fck zorluklar bar\u0131nd\u0131r\u0131r, ancak bu alanda da h\u0131zl\u0131 geli\u015fmeler ya\u015fanmaktad\u0131r (\u00f6rne\u011fin, Apple'\u0131n cihaz i\u00e7i LLM yakla\u015f\u0131mlar\u0131). \u015eimdilik, sunucu tabanl\u0131 ajanslara API \u00fczerinden eri\u015fim en yayg\u0131n y\u00f6ntemdir.<\/p>\n<h3>Web Uygulamalar\u0131nda Ajans Entegrasyonu<\/h3>\n<p>Web uygulamalar\u0131, Opencode ajanlar\u0131n\u0131 entegre etmek i\u00e7in mobil uygulamalara benzer ancak baz\u0131 farkl\u0131l\u0131klar\u0131 olan bir yol sunar. Modern web uygulamalar\u0131 genellikle bir frontend (kullan\u0131c\u0131 aray\u00fcz\u00fc) ve bir backend (sunucu taraf\u0131 mant\u0131k) ayr\u0131m\u0131na sahiptir.<\/p>\n<p><strong>Web Ajans Entegrasyonu:<\/strong><\/p>\n<ol>\n<li><strong>Backend (Ajans Sunucusu):<\/strong> Opencode ajanlar\u0131n\u0131z\u0131 bar\u0131nd\u0131ran bir backend sunucusu (Python FastAPI\/Flask, Node.js Express vb.) kurun. Bu sunucu, ajanlar\u0131 y\u00f6netir ve onlarla ileti\u015fim kurar.<\/li>\n<li><strong>REST API veya WebSockets:<\/strong> Frontend uygulaman\u0131z\u0131n ajanlarla konu\u015fabilmesi i\u00e7in bir API endpoint'i olu\u015fturun.\n<ul>\n<li><strong>REST API:<\/strong> Tek seferlik istekler ve yan\u0131tlar i\u00e7in uygundur. \u00d6rne\u011fin, bir kullan\u0131c\u0131n\u0131n sorusunu ajansa g\u00f6nderip yan\u0131t\u0131n\u0131 almak.<\/li>\n<li><strong>WebSockets:<\/strong> Ger\u00e7ek zamanl\u0131, \u00e7ift y\u00f6nl\u00fc ileti\u015fim i\u00e7in idealdir. \u00d6zellikle ajans\u0131n uzun s\u00fcreli g\u00f6revler y\u00fcr\u00fctmesi, birden fazla ad\u0131mda yan\u0131t vermesi veya arac\u0131 \u00e7al\u0131\u015ft\u0131r\u0131rken kullan\u0131c\u0131ya anl\u0131k geri bildirim sa\u011flamas\u0131 gereken durumlar i\u00e7in kullan\u0131\u015fl\u0131d\u0131r.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Frontend (Kullan\u0131c\u0131 Aray\u00fcz\u00fc):<\/strong> React, Vue, Angular gibi modern JavaScript \u00e7er\u00e7evelerini kullanarak kullan\u0131c\u0131 aray\u00fcz\u00fcn\u00fc geli\u015ftirin. Bu aray\u00fcz, API veya WebSocket arac\u0131l\u0131\u011f\u0131yla backend'deki Opencode ajanlar\u0131yla etkile\u015fime ge\u00e7ecektir.\n<pre><code>\n\/\/ \u00d6rnek bir JavaScript fetch API \u00e7a\u011fr\u0131s\u0131 (React\/Vue context'inde olabilir)\nasync function sendQueryToAgent(query) {\n    try {\n        const response = await fetch('\/api\/agent\/query', {\n            method: 'POST',\n            headers: {\n                'Content-Type': 'application\/json',\n            },\n            body: JSON.stringify({ message: query }),\n        });\n        const data = await response.json();\n        console.log(\"Agent Response:\", data.response);\n        return data.response;\n    } catch (error) {\n        console.error(\"Error sending query to agent:\", error);\n        return \"\u00dczg\u00fcn\u00fcm, bir hata olu\u015ftu.\";\n    }\n}\n        <\/pre>\n<p><\/code>\n    <\/li>\n<li><strong>G\u00fcvenlik:<\/strong> API endpoint'lerinizi kimlik do\u011frulama (authentication) ve yetkilendirme (authorization) mekanizmalar\u0131yla g\u00fcvence alt\u0131na al\u0131n. API anahtarlar\u0131, JWT (JSON Web Tokens) veya OAuth gibi y\u00f6ntemler kullan\u0131labilir.<\/li>\n<li><strong>\u00d6l\u00e7eklenebilirlik:<\/strong> Ajanslar\u0131n\u0131z\u0131n talebi kar\u015f\u0131layabilmesi i\u00e7in backend sunucusunun \u00f6l\u00e7eklenebilir oldu\u011fundan emin olun. Docker konteynerleri ve Kubernetes gibi orkestrasyon ara\u00e7lar\u0131, bu konuda yard\u0131mc\u0131 olabilir.<\/li>\n<\/ol>\n<p>Opencode ajanlar\u0131n\u0131 web uygulamalar\u0131na entegre etmek, kullan\u0131c\u0131lar\u0131n g\u00fc\u00e7l\u00fc yapay zeka yeteneklerine taray\u0131c\u0131lar\u0131 \u00fczerinden kolayca eri\u015fmesini sa\u011flar. Do\u011fru mimari ve g\u00fcvenlik \u00f6nlemleriyle, ajans tabanl\u0131 YZ \u00e7\u00f6z\u00fcmlerinizi geni\u015f kitlelere ula\u015ft\u0131rabilirsiniz.<\/p>\n<h2>Sonu\u00e7: Opencode ile Ajans Tabanl\u0131 Yerel LLM Geli\u015ftirmenin Gelece\u011fi<\/h2>\n<p>Bu makale boyunca, yapay zeka geli\u015ftirmede yerel B\u00fcy\u00fck Dil Modelleri'nin (LLM) y\u00fckseli\u015fini ve Opencode \u00e7er\u00e7evesiyle ajans tabanl\u0131 geli\u015ftirmenin nas\u0131l bir d\u00f6n\u00fc\u015f\u00fcm potansiyeli ta\u015f\u0131d\u0131\u011f\u0131n\u0131 ele ald\u0131k. G\u00f6rd\u00fc\u011f\u00fcm\u00fcz gibi, yerel LLM'ler gizlilik, maliyet ve esneklik konular\u0131nda bulut tabanl\u0131 alternatiflere g\u00f6re \u00f6nemli avantajlar sunarken, Opencode gibi \u00e7er\u00e7eveler bu modellerin g\u00fcc\u00fcn\u00fc kullanarak kendi ba\u015f\u0131na d\u00fc\u015f\u00fcnebilen, plan yapabilen ve ara\u00e7lar\u0131 etkin bir \u015fekilde kullanabilen otonom ajanlar olu\u015fturman\u0131n kap\u0131lar\u0131n\u0131 aral\u0131yor.<\/p>\n<p>Opencode, geli\u015ftiricilerin yerel LLM'leri kolayca entegre etmesine, karma\u015f\u0131k ajans i\u015f ak\u0131\u015flar\u0131 tasarlamas\u0131na ve ger\u00e7ek d\u00fcnya problemlerini \u00e7\u00f6zmek i\u00e7in \u00f6zel ara\u00e7lar geli\u015ftirmesine olanak tan\u0131yor. Finansal belge analizi ve ak\u0131ll\u0131 m\u00fc\u015fteri destek botu gibi vaka analizleriyle, Opencode'un somut i\u015f de\u011ferleri yaratma potansiyelini g\u00f6zler \u00f6n\u00fcne serdik. \u0130leri d\u00fczey ajans tasar\u0131m\u0131 ve optimizasyon teknikleri, bellek y\u00f6netimi, ak\u0131ll\u0131 ara\u00e7 se\u00e7imi ve etkili prompt m\u00fchendisli\u011fi ile ajanslar\u0131n\u0131z\u0131n yeteneklerini ve performans\u0131n\u0131 daha da ileriye ta\u015f\u0131yabilece\u011finizi \u00f6\u011frendik.<\/p>\n<p>Mobil ve web entegrasyonu b\u00f6l\u00fcm\u00fcnde ise, geli\u015ftirdi\u011fimiz bu g\u00fc\u00e7l\u00fc ajanlar\u0131n son kullan\u0131c\u0131lara nas\u0131l ula\u015ft\u0131r\u0131laca\u011f\u0131n\u0131, duyarl\u0131 tasar\u0131m ilkelerinin ve API\/WebSocket entegrasyonlar\u0131n\u0131n \u00f6nemini vurgulad\u0131k. Gelecekte, donan\u0131m yeteneklerinin artmas\u0131yla birlikte cihaz i\u00e7i (on-device) LLM'lerin ve ajanslar\u0131n do\u011frudan mobil cihazlarda \u00e7al\u0131\u015fmas\u0131 daha da yayg\u0131nla\u015fabilir, bu da yeni kullan\u0131m senaryolar\u0131n\u0131n \u00f6n\u00fcn\u00fc a\u00e7acakt\u0131r.<\/p>\n<p>Opencode ile ajans tabanl\u0131 yerel LLM geli\u015ftirme, sadece bir trendden ibaret de\u011fil; yapay zeka uygulamalar\u0131n\u0131 daha g\u00fcvenli, daha ki\u015fiselle\u015ftirilmi\u015f ve daha otonom hale getiren stratejik bir yakla\u015f\u0131md\u0131r. Kendi YZ \u00e7\u00f6z\u00fcmlerinizi olu\u015fturma yetene\u011fi, rekabet avantaj\u0131 sa\u011flayacak ve inovasyon i\u00e7in yeni yollar a\u00e7acakt\u0131r. Bu teknolojiye yat\u0131r\u0131m yapmak, kurumlar\u0131n ve geli\u015ftiricilerin gelece\u011fin yapay zeka d\u00fcnyas\u0131nda lider konumda yer almas\u0131n\u0131 sa\u011flayacakt\u0131r. Art\u0131k siz de Opencode ile ajans geli\u015ftirme yolculu\u011funuza ba\u015flayarak bu heyecan verici d\u00f6n\u00fc\u015f\u00fcm\u00fcn bir par\u00e7as\u0131 olmaya haz\u0131rs\u0131n\u0131z.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<ul>\n<li>\n<p><strong>Opencode'u kullanmak i\u00e7in hangi donan\u0131ma ihtiyac\u0131m var?<\/strong><\/p>\n<p>Opencode'un kendisi hafif bir \u00e7er\u00e7evedir. Ancak entegre etti\u011finiz yerel LLM'lerin gereksinimleri farkl\u0131l\u0131k g\u00f6sterir. Genellikle minimum 8-16 GB RAM ve tercihen bir NVIDIA GPU (4 GB VRAM ve \u00fczeri) \u00f6nerilir. K\u00fc\u00e7\u00fck modeller (\u00f6rne\u011fin, Phi-3) daha az kaynakla \u00e7al\u0131\u015fabilirken, b\u00fcy\u00fck modeller (\u00f6rne\u011fin, Llama 3 70B) daha g\u00fc\u00e7l\u00fc GPU'lar ve \u00e7ok daha fazla RAM (32 GB+) gerektirebilir.<\/p>\n<\/li>\n<li>\n<p><strong>Yerel LLM'ler bulut tabanl\u0131lara g\u00f6re daha m\u0131 iyi?<\/strong><\/p>\n<p>\"Daha iyi\" tan\u0131m\u0131 ihtiyaca g\u00f6re de\u011fi\u015fir. Yerel LLM'ler gizlilik, maliyet kontrol\u00fc, offline \u00e7al\u0131\u015fma yetene\u011fi ve \u00f6zel verilere g\u00f6re ince ayar yapabilme (fine-tuning) potansiyeli a\u00e7\u0131s\u0131ndan \u00fcst\u00fcnd\u00fcr. Ancak bulut tabanl\u0131 LLM'ler genellikle daha b\u00fcy\u00fck ve daha yetenekli olabilir, kurulum ve bak\u0131m kolayl\u0131\u011f\u0131 sunar ve y\u00fcksek \u00f6l\u00e7ekli y\u00fckleri y\u00f6netmede daha deneyimlidir. Se\u00e7im, projenizin \u00f6nceliklerine ba\u011fl\u0131d\u0131r.<\/p>\n<\/li>\n<li>\n<p><strong>Ajans geli\u015ftirmede en b\u00fcy\u00fck zorluk nedir?<\/strong><\/p>\n<p>En b\u00fcy\u00fck zorluklardan biri, ajans\u0131n karma\u015f\u0131k g\u00f6revlerde tutarl\u0131 ve g\u00fcvenilir bir \u015fekilde performans g\u00f6stermesini sa\u011flamakt\u0131r. Bu, etkili prompt m\u00fchendisli\u011fi, do\u011fru ara\u00e7 se\u00e7imi, sa\u011flam bellek y\u00f6netimi ve hatalar\u0131 ay\u0131klayabilen bir ajans mimarisi gerektirir. Ajans\u0131n \"hal\u00fcsinasyon\" yapma veya beklenmedik yollara sapma potansiyelini azaltmak da \u00f6nemli bir zorluktur.<\/p>\n<\/li>\n<li>\n<p><strong>Opencode ile geli\u015ftirdi\u011fim bir ajans\u0131 nas\u0131l da\u011f\u0131tabilirim?<\/strong><\/p>\n<p>Genellikle Opencode ajans\u0131n\u0131z\u0131 i\u00e7eren Python uygulamas\u0131n\u0131 bir web sunucusu (\u00f6rne\u011fin, Gunicorn veya uWSGI ile Flask\/FastAPI) \u00fczerinde \u00e7al\u0131\u015ft\u0131rman\u0131z gerekir. Bu sunucuyu Docker konteynerlerine alabilir ve Kubernetes, AWS ECS, Google Cloud Run gibi platformlarda da\u011f\u0131tabilirsiniz. Bu, ajans\u0131n\u0131z\u0131n \u00f6l\u00e7eklenebilir ve g\u00fcvenli bir \u015fekilde eri\u015filebilir olmas\u0131n\u0131 sa\u011flar.<\/p>\n<\/li>\n<li>\n<p><strong>Opencode \u00f6\u011frenmek ne kadar s\u00fcrer?<\/strong><\/p>\n<p>Python programlama temellerine ve B\u00fcy\u00fck Dil Modelleri hakk\u0131nda genel bir anlay\u0131\u015fa sahipseniz, Opencode'un temel konseptlerini ve ajans olu\u015fturma mekanizmalar\u0131n\u0131 \u00f6\u011frenmeniz birka\u00e7 g\u00fcnden birka\u00e7 haftaya kadar s\u00fcrebilir. Ancak ileri d\u00fczey ajans tasar\u0131m\u0131, optimizasyon ve karma\u015f\u0131k entegrasyonlar, daha fazla pratik ve deneyim gerektirir.<\/p>\n<\/li>\n<\/ul>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Yapay zeka d\u00fcnyas\u0131nda \u00e7\u0131\u011f\u0131r a\u00e7an geli\u015fmelerle birlikte, gizlilik, maliyet ve esneklik endi\u015feleri, bulut tabanl\u0131 B\u00fcy\u00fck Dil Modelleri&#8217;nin (LLM)&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":[1],"tags":[],"class_list":{"0":"post-34916","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","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>Opencode ile Yerel LLM&#039;lerde Ajans Geli\u015ftirme: Kapsaml\u0131 Rehber<\/title>\n<meta name=\"description\" content=\"Yapay zeka d\u00fcnyas\u0131nda \u00e7\u0131\u011f\u0131r a\u00e7an geli\u015fmelerle birlikte, gizlilik, maliyet ve esneklik endi\u015feleri, bulut tabanl\u0131 B\u00fcy\u00fck Dil Modelleri&#039;nin (LLM) \u00f6tesine ge\u00e7me ihtiyac\u0131n\u0131 do\u011furdu. \u0130\u015fte tam bu noktada, yerel LLM&#039;ler ve otonom &quot;ajans&quot; geli\u015ftirme kavram\u0131 devreye giriyor. Bu rehber, Opencode \u00e7er\u00e7evesini kullanarak kendi yerel yapay zeka ajanslar\u0131n\u0131z\u0131 nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klayacak ve bu alandaki potansiyeli g\u00f6zler \u00f6n\u00fcne serecek.\" \/>\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\/opencode-ile-yerel-llmlerde-ajans-gelistirme-kapsamli-rehber\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Opencode ile Yerel LLM&#039;lerde Ajans Geli\u015ftirme: Kapsaml\u0131 Rehber\" \/>\n<meta property=\"og:description\" content=\"Yapay zeka d\u00fcnyas\u0131nda \u00e7\u0131\u011f\u0131r a\u00e7an geli\u015fmelerle birlikte, gizlilik, maliyet ve esneklik endi\u015feleri, bulut tabanl\u0131 B\u00fcy\u00fck Dil Modelleri&#039;nin (LLM) \u00f6tesine ge\u00e7me ihtiyac\u0131n\u0131 do\u011furdu. \u0130\u015fte tam bu noktada, yerel LLM&#039;ler ve otonom &quot;ajans&quot; geli\u015ftirme kavram\u0131 devreye giriyor. Bu rehber, Opencode \u00e7er\u00e7evesini kullanarak kendi yerel yapay zeka ajanslar\u0131n\u0131z\u0131 nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klayacak ve bu alandaki potansiyeli g\u00f6zler \u00f6n\u00fcne serecek.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/opencode-ile-yerel-llmlerde-ajans-gelistirme-kapsamli-rehber\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-23T13: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=\"28 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/opencode-ile-yerel-llmlerde-ajans-gelistirme-kapsamli-rehber\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/opencode-ile-yerel-llmlerde-ajans-gelistirme-kapsamli-rehber\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Opencode ile Yerel LLM&#8217;lerde Ajans Geli\u015ftirme: Kapsaml\u0131 Rehber\",\"datePublished\":\"2025-11-23T13:01:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/opencode-ile-yerel-llmlerde-ajans-gelistirme-kapsamli-rehber\/\"},\"wordCount\":4830,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/opencode-ile-yerel-llmlerde-ajans-gelistirme-kapsamli-rehber\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/opencode-ile-yerel-llmlerde-ajans-gelistirme-kapsamli-rehber\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/opencode-ile-yerel-llmlerde-ajans-gelistirme-kapsamli-rehber\/\",\"name\":\"Opencode ile Yerel LLM'lerde Ajans Geli\u015ftirme: Kapsaml\u0131 Rehber\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-23T13:01:09+00:00\",\"description\":\"Yapay zeka d\u00fcnyas\u0131nda \u00e7\u0131\u011f\u0131r a\u00e7an geli\u015fmelerle birlikte, gizlilik, maliyet ve esneklik endi\u015feleri, bulut tabanl\u0131 B\u00fcy\u00fck Dil Modelleri'nin (LLM) \u00f6tesine ge\u00e7me ihtiyac\u0131n\u0131 do\u011furdu. \u0130\u015fte tam bu noktada, yerel LLM'ler ve otonom \\\"ajans\\\" geli\u015ftirme kavram\u0131 devreye giriyor. Bu rehber, Opencode \u00e7er\u00e7evesini kullanarak kendi yerel yapay zeka ajanslar\u0131n\u0131z\u0131 nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klayacak ve bu alandaki potansiyeli g\u00f6zler \u00f6n\u00fcne serecek.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/opencode-ile-yerel-llmlerde-ajans-gelistirme-kapsamli-rehber\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/opencode-ile-yerel-llmlerde-ajans-gelistirme-kapsamli-rehber\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/opencode-ile-yerel-llmlerde-ajans-gelistirme-kapsamli-rehber\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Opencode ile Yerel LLM&#8217;lerde Ajans Geli\u015ftirme: Kapsaml\u0131 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":"Opencode ile Yerel LLM'lerde Ajans Geli\u015ftirme: Kapsaml\u0131 Rehber","description":"Yapay zeka d\u00fcnyas\u0131nda \u00e7\u0131\u011f\u0131r a\u00e7an geli\u015fmelerle birlikte, gizlilik, maliyet ve esneklik endi\u015feleri, bulut tabanl\u0131 B\u00fcy\u00fck Dil Modelleri'nin (LLM) \u00f6tesine ge\u00e7me ihtiyac\u0131n\u0131 do\u011furdu. \u0130\u015fte tam bu noktada, yerel LLM'ler ve otonom \"ajans\" geli\u015ftirme kavram\u0131 devreye giriyor. Bu rehber, Opencode \u00e7er\u00e7evesini kullanarak kendi yerel yapay zeka ajanslar\u0131n\u0131z\u0131 nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klayacak ve bu alandaki potansiyeli g\u00f6zler \u00f6n\u00fcne serecek.","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\/opencode-ile-yerel-llmlerde-ajans-gelistirme-kapsamli-rehber\/","og_locale":"tr_TR","og_type":"article","og_title":"Opencode ile Yerel LLM'lerde Ajans Geli\u015ftirme: Kapsaml\u0131 Rehber","og_description":"Yapay zeka d\u00fcnyas\u0131nda \u00e7\u0131\u011f\u0131r a\u00e7an geli\u015fmelerle birlikte, gizlilik, maliyet ve esneklik endi\u015feleri, bulut tabanl\u0131 B\u00fcy\u00fck Dil Modelleri'nin (LLM) \u00f6tesine ge\u00e7me ihtiyac\u0131n\u0131 do\u011furdu. \u0130\u015fte tam bu noktada, yerel LLM'ler ve otonom \"ajans\" geli\u015ftirme kavram\u0131 devreye giriyor. Bu rehber, Opencode \u00e7er\u00e7evesini kullanarak kendi yerel yapay zeka ajanslar\u0131n\u0131z\u0131 nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klayacak ve bu alandaki potansiyeli g\u00f6zler \u00f6n\u00fcne serecek.","og_url":"https:\/\/fatihsoysal.com\/blog\/opencode-ile-yerel-llmlerde-ajans-gelistirme-kapsamli-rehber\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-23T13:01:09+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"28 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/opencode-ile-yerel-llmlerde-ajans-gelistirme-kapsamli-rehber\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/opencode-ile-yerel-llmlerde-ajans-gelistirme-kapsamli-rehber\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Opencode ile Yerel LLM&#8217;lerde Ajans Geli\u015ftirme: Kapsaml\u0131 Rehber","datePublished":"2025-11-23T13:01:09+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/opencode-ile-yerel-llmlerde-ajans-gelistirme-kapsamli-rehber\/"},"wordCount":4830,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/opencode-ile-yerel-llmlerde-ajans-gelistirme-kapsamli-rehber\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/opencode-ile-yerel-llmlerde-ajans-gelistirme-kapsamli-rehber\/","url":"https:\/\/fatihsoysal.com\/blog\/opencode-ile-yerel-llmlerde-ajans-gelistirme-kapsamli-rehber\/","name":"Opencode ile Yerel LLM'lerde Ajans Geli\u015ftirme: Kapsaml\u0131 Rehber","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-23T13:01:09+00:00","description":"Yapay zeka d\u00fcnyas\u0131nda \u00e7\u0131\u011f\u0131r a\u00e7an geli\u015fmelerle birlikte, gizlilik, maliyet ve esneklik endi\u015feleri, bulut tabanl\u0131 B\u00fcy\u00fck Dil Modelleri'nin (LLM) \u00f6tesine ge\u00e7me ihtiyac\u0131n\u0131 do\u011furdu. \u0130\u015fte tam bu noktada, yerel LLM'ler ve otonom \"ajans\" geli\u015ftirme kavram\u0131 devreye giriyor. Bu rehber, Opencode \u00e7er\u00e7evesini kullanarak kendi yerel yapay zeka ajanslar\u0131n\u0131z\u0131 nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klayacak ve bu alandaki potansiyeli g\u00f6zler \u00f6n\u00fcne serecek.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/opencode-ile-yerel-llmlerde-ajans-gelistirme-kapsamli-rehber\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/opencode-ile-yerel-llmlerde-ajans-gelistirme-kapsamli-rehber\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/opencode-ile-yerel-llmlerde-ajans-gelistirme-kapsamli-rehber\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Opencode ile Yerel LLM&#8217;lerde Ajans Geli\u015ftirme: Kapsaml\u0131 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\/34916","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=34916"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/34916\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=34916"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=34916"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=34916"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}