Çok ajanlı (multi-agent) bir yapay zeka sistemi kurmak istiyorsunuz. Elinizde üç ana çerçeve var ve her biri tamamen farklı bir felsefeye dayanıyor. Yanlış olanı seçmek haftalarca kaybetmenize yol açabilir.
Bu yazıda CrewAI, LangGraph ve AutoGen’i 8 farklı boyutta gerçek kodlarla, gerçek rakamlarla ve dürüst yorumlarla karşılaştırıyoruz.
Tek Cümlede Üç Felsefe
- CrewAI: “Ajanlar, rolleri olan takım üyeleridir” (çalışan işe almak gibi)
- LangGraph: “Ajanlar, bir grafikteki düğümlerdir” (akış şeması çizmek gibi)
- AutoGen: “Ajanlar, bir konuşmanın katılımcılarıdır” (toplantı yönetmek gibi)
Bunlar küçük farklar değil. Sisteminizi nasıl tasarlayıp kuracağınızı kökten değiştiriyorlar.
Mimari Karşılaştırması
CrewAI: Rol Tabanlı Takımlar
CrewAI, crew (ekip) mantığıyla düşünür: her ajanın bir unvanı, bir hedefi ve araçları olan takımlar.
from crewai import Agent, Task, Crew
# Ajanlar çalışanlar gibidir, her birinin net bir rolü var
researcher = Agent(
role="Market Research Analyst",
goal="Find accurate data about competitor pricing",
backstory="10 years of experience in market analysis",
llm="claude-sonnet-4-20250514",
tools=[web_search, document_reader]
)
writer = Agent(
role="Content Writer",
goal="Write clear, engaging reports from research data",
backstory="Technical writer who simplifies complex topics",
llm="claude-sonnet-4-20250514"
)
# Task'lar ne yapılması gerektiğini tanımlar
research_task = Task(
description="Research the top 5 competitors and their pricing",
expected_output="Detailed pricing comparison table",
agent=researcher
)
writing_task = Task(
description="Write a one-page summary of the research findings",
expected_output="Executive summary in markdown",
agent=writer
)
# Crew, takımı yönetir
crew = Crew(
agents=[researcher, writer],
tasks=[research_task, writing_task],
verbose=True
)
result = crew.kickoff()
Zihinsel model: Bir takım kuran yöneticisiniz. Rolleri tanımlayın, görevleri dağıtın, ekibin çalışmasına izin verin.
LangGraph: Grafik Tabanlı İş Akışları
LangGraph, düğümler ve kenarlar (node ve edge) mantığıyla düşünür: her ajan bir düğümdür, kenarlar akışı belirler.
from langgraph.graph import StateGraph, END
from typing import TypedDict, Annotated
# Paylaşılan state'i tanımla
class ResearchState(TypedDict):
query: str
research_data: str
draft: str
feedback: str
revision_count: int
# Her düğüm, state'i işleyen bir fonksiyondur
def research_node(state: ResearchState) -> ResearchState:
# Konuyu araştırmak için LLM'i çağır
data = llm.invoke(f"Research: {state['query']}")
return {"research_data": data.content}
def write_node(state: ResearchState) -> ResearchState:
# Araştırmaya dayanarak yaz
draft = llm.invoke(f"Write about: {state['research_data']}")
return {"draft": draft.content}
def review_node(state: ResearchState) -> ResearchState:
# Taslağı incele
feedback = llm.invoke(f"Review this draft: {state['draft']}")
return {"feedback": feedback.content, "revision_count": state["revision_count"] + 1}
# Revize mi edilecek yoksa bitecek mi karar ver
def should_revise(state: ResearchState) -> str:
if "approved" in state["feedback"].lower():
return "end"
if state["revision_count"] >= 3:
return "end" # En fazla 3 revizyon
return "revise"
# Grafiği oluştur
graph = StateGraph(ResearchState)
graph.add_node("research", research_node)
graph.add_node("write", write_node)
graph.add_node("review", review_node)
# Akışı tanımla
graph.set_entry_point("research")
graph.add_edge("research", "write")
graph.add_edge("write", "review")
# Koşullu kenar: geri döngü ya da bitiş
graph.add_conditional_edges("review", should_revise, {
"revise": "write", # Yazmaya geri dön
"end": END # Tamamlandı
})
app = graph.compile()
result = app.invoke({"query": "AI trends 2026", "revision_count": 0})
Zihinsel model: Bir akış şeması çiziyorsunuz. Her kutu bir ajan, oklar akışı gösteriyor, eşkenar dörtgenler karar noktaları.
AutoGen: Konuşma Tabanlı
AutoGen, konuşmalar mantığıyla düşünür: ajanlar bir toplantıdaki insanlar gibi birbiriyle konuşur.
from autogen import AssistantAgent, GroupChat, GroupChatManager
# Ajanlar konuşma katılımcılarıdır
researcher = AssistantAgent(
name="Researcher",
system_message="""You research topics thoroughly.
Present findings with data and sources.
When done, say RESEARCH_COMPLETE.""",
llm_config=llm_config
)
writer = AssistantAgent(
name="Writer",
system_message="""You write clear content based on research.
Wait for the researcher to finish before writing.
When done, say DRAFT_COMPLETE.""",
llm_config=llm_config
)
reviewer = AssistantAgent(
name="Reviewer",
system_message="""You review content for accuracy and clarity.
If changes needed, explain what to fix.
If approved, say APPROVED.""",
llm_config=llm_config
)
# Grup sohbeti: ajanlar konuyu tartışır
group_chat = GroupChat(
agents=[researcher, writer, reviewer],
messages=[],
max_round=10,
speaker_selection_method="round_robin"
)
manager = GroupChatManager(groupchat=group_chat, llm_config=llm_config)
# Konuşmayı başlat
result = researcher.initiate_chat(
manager,
message="Research and write about AI coding trends in 2026"
)
Zihinsel model: Bir toplantı odası hazırlıyorsunuz. Kimin katılacağını, neyi tartışacaklarını tanımlayın ve konuşmanın akmasına izin verin.
Kafa Kafaya Karşılaştırma
1. Öğrenme Eğrisi
| CrewAI | LangGraph | AutoGen | |
|---|---|---|---|
| İlk çalışan ajana varış süresi | 30 dakika | 2-3 saat | 1-2 saat |
| Dokümantasyon kalitesi | İyi | Mükemmel | Orta |
| Öğrenilmesi gereken kavramlar | Agent, Task, Crew | State, Node, Edge, Condition | Agent, GroupChat, Speaker |
| Zorluk | Düşük | Yüksek | Orta |
Kazanan: CrewAI. Minimum kodla 30 dakikada çalışan bir çok ajanlı sisteminiz olabilir.
2. Kontrol ve Esneklik
| CrewAI | LangGraph | AutoGen | |
|---|---|---|---|
| İş akışı kontrolü | Sıralı ya da paralel | Tam grafik kontrolü | Konuşma akışı |
| Koşullu mantık | Temel (görev bağımlılıkları) | Gelişmiş (her türlü dallanma) | Konuşma üzerinden |
| Retry/döngü | Yerleşik | Özel (koşullu kenarlar) | Konuşma turları üzerinden |
| İnsan onayı (human-in-the-loop) | Destekleniyor | Mükemmel | Destekleniyor |
| State yönetimi | Temel | Gelişmiş (kaydet, tekrar oynat, incele) | Konuşma geçmişi |
Kazanan: LangGraph. Koşullu mantığa, retry döngülerine ya da karmaşık dallanmaya ihtiyacınız varsa, LangGraph’ın grafik tabanlı yaklaşımına rakip yok.
3. Performans ve Maliyet
| CrewAI | LangGraph | AutoGen | |
|---|---|---|---|
| Token verimliliği | İyi | En iyi | Düşük (konuşma yükü) |
| Görev başına gecikme | Düşük | Düşük | Yüksek (çok turlu konuşmalar) |
| Tipik çalıştırma maliyeti | 0,10-0,50 $ | 0,10-4,00 $ (döngülere bağlı) | 0,20-1,00 $ |
| Paralel çalıştırma | Var | Var | Sınırlı |
Kazanan: Basit görevlerde CrewAI, karmaşık görevlerde LangGraph. AutoGen daha fazla token tüketir çünkü ajanlar tam konuşmalar yapar; her mesaj context’e ekleniyor.
LangGraph döngülerine dikkat edin. 11 kez tekrar eden bir inceleme döngüsü API çağrılarında 4 doların üzerine çıkabilir. Her zaman bir max_revisions sınırı koyun.
4. Hata Ayıklama ve Gözlemlenebilirlik
| CrewAI | LangGraph | AutoGen | |
|---|---|---|---|
| Loglama | Temel (verbose mod) | Mükemmel (LangSmith entegrasyonu) | Konuşma logları |
| State incelemesi | Sınırlı | Her adımda tam state | Sohbet geçmişi |
| Replay/devam etme | Yok | Var (herhangi bir kontrol noktasından) | Yok |
| Hata izleme | Task seviyesi | Node seviyesi, tam state ile | Mesaj seviyesi |
Kazanan: LangGraph. LangSmith entegrasyonu her adımda ne olduğuna tam görünürlük sağlıyor. İş akışlarını duraklatıp inceleyip devam ettirebilirsiniz. Bu, üretim ortamında büyük önem taşıyor.
5. Üretime Hazır Olma
| CrewAI | LangGraph | AutoGen | |
|---|---|---|---|
| Kararlılık | İyi | Çok kararlı | Belirsiz |
| Aktif geliştirme | Çok aktif | Çok aktif | Büyük yeniden yazım (0.4) |
| Kurumsal benimseme | Artıyor | Güçlü | Azalıyor |
| Topluluk | Büyük, büyüyor | Büyük, büyüyor | Önceden büyüktü, küçülüyor |
Not: Microsoft, AutoGen’i önemli ölçüde yeniden yapılandırdı. AutoGen 0.4, tam bir mimari yeniden yazımdı. Çerçeve hâlâ aktif olsa da, bu yeniden yapılanma ve daha geniş Microsoft Agent Framework’e kayış, ekosistemin dalgalı olduğu anlamına geliyor. Büyük bir projeye başlamadan önce güncel durumu kontrol edin.
Kazanan: Kurumsal kullanımda LangGraph, startuplarda CrewAI.
6. Entegrasyon Ekosistemi
| CrewAI | LangGraph | AutoGen | |
|---|---|---|---|
| LLM sağlayıcıları | Tüm büyükler (OpenAI, Anthropic vb.) | Tüm büyükler + LangChain ekosistemi | Tüm büyükler |
| Araç entegrasyonu | Yerleşik araç sistemi | LangChain araçları | Function calling |
| MCP desteği | Topluluk | Büyüyor | Sınırlı |
| Özel araçlar | Kolay | Kolay | Kolay |
Üçü de büyük LLM sağlayıcılarını destekliyor. LangGraph, LangChain ekosisteminden (binlerce hazır entegrasyon) faydalanıyor.
Gerçek Dünya Kullanım Örnekleri
CrewAI’yi Şu Durumlarda Kullanın:
İçerik pipeline’ı:
Araştırmacı → Yazar → Editör → Yayıncı
Her ajanın net bir rolü var. Görevler sırayla akıyor. CrewAI bunu çok iyi yönetiyor.
Müşteri destek otomasyonu:
Sınıflandırıcı Ajan → Yönlendirici → Uzman Ajan → Yanıt Ajanı
Talebi sınıflandır, doğru uzmana yönlendir, yanıt üret.
Kod üretimi:
Mimar → Geliştirici → Test Uzmanı
Çözümü planla, kodu yaz, test et.
LangGraph’ı Şu Durumlarda Kullanın:
Retry mantığı olan karmaşık iş akışları:
Araştır → Yaz → İncele → (onaylandı mı? → yayınla) veya (reddedildi mi? → yeniden yaz → incele)
Koşullu döngü, LangGraph’ın parladığı yer.
State’li pipeline’lar:
Sipariş işle → Doğrula → (ödeme başarısızsa → 3 kez yeniden dene) → (stok azsa → bildir) → Gönder
Her adımın öncesinde ne olduğunu bilmesi gerekiyor. LangGraph state’i kalıcı tutar.
İnsan onaylı süreçler:
Yapay zeka üretir → İnsan inceler → (onayla → yayınla) veya (reddet → yapay zeka revize eder)
İş akışını duraklat, insan girdisini bekle, devam et.
AutoGen’i Şu Durumlarda Kullanın:
Beyin fırtınası ve tartışma:
Birden fazla ajan bir problemi tartışır, birbirine meydan okur, fikir birliğine varır
AutoGen’in konuşma modeli bunun için en doğal seçim.
Kod incelemesi (konuşmalı):
Geliştirici kodu sunar → İnceleyen eleştirir → Geliştirici yanıtlar → tekrarla
Karşılıklı konuşma deseni, kod incelemesine uyuyor.
Araştırma sentezi:
Birden fazla araştırmacı bulgularını sunar → tek bir rapora sentezlenir
Kurulum ve Başlangıç
CrewAI
pip install crewai crewai-tools
Başlaması en hızlı olan. Agent, task, crew oluştur, çalıştır.
LangGraph
pip install langgraph langchain-anthropic
Daha fazla kurulum ama daha fazla kontrol. State, node, edge tanımla, derle ve çalıştır.
AutoGen
pip install autogen-agentchat
AutoGen’i seçmeden önce güncel geliştirme durumunu kontrol edin. Alternatif olarak Microsoft Agent Framework’ü değerlendirin.
Karar Şeması
Sizin için en önemlisi ne?
Hızlı prototip → CrewAI
└── Basit, doğrusal iş akışları → CrewAI
└── Paralel ajan ihtiyacı → CrewAI
Kontrol ve hata ayıklama → LangGraph
└── Karmaşık dallanma mantığı → LangGraph
└── State kalıcılığı ihtiyacı → LangGraph
└── Üretim sistemi → LangGraph
Konuşmalı ajanlar → AutoGen
└── Tartışma/beyin fırtınası → AutoGen
└── Yinelemeli iyileştirme → AutoGen
└── (Güncel durumu kontrol edin, büyük yeniden yazım sürüyor)
Dürüst Tavsiyem
Bugün Başlıyorsanız
CrewAI ile başlayın. Küçük bir şey inşa edin: iki ajanlı bir içerik pipeline’ı ya da bir kod üretim takımı. Çok ajanlı kavramlara alışın. Daha fazla kontrole ihtiyaç duyduğunuzda daha sonra LangGraph’a geçebilirsiniz.
Üretim İçin İnşa Ediyorsanız
LangGraph kullanın. Grafik modeli, state kalıcılığı ve LangSmith hata ayıklaması üretim sistemleri için gerekli. Öğrenme eğrisi buna değer.
Konuşmalara İhtiyacınız Varsa
AutoGen’i deneyin, ama mimari değişikliklerin farkında olun. AutoGen 0.4 büyük bir yeniden yazımdı, öğrendiğiniz API’lerin güncel olduğundan emin olun.
Büyüyen Alternatif: Claude Code’un Ajan Ekipleri
Zaten Claude Code kullanıyorsanız, ayrı bir çerçeve benimsemeden önce onun yerleşik ajan ekiplerini (agent teams) değerlendirin. Herhangi bir çerçeve kurulumu yapmadan birçok çok ajanlı kullanım durumunu karşılıyor.
Türkiye’de Çok Ajanlı Çerçevelerin Durumu
Türkiye’deki yapay zeka topluluğunda ve startup ekosisteminde çok ajanlı çerçeveler henüz erken benimseme aşamasında. LangChain ve LangGraph, Türkçe kaynaklı geliştirici topluluklarında (Discord sunucuları, LinkedIn’deki yapay zeka grupları) en çok konuşulan seçenek çünkü dokümantasyonu en olgun ve İngilizce kaynak en bol olan taraf. CrewAI, hızlı prototip üreten küçük Türkiye merkezli yapay zeka ajansları ve serbest geliştiriciler arasında popülerlik kazanıyor çünkü müşteriye “çalışan bir demo” göstermek için gereken süre çok kısa. AutoGen’in Türkiye’deki kullanımı görece sınırlı kalıyor, kısmen Microsoft’un mimari yeniden yazımı nedeniyle, kısmen de Azure OpenAI hizmetlerine Türkiye’den erişimin bazı kurumsal müşteriler için hâlâ ek yapılandırma gerektirmesi yüzünden. Bir çerçeve seçerken, ekibinizin İngilizce teknik dokümantasyonu rahat okuyabilmesi de pratik bir faktör: LangGraph’ın öğrenme eğrisi, resmi dokümantasyon dışında güvenilir Türkçe kaynak neredeyse hiç olmadığı için Türkiye’deki ekipler için biraz daha dik hissettiriyor.
Hızlı Özet
| CrewAI | LangGraph | AutoGen | |
|---|---|---|---|
| Felsefe | Takım rolleri | Grafik iş akışı | Konuşmalar |
| En iyi olduğu alan | Hızlı prototip, doğrusal akışlar | Üretim sistemleri, karmaşık mantık | Tartışma, beyin fırtınası |
| Öğrenme eğrisi | Düşük | Yüksek | Orta |
| Token verimliliği | İyi | En iyi | Düşük |
| Hata ayıklama | Temel | Mükemmel (LangSmith) | Konuşma logları |
| Aktif geliştirme | Çok aktif | Çok aktif | Büyük yeniden yazım (0.4) |
| Buradan başlayın | Evet (yeni başlayanlar) | Evet (üretim) | Belki (durumu kontrol edin) |