list_altİçindekilerexpand_more
- 01AI Agent Nedir? Önce Mantığını Kavrayalım
- 02Yöntem 1: Kod Yazarak Sıfırdan AI Agent, Python ve CrewAI
- 03Adım 1: Kurulum
- 04Adım 2: LLM Bağlantısı
- 05Adım 3: Ajan Rolünü Tanımlama
- 06Adım 4: Görevleri (Task) ve Ekibi (Crew) Tanımlama
- 07Yöntem 2: Kod Yazmadan (No-Code) AI Agent, Flowise ile
- 08Ajanlara “Araç” (Tool) Tanımlama
- 09Hazır Araçlar (CrewAI Tools)
- 10Özel Araç (Custom Tool) Yazmak
- 11Ajanın Araç Seçimi: ReAct Döngüsü
- 12İlk Ajanınızı Test Edin ve Çalıştırın
- 13Sıkça Sorulan Sorular
- 14AI Agent çalıştırmak ne kadar maliyetli?
- 15Yerel modelle (internet olmadan) ajan çalıştırabilir miyim?
- 16Bir ajan hatalı bir karar verirse ne olur? Nasıl önlerim?
- 17CrewAI ve LangGraph arasındaki fark nedir?
- 18Tek bir ajan mı, çok ajanlı sistem mi kullanmalıyım?
- 19AI Agent Yol Haritası
- 20Bu Yalnızca Başlangıç
ChatGPT’ye “benim için rakip analizi yap” dediğinizde ne oluyor? Size soruyor: “Hangi rakipler? Hangi kriterler? Hangi format?” Siz cevap veriyorsunuz, o devam ediyor. Siz tekrar yönlendiriyorsunuz, o tekrar devam ediyor.
Chatbot’lar, ne kadar zeki olursa olsun, temelde reaktiftir, siz itmeden hareket etmezler.
Yapay zeka ajanları tam olarak bu sınırı aşmak için tasarlandı. Bir ajan şunu yapabilir: “Rakip analizi yap” görevini alır, kendi başına Google’da arama yapar, rakip sitelerden veri toplar, bir spreadsheet’e yazar ve size raporu e-posta olarak gönderir. Siz bu süreçte yoksunuz.
Bu rehberde, bir makine öğrenmesi modeli üzerine inşa edilmiş, gerçekten çalışan bir ajanı hem Python/CrewAI ile kod yazarak hem de Flowise üzerinden sürükle-bırak ile sıfırdan nasıl kuracağınızı gösteriyoruz.

AI Agent Nedir? Önce Mantığını Kavrayalım
Bir ajan, tek bir LLM çağrısından ibaret değildir. Birden fazla adımı planlayan, kendi çıktısını değerlendiren ve sonucu iyileştirmek için araç kullanan döngüsel bir sistemdir.
Bir ajanın dört temel bileşeni vardır:
Rol (Role): Ajana verilen kimlik ve uzmanlık alanı. “Sen kıdemli bir Python geliştiricisisin” gibi. Bu tanım, LLM’in nasıl davranacağını, hangi bakış açısını benimseyeceğini ve cevapları hangi derinlikte vereceğini belirler.
Hafıza (Memory): Ajana konuşma geçmişi veya uzun vadeli bilgi saklama kapasitesi verir. Kısa dönem hafıza (short-term) bir oturum boyunca bağlamı korur. Uzun dönem hafıza (long-term) ise bir vector database’e yazılarak sonraki çalışmalarda da kullanılabilir.
Araçlar (Tools): Ajanın dünya ile etkileştiği kapılar. Web araması, kod çalıştırma, dosya okuma/yazma, e-posta gönderme, API çağrısı yapma, bunların hepsi birer araçtır. Ajan, göreve göre hangi aracı ne zaman kullanacağına kendi karar verir.
Planlama (Planning): ReAct (Reason + Act) veya Plan-and-Execute gibi çerçevelerle ajan, görevi alt görevlere böler, her adımda gözlem yapar ve gerekirse planı revize eder.
En kritik fark: Chatbot size bir cevap döndürür, ajan size bir sonuç teslim eder.
Yöntem 1: Kod Yazarak Sıfırdan AI Agent, Python ve CrewAI
CrewAI, 2024’te hızla olgunlaşan ve 2026’da production ortamlarında yaygın olarak kullanılan bir Python framework’üdür. Birden fazla ajanın bir ekip olarak çalışmasını sağlar; her ajan farklı bir rol üstlenir ve birbirinin çıktısını kullanır.
Adım 1: Kurulum
Bir sanal ortam oluşturup gerekli kütüphaneleri yükleyin:
# Sanal ortam oluştur ve aktive et
python -m venv agent-env
source agent-env/bin/activate # Windows: agent-env\Scripts\activate
# CrewAI ve araç bağımlılıklarını kur
pip install crewai crewai-tools langchain-openai python-dotenv
Proje klasörünüzde .env dosyası oluşturun:
# .env
OPENAI_API_KEY=sk-your-key-here
# OpenAI yerine Groq (ücretsiz ve hızlı) kullanmak isteyenler için:
# GROQ_API_KEY=gsk_your-key-here
Adım 2: LLM Bağlantısı
main.py dosyası oluşturun ve LLM’i tanımlayın:
# main.py
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
import os
load_dotenv()
# GPT-4o ile bağlantı kur
llm = ChatOpenAI(
model="gpt-4o",
temperature=0.3, # Düşük = daha tutarlı, deterministik çıktı
api_key=os.getenv("OPENAI_API_KEY")
)
# Ücretsiz alternatif: Groq üzerinden Llama 3.3 70B
# from langchain_groq import ChatGroq
# llm = ChatGroq(model="llama-3.3-70b-versatile", temperature=0.3)
Adım 3: Ajan Rolünü Tanımlama
CrewAI’da her ajan üç temel parametreyle tanımlanır: role, goal ve backstory. Bu üçlü, LLM’in karakterini ve çalışma çerçevesini belirler.

agents.py, role, goal ve backstory parametreleriyle tanımlanan ajanın kimlik kartı sağ panelde görünüyor.
# agents.py
from crewai import Agent
from crewai_tools import SerperDevTool, FileReadTool
# Araçları başlat
search_tool = SerperDevTool() # Google arama
file_tool = FileReadTool() # Dosya okuma
# 1. Ajan: Araştırmacı
researcher = Agent(
role="Kıdemli Pazar Araştırmacısı",
goal="Verilen konu hakkında güncel, doğrulanmış ve derinlemesine bilgi topla",
backstory="""
10 yıllık deneyimli bir pazar araştırmacısısın.
Yüzeysel bilgiden nefret edersin; her zaman birincil kaynaklara ulaşır,
verileri doğrular ve özlü raporlar yazarsın.
Spekülatif bilgiyi asla rapora dahil etmezsin.
""",
tools=[search_tool],
llm=llm,
verbose=True, # Terminalde düşünce sürecini göster
max_iter=5, # Sonsuz döngüyü önle
memory=True # Oturum hafızasını aktive et
)
# 2. Ajan: İçerik Yazarı
writer = Agent(
role="Teknik İçerik Stratejisti",
goal="Araştırmacının bulduğu verileri seo-uyumlu, okunabilir bir rapora dönüştür",
backstory="""
Teknik konuları sade dille anlatma konusunda uzmanlaşmış bir içerik stratejistisin.
Karmaşık verileri bile akıcı, yapılandırılmış bir anlatıya dönüştürürsün.
Her raporun net bir başlık, özet ve eylem maddeleri içermesine özen gösterirsin.
""",
tools=[file_tool],
llm=llm,
verbose=True
)
Adım 4: Görevleri (Task) ve Ekibi (Crew) Tanımlama
# tasks.py
from crewai import Task, Crew, Process
from agents import researcher, writer
# Görev 1: Araştırma
research_task = Task(
description="""
"2026 yılında AI Agent framework'leri" konusunu araştır.
En az 5 güncel kaynak bul.
CrewAI, LangGraph ve AutoGen'i karşılaştır.
Çıktını şu formatta yaz: başlık, kaynak URL, önemli bulgular.
""",
expected_output="5+ kaynaklı, karşılaştırmalı araştırma raporu (markdown formatında)",
agent=researcher
)
# Görev 2: Yazım (araştırmanın çıktısını otomatik alır)
write_task = Task(
description="""
Araştırmacının bulgularını kullanarak 1000 kelimelik bir blog yazısı taslağı hazırla.
Başlık, giriş, 3 ana bölüm ve sonuç içersin.
Teknik terimlerin yanına parantez içinde kısa açıklamalar ekle.
""",
expected_output="Yayına hazır blog yazısı taslağı (markdown)",
agent=writer,
output_file="rapor.md" # Çıktıyı otomatik dosyaya yaz
)
# Ekibi oluştur ve çalıştır
crew = Crew(
agents=[researcher, writer],
tasks=[research_task, write_task],
process=Process.sequential, # Sıralı: önce araştır, sonra yaz
verbose=True
)
if __name__ == "__main__":
result = crew.kickoff()
print("\n" + "="*60)
print("GÖREV TAMAMLANDI")
print("="*60)
print(result)
Terminalde çalıştırın:
python tasks.py
Ajan düşünme sürecini (ReAct döngüsü) adım adım terminale yazdırır. Görev tamamlandığında rapor.md dosyası oluşturulmuş olur.
Yöntem 2: Kod Yazmadan (No-Code) AI Agent, Flowise ile
Python bilmiyorsanız veya prototipi hızlıca test etmek istiyorsanız Flowise, görsel bir arayüzle tam ajan mantığı kurmanızı sağlıyor.

Flowise’ı yerel olarak kurmak için:
# Node.js 18+ gereklidir
npm install -g flowise
npx flowise start
# Tarayıcıda aç: http://localhost:3000
Kurulduktan sonra arayüzde şu adımları izleyin:
1. Yeni Chatflow oluşturun → “Add New” butonuna tıklayın.
2. LLM node ekleyin → Sağ panelden “ChatOpenAI” veya “ChatOllama” (yerel model için) sürükleyin. API anahtarınızı girin.
3. Agent node ekleyin → “Tool Agent” node’unu canvas’a ekleyin, LLM node’uyla bağlayın.
4. Tool’ları bağlayın → “SerpAPI Tool” (web arama), “Calculator” veya “Custom Tool” node’larını ajana bağlayın.
5. Memory ekleyin → “BufferMemory” node’u, konuşma geçmişini korur.
6. Test edin → Sağ üstteki chat ikonuna tıklayın, ajana “2026’da elektrikli araba satışlarını araştır ve özet çıkar” yazın.
Flowise’ın en büyük avantajı şu: kurduğunuz akışı tek API endpoint’ine dönüştürüyor. Ürettiğiniz ajan URL’sini kopyalayıp herhangi bir web sitesine veya uygulamaya gömebilirsiniz.
Alternatif platformlar: n8n (workflow otomasyon + AI agent kombinasyonu), Relevance AI (kurumsal odaklı, form-tabanlı ajan oluşturma), Dify (açık kaynak, self-hosted).
Ajanlara “Araç” (Tool) Tanımlama
Ajanı güçlü yapan şey kullandığı araçlar. Düşünün: bir ajan araçsız, bilgisayar başında ellerini görmeden düşünen bir insana benzer. Araçlar, ajanın dünyaya el atmasını sağlar.

Hazır Araçlar (CrewAI Tools)
from crewai_tools import (
SerperDevTool, # Google arama (Serper.dev API key gerekli)
WebsiteSearchTool, # Belirli bir URL'yi scrape et ve ara
FileReadTool, # Yerel dosya oku
FileWriterTool, # Dosyaya yaz
CodeInterpreterTool, # Python kodu çalıştır (sandbox ortamda)
YoutubeVideoSearchTool # YouTube video arama
)
Özel Araç (Custom Tool) Yazmak
CrewAI’da sıfırdan araç yazmak birkaç satır kod:
# custom_tools.py
from crewai.tools import BaseTool
from typing import Type
from pydantic import BaseModel, Field
import requests
class HavaKosullariInput(BaseModel):
"""Araç girdisinin şeması — ajan bu parametrelerle çağırır"""
sehir: str = Field(description="Hava durumu sorgulanacak şehir adı")
class HavaDurumuAraci(BaseTool):
name: str = "Hava Durumu Sorgula"
description: str = (
"Belirtilen şehrin güncel hava durumu bilgisini getirir. "
"Seyahat planlaması veya etkinlik organizasyonu için kullan."
)
args_schema: Type[BaseModel] = HavaKosullariInput
def _run(self, sehir: str) -> str:
# Örnek: OpenWeatherMap API çağrısı
api_key = os.getenv("OPENWEATHER_API_KEY")
url = f"https://api.openweathermap.org/data/2.5/weather?q={sehir}&appid={api_key}&units=metric&lang=tr"
try:
resp = requests.get(url, timeout=5)
data = resp.json()
return (
f"{sehir} hava durumu: {data['weather'][0]['description']}, "
f"Sıcaklık: {data['main']['temp']}°C, "
f"Nem: {data['main']['humidity']}%"
)
except Exception as e:
return f"Hava durumu alınamadı: {str(e)}"
# Ajana aracı ekle
planner = Agent(
role="Seyahat Planlayıcısı",
goal="Kullanıcının seyahatini hava koşullarına göre optimize et",
backstory="Deneyimli bir seyahat asistanısın.",
tools=[HavaDurumuAraci()],
llm=llm
)
Ajanın Araç Seçimi: ReAct Döngüsü
Ajan, görevi alınca bir döngüye girer. Bu döngü içinde sürekli şunu sorar:
Düşün → "Bu görevi tamamlamak için ne bilmem lazım?"
Karar → "HavaDurumuAraci'nı kullanarak İstanbul'u sorgulayayım."
Eylem → Aracı çağır → Sonucu al
Gözle → "İstanbul'da 18°C ve bulutlu. Planı buna göre güncelle."
Düşün → "Başka ne gerekiyor?"
...
Bitir → Görevi tamamlandı olarak işaretle
Bu döngü, max_iter parametresiyle sınırlandırılmazsa sonsuza kadar devam edebilir. Production’da her zaman bir üst sınır koyun.
İlk Ajanınızı Test Edin ve Çalıştırın
Her şeyi bir araya getirip çalıştırmadan önce kontrol listesini geçin:
# test_agent.py — Sistemi adım adım doğrula
import os
from dotenv import load_dotenv
load_dotenv()
# 1. API anahtarı var mı?
assert os.getenv("OPENAI_API_KEY"), "OPENAI_API_KEY eksik!"
# 2. LLM bağlantısı çalışıyor mu?
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="gpt-4o-mini", temperature=0) # test için ucuz model
response = llm.invoke("Merhaba, 1+1 kaçtır?")
assert "2" in response.content, "LLM yanıt vermiyor!"
print("✓ LLM bağlantısı başarılı")
# 3. Arama aracı çalışıyor mu?
from crewai_tools import SerperDevTool
search = SerperDevTool()
result = search.run("Python CrewAI 2026")
assert len(result) > 100, "Arama aracı boş döndü!"
print("✓ Arama aracı çalışıyor")
print("\n✅ Tüm kontroller geçildi. Ajanı başlatabilirsiniz.")
Testler geçtikten sonra tam sistemi çalıştırın:
python tasks.py

Terminal çıktısında şunları göreceksiniz:
[2026-05-16 00:15:23] Crew başlatılıyor...
> Entering new AgentExecutor chain...
Düşünce: Görevi anladım. İlk önce güncel kaynaklara ihtiyacım var.
Eylem: Kıdemli Pazar Araştırmacısı arama yapıyor...
Eylem Girdisi: "AI Agent frameworks comparison 2026"
Gözlem: [Arama sonuçları...] CrewAI 0.95, LangGraph 0.2...
Düşünce: İlk kaynak iyi. İki kaynak daha almam gerekiyor.
...
> Görev tamamlandı. rapor.md oluşturuldu. (47 saniye)
Çıktının kalitesini artırmak için şu parametreleri deneyin: temperature değerini düşürün (0.1-0.3 arası tutarlı çıktı verir), max_iter’i artırın (karmaşık görevler için 8-10), memory=True ile bağlamı koruyun.
Sıkça Sorulan Sorular
AI Agent çalıştırmak ne kadar maliyetli?
GPT-4o ile basit bir görev (2-3 araç çağrısı, ~10 LLM turu) genellikle 0.05-0.30 USD arasında maliyetlendirilir. Karmaşık çok ajanlı sistemler ve uzun döngüler bu maliyeti artırır. Bütçe yönetimi için max_iter sınırı koyun ve geliştirme sırasında gpt-4o-mini veya Groq’un ücretsiz Llama 3 API’sini kullanın. Production’da token sayısını loglayan bir katman eklemek iyi pratiktir.
Yerel modelle (internet olmadan) ajan çalıştırabilir miyim?
Evet. Ollama ile Llama 3.1 8B veya Mistral 22B’yi yerel olarak çalıştırıp CrewAI’a bağlayabilirsiniz:
from langchain_ollama import ChatOllama
llm = ChatOllama(model="llama3.1:8b", temperature=0.2)
Yerel modelin dezavantajı: web araması gibi araçlar yine de internet gerektirir; sadece LLM çıkarımı yerel çalışır. Ayrıca yerel modeller büyük dil modellerine kıyasla araç çağırma (tool calling) konusunda daha az güvenilir davranabilir.
Bir ajan hatalı bir karar verirse ne olur? Nasıl önlerim?
Üç katmanlı güvenlik şeması öneriyoruz. Rate limiting: max_iter ile döngüyü sınırlandırın. Human-in-the-loop: Kritik eylemler (e-posta gönderme, dosya silme) öncesinde human_input=True parametresiyle onay isteyin. Sandbox: Kod çalıştıran araçları Docker container’da izole edin. Ajanı production’a almadan önce her zaman verbose=True ile test edin ve beklenmedik eylem kalıplarını gözlemleyin.
CrewAI ve LangGraph arasındaki fark nedir?
CrewAI role-based (rol tabanlı) düşünür: her ajan bir karakter gibi tanımlanır, görevler sıralı veya paralel dağıtılır. Hızlı prototipleme için idealdir. LangGraph graph-based (grafik tabanlı) düşünür: her node bir işlem adımıdır, edge’ler koşullu yönlendirmelerle birbirine bağlanır. Karmaşık iş akışlarında (koşullu dallanma, geri dönüş döngüleri) daha esnektir. 2026’da production’daki karmaşık sistemlerin büyük bölümü LangGraph tercih ederken hızlı geliştirme ve prototip aşamasında CrewAI öne çıkıyor.
Tek bir ajan mı, çok ajanlı sistem mi kullanmalıyım?
Görevin karmaşıklığıyla orantılı seçin. Tek bir araştırma veya yazma görevi için tek ajan yeterlidir ve maliyet düşüktür. Birden fazla uzmanlık alanı gerektiren görevlerde (araştır + analiz et + görselleştir + yayımla) çok ajanlı sistem anlamlı hale gelir. Kural: eğer tek bir insan yarım saatten kısa sürede tamamlayabiliyorsa, tek ajan yeterlidir.
AI Agent Yol Haritası
Bir ajanı sıfırdan üretime taşımak için aşağıdaki katmanları sırayla öğrenmek pratikte en hızlı yol:
| Adım | Konu | Rehber |
|---|---|---|
| 1 | Protokol | MCP · WebMCP |
| 2 | Araç çağırma | Function Calling |
| 3 | Bilgi getirme | RAG (kavram) · RAG (Ollama) |
| 4 | Depolama | Vektör Veritabanı |
| 5 | Orkestrasyon | Framework karşılaştırma · Computer Use · Antigravity |
Bu Yalnızca Başlangıç
Sıfırdan çalışan bir ajan yapmak için gerçekten fazla şey gerekmiyordu: bir API anahtarı, birkaç satır Python ve rolü iyi tanımlanmış bir karakter.
Buradan sonrası sizin kurgulayacağınız sisteme bağlı. Ajanları birbirine bağlayan pipeline’lar, long-term hafıza için vector database entegrasyonu, özel araçlar, scheduled çalıştırma, her birini bu temelin üstüne inşa edebilirsiniz.
Projenizi derinleştirmek için blog’umuzdaki LLM, otomasyon ve prompt mühendisliği yazılarını inceleyin. Her biri, bu sistemin farklı bir katmanını daha iyi anlamanızı sağlayacak.
İlk ajanınızı çalıştırdınız mı? Hangi görevi verdiniz, ne ürettirdiniz? Deneyimlerinizi yorumlarda bekliyoruz.



