
2024’ün ortasında LangGraph, CrewAI ve AutoGen karşılaştırması yaptığımızda tablo netti: üçü de Python’dan geliyordu. TypeScript geliştiriciler için bu araçlar “çalışıyor ama…” eşiğinde takılıp kalıyordu. 2025’in ikinci yarısında tablo değişti. Vercel destekli Mastra.ai stable sürümüne kavuştu ve TypeScript-first bir çerçeve olarak ciddiye alınmaya başlandı. Şimdi üç seçenek var; hangisini seçeceğiniz ekibinizin diline ve production baskısına göre ayrışıyor.
Neden Yeni Bir Framework?
Frontend ekipler 2024-2025 boyunca AI özelliği eklemeye başladı. Next.js projesine chat penceresi eklemek ya da kullanıcı davranışından öneri üretecek bir ajan yazmak, eskiden ayrı bir Python servisine HTTP isteği atmak anlamına geliyordu. Ayrı bir deployment, ayrı bir debug ortamı. Küçük ekipler için bu yük gerçek bir sürtünme.
LangGraph ve CrewAI bu sorunu görüyor; her ikisinin JavaScript/TypeScript sürümü var. Ama Python sürümleriyle kıyaslandığında olgunluk farkı hissediliyor: bazı özellikler Python’da var ama JS sürümüne geç geliyor, Stackoverflow’daki tartışmalar büyük çoğunlukla Python odaklı. Mastra.ai bu boşluğa yerleşiyor: TypeScript birinci sınıf vatandaş, Python ise hiç yok.
Mastra.ai’nin çıkışı yalnızca dil tercihiyle ilgili değil. Vercel AI SDK ile doğal çalışması ve Anthropic, OpenAI, Google ile Ollama’yı tek API üzerinden sunması bu aracı Next.js ağırlıklı projelerde ciddi bir opsiyon haline getiriyor. Bunu Python ekosisteminin TypeScript kopyası saymak yanlış olur; hedef kitle farklı.
2025-2026 döneminde TypeScript’le AI geliştirme ana akıma girdi. Frontend mühendislerin bir kısmı artık sırf AI özelliği kurmak için Python öğrenmek istemiyor; bu isteksizlik meşru bir tercih. Mastra.ai tam bu noktada oluşan talebi karşılıyor. Bu durumun LangGraph ya da CrewAI için tehdit olmadığını da belirtmek gerekiyor; iki ekosistem farklı şeyleri önceliklendiriyor.
Mastra.ai: TypeScript-Native Agent
Mastra.ai, 2024 sonunda başlayan geliştirme sürecinin ardından 2025’te stable sürüme ulaşan bir TypeScript AI agent çerçevesi. Temel fikri şu: ajan sistemleri kurarken dil sınırı koymamalısınız, tip güvencesinden taviz vermemelisiniz.
Çerçevenin dört temel yapı taşı var: Agent (tek bir LLM tabanlı ajan), Workflow (adımları birbirine bağlayan yürütme akışı), Tool (harici API çağrısı ya da hesaplama birimi) ve Memory (kısa ve uzun dönem bellek katmanı). Bu dört yapı birbiri içine geçebilir; tek bir Workflow içinde birden fazla Agent, her Agent’ın da birden fazla Tool’u olabilir.
import { Agent } from '@mastra/core';
import { anthropic } from '@mastra/anthropic';
const agent = new Agent({
name: 'arastirmaci',
instructions: 'Web araştırması yap, bulguları özlü biçimde aktar.',
model: anthropic('claude-sonnet-4-6'),
});
const result = await agent.generate('2026 AI agent trendleri neler?');
console.log(result.text);
Kurulum tek satır: npm install @mastra/core. Vercel AI SDK’yı zaten kullanan bir Next.js projesinde Mastra.ai eklemek, harici bir servis kurmaktan çok daha az iş çıkarıyor.
TypeScript’in tip sistemi burada gerçek bir avantaja dönüşüyor. Ajan konfigürasyonunda yanlış bir alan ya da tutarsız bir model çağrısı derleme anında yakalanıyor; production’da değil. Büyük kod tabanlarında bu fark, gecenin üçünde alarm çalmak ile sabah kod review’da hatayı görmek arasındaki fark.
Mastra.ai’nin Workflow soyutlaması, birden fazla ajanı birbirine bağlamak için gerekiyor. Örneğin bir araştırma akışında: ilk ajan web araması yapıyor, ikinci ajan bulguları özetliyor, üçüncü ajan çıktıyı belirtilen formata dönüştürüyor. Workflow bu adımları sıralı ya da paralel olarak birbirine bağlayabiliyor; her adımın çıktısı otomatik olarak bir sonrakinin girişine akıyor. Memory katmanı ise ajan konuşmalarını saklamak için kullanılıyor: kısa dönem bellek oturum içi bağlamı tutuyor, uzun dönem bellek ise vektör tabanlı depolama aracılığıyla önceki etkileşimleri hatırlıyor. Bu iki katman, çok adımlı ve çok ajanlı sistemlerde manuel state yönetimini azaltıyor.
Zayıf noktalar da belli. LangSmith gibi Python tabanlı gözlemlenebilirlik araçlarıyla entegrasyon sınırlı. Checkpoint ve persistence desteği gelişiyor ama LangGraph’ın gerisinde. GitHub yıldız sayısı 2025’te hızla arttı; topluluk canlı ama Stackoverflow soru havuzu henüz küçük.
LangGraph: Durum Makinesi Yaklaşımı
LangGraph, LangChain ekosisteminin 2024’te duyurduğu ve kısa sürede production’a girmiş bir ajan orkestrasyon kütüphanesi. Temel metaforu “yönlü asiklik grafik”: her adım bir düğüm, geçişler koşullu ya da doğrudan kenar. Bu mimari döngüsel iş akışlarını, yani kendi kendini düzelten ajan mantığını ve insan-döngüsü onaylarını birinci sınıf destekle sunuyor.
LangGraph’ın öne çıktığı alan checkpoint. Uzun koşan bir iş akışı ortasında durup PostgreSQL ya da Redis’e state kaydedebilir; tam kaldığı adımdan devam edebilir. Müşteri hizmetleri botları ya da insan onayı gerektiren akışlar için bu özellik belirleyici.
from langgraph.graph import StateGraph, END
from typing import TypedDict
from langchain_anthropic import ChatAnthropic
class AgentState(TypedDict):
soru: str
cevap: str
llm = ChatAnthropic(model="claude-sonnet-4-6")
def yanit_uret(state: AgentState) -> AgentState:
response = llm.invoke(f"Şu soruyu Türkçe yanıtla: {state['soru']}")
return {"cevap": response.content}
graph = StateGraph(AgentState)
graph.add_node("yanit_uret", yanit_uret)
graph.set_entry_point("yanit_uret")
graph.add_edge("yanit_uret", END)
app = graph.compile()
result = app.invoke({"soru": "2026 AI agent trendleri?", "cevap": ""})
Öğrenme eğrisi dik. TypedDict ile state tanımlamak, node-edge ilişkisini kurmak, compile adımı: tek bir ajanı çalıştırmak için görece karmaşık bir iskelet gerekiyor. Büyük projelerde bu yapı ödüllendiriyor; prototip aşamasında fazla iş çıkarıyor.
LangGraph’ın graph mimarisinin gerçek değeri, ajan akışlarını görsel olarak izlemek ve test etmek istediğinizde ortaya çıkıyor. LangSmith entegrasyonu her node çalışmasını kaydediyor; hangi kararın neden alındığını geriye dönük incelemek mümkün. Production’da bir akışın neden yanlış sonuç ürettiğini anlamak için bu tür gözlemlenebilirlik çok değerli. LangGraph’ı tercih etmenin bir başka nedeni de insan-döngüsü (human-in-the-loop) akışları: belirli bir node’da ajan duruyor, insan onaylıyor ya da düzeltiyor, akış devam ediyor. Bunu CrewAI ya da Mastra.ai’de kurmak mümkün ama LangGraph’ın birinci sınıf checkpoint desteğiyle kıyaslandığında daha çok elle yazılmış kod gerektiriyor.
Python sürümü olgunluk açısından çok önde. JS sürümü (@langchain/langgraph) var ama bazı özellikler gecikiyor. Python’la çalışıyorsanız (Pydantic, LangSmith, HuggingFace), entegrasyon pürüzsüz. LangSmith’in gözlemlenebilirlik desteği diğer iki çerçevenin önünde.
CrewAI: Rol Tabanlı Ekip Modeli
CrewAI, ajan sistemlerini insan ekibi metaforu üzerine kuruyor: her ajan bir rolü, hedefi ve geçmişi olan bir “ekip üyesi”. Görevler mürettebata dağıtılıyor; iş akışı sıralı ya da paralel yürüyebilir. Bu soyutlama seviyesi, ML geliştirici olmayan ekip üyelerinin de sistemi kavramasını oldukça kolaylaştırıyor.
from crewai import Agent, Task, Crew
researcher = Agent(
role='Araştırmacı',
goal='Güncel AI agent trendlerini belirle',
backstory='10 yıllık teknoloji araştırmacısı, kaynak doğrulamada titiz.'
)
task = Task(
description='2026 AI agent framework trendlerini araştır ve özetle.',
expected_output='500 kelimelik Türkçe özet.',
agent=researcher
)
crew = Crew(agents=[researcher], tasks=[task])
result = crew.kickoff()
CrewAI’nin güçlü tarafı hız. Kod yazmadan YAML ile ajan ve görev tanımlamak mümkün; web araması ve dosya okuma gibi araç entegrasyonları kutudan çıkıyor. 2025’te çıkan Crew+ servisi cloud yürütme ve gözlemlenebilirlik ekliyor.
YAML konfigürasyonu pratikte şöyle görünüyor: agents.yaml dosyasında her ajanın rolü, hedefi ve kullanacağı araçlar tanımlanıyor; tasks.yaml dosyasında ise görevler ve beklenen çıktılar belirtiliyor. Python kodu neredeyse sadece bu YAML dosyalarını okuyup Crew nesnesini başlatıyor. Bu yaklaşım, özellikle ekip içinde AI ürünleri geliştiren ama her üyenin Python geçmişi olmadığı durumlarda konfigürasyonu paylaşmayı kolaylaştırıyor.
Düşük seviye kontrol gerektiren durumlarda yetersiz kalıyor. Checkpoint yok; uzun koşan bir iş akışı kesintiye uğrarsa baştan başlamak gerekiyor. State yönetimi, ajanların birbirinden bağımsız çalıştığı varsayımına dayanıyor; sıkı bağımlı adımlar içeren akışlarda bu varsayım tutmuyor. TypeScript desteği geldi, ama Python sürümünün gerisinde.
Doğrudan Karşılaştırma
Tablo resmi dokümantasyon ve GitHub repolarından derlendi. Güncel bilgi için Mastra.ai belgeleri, LangGraph belgeleri ve CrewAI belgeleri incelenebilir.
Tablodaki “Vercel / Next.js Uyumu” satırı belki de en kritik ayrışma noktası. LangGraph ve CrewAI için değer “kısmi” veya “yok”, yani ek konfigürasyon ya da harici servis gerekiyor. Mastra.ai için değer “native”, çünkü Vercel AI SDK ile aynı ekosistemden geliyor ve Next.js Server Actions ile doğrudan çalışabiliyor. Eğer projeniz zaten Vercel’de yaşıyorsa, bu satır tek başına çerçeve tercihini belirleyebilir. Öte yandan “Production Olgunluğu” satırında Mastra.ai için “Orta” yazan şey, 2025 stable sürümünün üzerinden yalnızca bir yıl geçtiği gerçeğini yansıtıyor; LangGraph’ın 2-3 yıllık production track record’uyla kıyaslandığında bu fark göz ardı edilmemeli.
Tabloyu okurken “Tip Güvenliği” satırına da dikkat edin. LangGraph ve CrewAI Pydantic kullanıyor, Mastra.ai ise TypeScript ve Zod. Her iki yaklaşım da runtime’da veri doğruluğunu güvence altına alıyor; fark, bunu hangi ekosistemde ve hangi derleme zamanı araçlarıyla yaptığınızda. Structured outputs ve JSON şema güvencesi konusunda daha fazla bilgi almak isteyenler için o yazıdaki karşılaştırma bu bağlamda da okunabilir.
| Kriter | Mastra.ai | LangGraph | CrewAI |
|---|---|---|---|
| Birincil Dil | TypeScript | Python (JS mevcut) | Python (JS mevcut) |
| Öğrenme Eğrisi | Orta | Dik | Kolay |
| State / Checkpoint | Gelişiyor | Güçlü | Sınırlı |
| Production Olgunluğu | Orta (2025 stable) | Yüksek | Orta |
| Topluluk Büyüklüğü | Büyüyor | Büyük | Büyük |
| Vercel / Next.js Uyumu | Native | Kısmi | Yok |
| Tip Güvenliği | TypeScript native | Pydantic (Python) | Pydantic (Python) |
| Multi-Agent Desteği | Var | Güçlü | Native (ekip metaforu) |
Kaynak: Mastra.ai GitHub, LangGraph GitHub, CrewAI GitHub, temmuz 2026 itibarıyla.

Kod Karşılaştırması
Aynı görevi üç çerçevede çözmek farkları somutlaştırıyor. Görev basit: bir kullanıcı sorusunu alıp kısa Türkçe yanıt üret.
Mastra.ai (TypeScript):
import { Agent } from '@mastra/core';
import { anthropic } from '@mastra/anthropic';
const agent = new Agent({
name: 'yanitlayici',
instructions: 'Soruları kısa ve net Türkçe yanıtla.',
model: anthropic('claude-sonnet-4-6'),
});
const { text } = await agent.generate('Yapay zeka agent nedir?');
console.log(text);
LangGraph (Python):
from langgraph.prebuilt import create_react_agent
from langchain_anthropic import ChatAnthropic
model = ChatAnthropic(model="claude-sonnet-4-6")
agent = create_react_agent(model, tools=[])
result = agent.invoke({
"messages": [("user", "Yapay zeka agent nedir?")]
})
print(result["messages"][-1].content)
CrewAI (Python):
from crewai import Agent, Task, Crew
uzman = Agent(
role='Uzman',
goal='Soruları kısa ve net yanıtla',
backstory='Teknik konularda açık ve özlü cevaplar veren uzman.'
)
gorev = Task(
description='Yapay zeka agent nedir?',
expected_output='3-4 cümlelik Türkçe açıklama.',
agent=uzman
)
crew = Crew(agents=[uzman], tasks=[gorev])
print(crew.kickoff())
Satır sayısı ilk bakışta benzer görünüyor. Asıl fark geliştirici deneyiminde: Mastra.ai’de TypeScript derleyicisi yanlış bir alan adını başlamadan yakalıyor. LangGraph’ta state şemasına fazladan bir alan girildiğinde hata ancak runtime’da ortaya çıkıyor. CrewAI’de konfigürasyon en yüksek soyutlama seviyesinde; bu hızlı kurulum demek, ama nüanslı kontrol gerektiren durumlarda esneklik azalıyor.
Bir başka fark daha var: Mastra.ai kodu TypeScript ekibinin zaten bildiği araçlarla (tsc, Jest, ESLint) test edilebilir. LangGraph’ı test etmek için Python test ekosistemi gerekiyor (pytest, mock). CrewAI konfigürasyonunu test etmek ise en güç senaryo; yüksek soyutlama seviyesi birim testleri yazmayı zorlaştırıyor. Büyük projelerde bu fark küçük görünmüyor: her ekip üyesinin hangi test stratejisiyle çalışacağını bilmesi gerekiyor.
Hangi Durum, Hangi Framework?
Tek doğru cevap yok. Ama şu kılavuz karar vermeyi kolaylaştırıyor:
Mastra.ai ekibiniz TypeScript’te çalışıyorsa ve Vercel üzerinde deploy ediyorsanız mantıklı. Python servisi eklemek istemiyorsunuz; agent mantığı ürün kodunuzun içine giriyor ve derleme zamanı güvencesi şart. Erken evredeki proje ya da MVP için iyi bir başlangıç noktası. Sıfırdan bir AI agent nasıl kurulur rehberi Mastra.ai ile de takip edilebilir; temel kavramlar çerçeveden bağımsız.
LangGraph uzun koşan ya da kendi kendini düzelten iş akışlarınız varsa öne çıkıyor. Checkpoint kritik: akış kesilip kaldığı yerden devam etmeli. Python ekosistemiyle çalışıyorsunuz, LangSmith’le gözlemlenebilirlik istiyorsunuz. Ürün production’a çıkacak; olgunluk, kurulum hızından daha önemli.
CrewAI hızlı prototip için doğru seçim. Bir hafta içinde çalışan çok ajanlı bir sistem göstermek istiyorsunuz. Ekibinizde konfigürasyonu yönetmesi gereken ama kod yazmayan bireyler var. Karmaşık state yönetimi henüz önceliğiniz değil; ihtiyaçlar netleşince başka çerçeveye geçmek mümkün.
Pratik bir kural da var: mevcut kod tabanının diliyle uyumlu çerçeveyi seçin. TypeScript projesine Python çerçevesini zorlamak, teknik açıdan doğru görünse bile bakım maliyetini artırıyor.
Karar Matrisi
Ağırlıklı puanlama, ekip profiline göre farklı sonuç üretiyor. Aşağıdaki tablo TypeScript ağırlıklı bir web ekibini referans alıyor; Python ağırlıklı ML ekibi TypeScript desteği sütununun ağırlığını düşürüp production olgunluğuna daha fazla ağırlık vermeli.
| Kriter (Ağırlık) | Mastra.ai | LangGraph | CrewAI |
|---|---|---|---|
| TypeScript desteği (3x) | ●●●●● | ●●○○○ | ●●○○○ |
| Production olgunluğu (2x) | ●●●○○ | ●●●●● | ●●●○○ |
| Öğrenme kolaylığı (2x) | ●●●○○ | ●●○○○ | ●●●●● |
| Ekosistem entegrasyonu (1x) | ●●●○○ | ●●●●● | ●●●○○ |
| Dokümantasyon (1x) | ●●●○○ | ●●●●○ | ●●●●○ |
| Toplam (TypeScript ekip) | 22 | 19 | 17 |
Kaynak: resmi dokümantasyon ve GitHub repo durumu, temmuz 2026 itibarıyla.
Puan farkı dar ve bu kasıtlı. Üç çerçeve de aktif geliştiriliyor; sıralama 2027 başına kadar değişebilir. Python tabanlı ekipler için tablo değişiyor: LangGraph production olgunluğu ve ekosistem entegrasyonuyla öne geçiyor.
LangGraph, CrewAI ve AutoGen’in Python ekosistemindeki karşılaştırması için önceki yazımıza bakın. Structured outputs ve tip güvenliğini derinlemesine anlamak isteyenler, Mastra.ai’nin TypeScript-Zod entegrasyonunu kavramak için o yazıya da göz atmalı.
2026’da framework seçimi dil tercihini aşıyor: hangi soyutlama seviyesinin ekibinize uyduğunu ve production’da ne kadar olgunluk beklediğinizi bilmek gerekiyor. Doğru çerçeveyi doğru zamanda seçmek, sırf en popüler aracı seçmekten çok daha az maliyetli.



