Akış modeli: graf mı, rol-tabanlı ekip mi?
LangGraph'ın merkezinde StateGraph var: düğümler (node) ve kenarlar (edge) ile tanımlanan, koşullu dallanma ve döngüye doğal olarak izin veren bir yapı. Resmi doküman bunu 'fine-grained control to mix deterministic, hand-coded steps with LLM-driven agentic steps in the same graph' olarak özetliyor — yani elle yazdığın kod ile LLM'in karar verdiği adımlar aynı grafikte bir arada yaşayabiliyor. CrewAI ise iki katmanlı: Flows 'event-driven workflows that manage state' sağlıyor (LangGraph'ın 'graf/state-machine' alanına giren bir katman), Crews ise 'teams of autonomous agents that collaborate' ile rol-tabanlı işbirliğini kuruyor. 2023-2024'te yaygın olan 'CrewAI = rol ekibi, LangGraph = graf' basit karşıtlığı, Flows'un event-driven/durum-yönetimli doğası nedeniyle 2026'da artık net değil — CrewAI'de de koşullu dallanma ve döngü kurabiliyorsun, sadece iki ayrı primitive (Flow + Crew) üzerinden.
Durum yönetimi ve checkpoint'ten devam
LangGraph'ta kalıcılık iki katmanlı: Checkpointer'lar bir thread'in graf durumunu checkpoint olarak saklıyor (kısa-vadeli, thread-scoped); Store'lar uygulama-tanımlı veriyi graf durumunun dışında, thread'ler arası (uzun-vadeli) tutuyor. Bu ayrım, aynı konuşma içinde devam eden state ile kullanıcı genelinde kalıcı hafızayı net biçimde birbirinden ayırıyor. CrewAI'nin yaklaşımı farklı: tekil bir Memory sınıfı, 'adaptive-depth recall with composite scoring' ve hiyerarşik bir scope ağacı sunuyor — yani hafızanın derinliği ve önceliği otomatik bir skorlama ile belirleniyor. LangGraph'ın modeli daha açık ve elle kontrol edilebilir (hangi veri nerede saklanıyor net); CrewAI'nin modeli daha az konfigürasyonla 'akıllı' bir hafıza vaat ediyor.
İnsan-döngüde (human-in-the-loop) destek
LangGraph'ta tek ve yerleşik bir mekanizma var: interrupt() fonksiyonu graf yürütmesini duraklatıp çağırana bir değer döndürüyor; checkpointer + thread_id kombinasyonuyla akış kaldığı yerden devam ediyor. CrewAI iki ayrı yol sunuyor: Flow-tabanlı @human_feedback decorator'ı (v1.8.0+) yerel ve senkron çalışıyor — geliştirme/test için uygun; webhook-tabanlı yol ise Enterprise planına bağlı ve prod-ölçekli asenkron onay akışları için tasarlanmış. Buna karşılık yönetilen webhook HITL Enterprise'a bağlı olsa da, ücretsiz OSS katmanında kendi WebhookProvider/SlackNotificationProvider'ını yazarak async onayı kurabilirsin: HumanFeedbackPending fırlatıldığında akış durumu SQLiteFlowPersistence ile otomatik kalıcılaşıyor, from_pending() / resume() / resume_async() ile devam ediyorsun. Pratik sonuç: LangGraph'ta HITL ücretsiz katmanda da hazır ve tam kapasiteyle çalışıyor, CrewAI'de hazır prod-ölçekli asenkron onay Enterprise bütçesi gerektiriyor — ya da kendi provider'ını yazmanı.
Gözlemlenebilirlik: LangSmith vs CrewAI AMP
LangGraph'ın gözlemlenebilirlik katmanı LangSmith: 'full visibility into your LLM application: from individual traces to production-wide performance metrics' — Developer katmanında ($0/seat, 5K iz/ay) bile tracing çalışıyor. CrewAI'nin AMP fiyatlandırma tablosu iki kolonlu: Basic/Free ve Enterprise/Custom. Tracing, OpenTelemetry, LLM testing ve Guardrails satırlarının ikisi de her iki kolonda 'Yes' — yani gözlemlenebilirlik ücretsiz katmanda da açık. Kolon eşlemesini aynı tablodaki 'Role-based access control' ve 'Dedicated VPC' satırları doğruluyor: ikisi de birinci kolonda '—', ikinci kolonda 'Yes'. Gerçek fark özellik listesinde değil, tavanda: AMP Free ayda 50 iş akışı çalıştırmasıyla (50 workflow executions/month), LangSmith Developer ise ayda 5K izle sınırlı. Yani erken aşamada iki taraf da ücretsiz tracing veriyor; seçimi belirleyen, ücretsiz kotanı hangi birimle (iz mi, çalıştırma mı) harcadığın ve ölçeklendiğinde hangi faturaya geçtiğin.
Öğrenme eğrisi ve kod hacmi
Resmi LangGraph dokümanı kendi ifadesiyle dürüst: 'LangGraph is very low-level, and focused entirely on agent orchestration... If you are just getting started... we recommend you use LangChain's agents that provide prebuilt architectures.' Yani düşük seviye = daha fazla kontrol ama daha fazla kod ve daha dik bir öğrenme eğrisi. CrewAI'nin PyPI/README tanıtım metni ise 'high-level simplicity and precise low-level control' vaat ediyor; resmi doküman da 'For any production-ready application, start with a Flow' tavsiyesiyle net bir başlangıç noktası sunuyor. Taraflardan hiçbiri karşılaştırmalı, resmi bir 'satır sayısı' ölçümü yayımlamıyor — ama dokümantasyon dilinin kendisi bile hangi framework'ün hangi kullanıcı profiline (deneyimli/düşük-seviye kontrol isteyen vs. hızlı/yüksek-seviye) hitap ettiğini gösteriyor.
MCP entegrasyonu ve LLM-agnostisizm
CrewAI'de MCP entegrasyonu iki seviyeli ve dedike: basit bir DSL (mcps alanı) hızlı bağlanma için, gelişmiş MCPServerAdapter ise Stdio, SSE ve Streamable HTTP transport'larının üçünü de resmi olarak destekliyor. LangGraph tarafında MCP ayrı bir LangGraph özelliği olarak belgelenmiyor; entegrasyon, LangChain'in agents katmanındaki adaptörler üzerinden yapılıyor, yani ayrı bir kurulum adımı gerekebilir. MCP'ye sık bağlanacak bir ekip için CrewAI'nin dedike DSL'i somut, pratik bir avantaj sağlıyor; her iki framework de LLM sağlayıcısı seçiminde agnostik kalmaya devam ediyor, yani tek bir modele kilitlenmiyorsun.
Üretim olgunluğu ve kurumsal kanıt
LangGraph'ın resmi ürün sayfası 'Trusted by companies shaping the future of agents' başlığı altında Cisco, Nvidia, ServiceNow, Workday, Lyft, Expedia, Autodesk, Coinbase ve Klarna logolarını sıralıyor; LangChain Customer Stories sayfasında (langchain.com/customers) ayrıca NVIDIA, Morningstar, Cisco, Toyota, Harvey, Salesforce, ServiceNow ve C.H. Robinson vaka videoları listeleniyor. CrewAI'nin dedike Case Studies sayfasında PwC ('accelerates enterprise-scale GenAI adoption'), IBM ('automates federal eligibility with Agents') ve AWS (Bedrock entegrasyonu) yer alıyor; AMP fiyatlandırma sayfası ayrıca 'used by 65% of the Fortune 500' iddiasını taşıyor. İkisi de kanıtlanmış kurumsal kullanım gösteriyor, ama LangGraph'ın listesi daha çok isim ve daha uzun bir süredir (2023-08'den beri) birikmiş durumda.