AI agentları artık araştırma demolarından production sistemlerine geçti. 2026 itibarıyla enterprise AI uygulamalarının %60''ından fazlasının agentic bileşenler içermesi bekleniyor. Ancak agentları sıfırdan inşa etmek - tool looplarını, state''i, memory''yi, error handling''i ve multi-agent koordinasyonunu yönetmek - karmaşıktır. İşte frameworkler bu noktada devreye giriyor.
2026''da dört framework baskın: LangGraph, CrewAI, OpenAI Agents SDK ve Claude Agent SDK. Her biri aynı soruna temelde farklı bir yaklaşım getiriyor: LLM''lere akıl yürütme, planlama, tool kullanma ve işbirliği yapma yeteneği kazandırmak.
Bir Bakışta
| Yön | LangGraph | CrewAI | OpenAI Agents SDK | Claude Agent SDK |
|---|---|---|---|---|
| Geliştiren | LangChain | CrewAI Inc. | OpenAI | Anthropic |
| Mimari | Graph tabanlı | Role tabanlı | Handoff tabanlı | Otonom loop |
| Felsefe | Maksimum kontrol | Takım işbirliği | Minimal soyutlama | Agent''a bir bilgisayar ver |
| Diller | Python, TypeScript | Python | Python | Python, TypeScript |
| Model desteği | Herhangi biri (OpenAI, Claude, yerel) | Herhangi biri | Herhangi biri (isme rağmen) | Yalnızca Claude |
| GitHub stars | ~29k | ~40k | ~21k | ~6k |
| En uygun | Karmaşık stateful workflowlar | Multi-agent uzmanlaşma | Routing ve triage | Coding ve dosya yoğun görevler |
LangGraph: Graph İnşaatçısı
LangGraph, agent workflowlarını yönlendirilmiş çevrimsel graphlar olarak modeller. Nodeları (iş yapan fonksiyonlar) ve edgeleri (aralarındaki geçişler, isteğe bağlı olarak koşullu) tanımlarsınız. State graph boyunca akar ve checkpointing yoluyla kalıcı hale gelir.
Bu, en açık ve kontrol edilebilir frameworktür - her adımı kendiniz bağlarsınız.
Temel Kavramlar
- StateGraph: typed state ile graph tanımı
- Nodes: state''i dönüştüren Python fonksiyonları
- Edges: nodelar arası bağlantılar, koşullu olabilir
- Checkpointing: uzun süreli workflowlar için yerleşik persistence
Kod Örneği
from langgraph.graph import StateGraph, MessagesState, START, END from langchain_openai import ChatOpenAI llm = ChatOpenAI(model="gpt-4o") def call_agent(state: MessagesState): response = llm.invoke(state["messages"]) return {"messages": [response]} def should_continue(state: MessagesState): last = state["messages"][-1] if last.tool_calls: return "tools" return END def call_tools(state: MessagesState): # Execute tool calls and return results results = [] for tool_call in state["messages"][-1].tool_calls: result = execute_tool(tool_call) results.append(result) return {"messages": results} graph = StateGraph(MessagesState) graph.add_node("agent", call_agent) graph.add_node("tools", call_tools) graph.add_edge(START, "agent") graph.add_conditional_edges("agent", should_continue, {"tools": "tools", END: END}) graph.add_edge("tools", "agent") app = graph.compile() result = app.invoke({"messages": [{"role": "user", "content": "What's the weather?"}]})
Güçlü Yönler
- Her adım ve geçiş üzerinde ince taneli kontrol
- Yerleşik checkpointing ve human-in-the-loop
- Tam TypeScript paritesi
- Herhangi bir LLM sağlayıcısıyla çalışır
- Koşullu branching ve looplar içeren karmaşık workflowlar için en uygun
Zayıf Yönler
- Dik öğrenme eğrisi - graph teorisi kavramlarını anlamanız gerekir
- Basit use caseler için fazla ayrıntılı - temel bir agent diğer frameworklere göre daha fazla boilerplate gerektirir
- LangSmith olmadan graph akışlarının debug edilmesi zor olabilir
Fiyatlandırma
Open-source (MIT). LangSmith (yönetilen observability platformu) production izleme için ücretli tierlara sahiptir.
CrewAI: Takım Oluşturucu
CrewAI insani bir metafor kullanır: her biri bir role, goal ve backstory''ye sahip uzman agentlardan oluşan bir crew oluşturursunuz. Agentlar, bir process (sequential, hierarchical veya consensual) tarafından koordine edilen tools kullanarak tasks üzerinde işbirliği yapar.
Bunu, her üyenin belirli bir iş unvanı ve uzmanlığına sahip olduğu bir takım kurmak olarak düşünün.
Temel Kavramlar
- Agent: role, goal, backstory ve toolları olan bir persona
- Task: açıklama, beklenen çıktı ve atanan agent ile birlikte bir görev
- Crew: birlikte çalışan bir agent grubu
- Process: yürütme stratejisi (sequential, hierarchical, consensual)
- Flow: birden fazla crew''yu bağlamak için olay güdümlü orkestrasyon katmanı
Kod Örneği
from crewai import Agent, Task, Crew, Process researcher = Agent( role="Senior Research Analyst", goal="Find comprehensive data about the given topic", backstory="You have 10 years of experience in technology research. " "You are thorough and always verify facts from multiple sources.", tools=[web_search_tool], verbose=True, ) writer = Agent( role="Technical Writer", goal="Create clear, engaging technical content", backstory="You write for a developer audience. " "Your articles are practical and include code examples.", tools=[file_tool], verbose=True, ) research_task = Task( description="Research the latest developments in WebAssembly in 2026. " "Focus on WASI, Component Model, and production use cases.", expected_output="A structured research document with key findings and sources.", agent=researcher, ) writing_task = Task( description="Write a blog post based on the research. " "Include code examples and Mermaid diagrams.", expected_output="A complete blog post in Markdown format.", agent=writer, context=[research_task], # Writer receives researcher's output ) crew = Crew( agents=[researcher, writer], tasks=[research_task, writing_task], process=Process.sequential, verbose=True, ) result = crew.kickoff() print(result.raw)
Güçlü Yönler
- Sezgisel role tabanlı soyutlama - düşünmesi kolay
- 100''den fazla yerleşik tool entegrasyonu
- Agentlar arasında paylaşılan memory (kısa vadeli, uzun vadeli, entity)
- En büyük topluluk (~40k GitHub stars)
- Delege eden ve doğrulayan bir "manager" agentı ile hierarchical process
Zayıf Yönler
- LangGraph''a göre daha az ince taneli kontrol - roller tanımlarsınız, kesin yürütme yollarını değil
- Agentlar anlaşamadığında hierarchical process öngörülemez olabilir
- Multi-agent konuşmalarının debug edilmesi single-agent akışlarından daha zordur
Fiyatlandırma
Open-source çekirdek (ücretsiz). CrewAI Platformu: $99/ay (Teams) ile $120k/yıl (Enterprise) arası. Fiyatlandırma live crew ve aylık yürütmelere dayalıdır.
OpenAI Agents SDK: Router
OpenAI Agents SDK (Swarm''ın ruhani halefi), handoffs üzerine odaklanır - agentlar konuşmaları diğer uzman agentlara aktarır. En minimal frameworktür: agents, tools, handoffs ve guardrails. Hepsi bu.
Temel Kavramlar
- Agent: model + talimatlar + tools + handoffs
- Handoff: başka bir agenta transfer (LLM''in çağırabileceği bir tool olarak modellenmiştir)
- Guardrail: agentla paralel çalışan input/output doğrulaması
- Runner: agent loopunu çalıştırır
- Tracing: tüm LLM çağrıları, tool invocationları ve handoffları için yerleşik observability
Kod Örneği
from agents import Agent, Runner, handoff, InputGuardrail, GuardrailFunctionOutput from pydantic import BaseModel class SafetyCheck(BaseModel): is_safe: bool reason: str async def content_safety(ctx, agent, input_text): result = await Runner.run( Agent(name="Safety", instructions="Check if input is safe. No PII."), input_text, context=ctx, ) output = SafetyCheck.model_validate_json(result.final_output) return GuardrailFunctionOutput( output_info=output, tripwire_triggered=not output.is_safe ) billing_agent = Agent( name="Billing Agent", instructions="You handle billing inquiries. Be precise with numbers.", tools=[lookup_invoice, process_payment], ) refund_agent = Agent( name="Refund Agent", instructions="You process refund requests. Always verify the order first.", tools=[lookup_order, issue_refund], ) triage_agent = Agent( name="Triage Agent", instructions="Route the customer to the right specialist. " "Ask clarifying questions if needed.", handoffs=[billing_agent, refund_agent], input_guardrails=[InputGuardrail(guardrail_function=content_safety)], ) result = await Runner.run(triage_agent, "I need a refund for order #4521") print(result.final_output) # The triage agent routes to refund_agent, which processes the refund
Güçlü Yönler
- Temiz handoff pattern - routing/triage workflowları için doğal
- Guardrails yürütmeyle paralel çalışır (fail-fast, bloklamaz)
- Debugging için yerleşik tracing dashboard
- İsmine rağmen non-OpenAI modellerini destekler
- Minimal soyutlama - anlaması ve genişletmesi kolay
Zayıf Yönler
- LangGraph''a göre daha az olgun state yönetimi
- Yerleşik persistence veya checkpointing yok
- Üçüncü taraf tool ekosistemi daha küçük
- Handoff merkezli tasarım her mimariye uygun olmayabilir
Fiyatlandırma
Open-source (MIT). Kullandığınız herhangi bir model için token başına ödersiniz.
Claude Agent SDK: Geliştirici
Claude Agent SDK farklı bir yaklaşım benimser: workflow veya rolleri tanımlamak yerine, agenta bir tool seti verirsiniz ve görevi nasıl başaracağını kendisine bırakırsınız. Claude Code''u çalıştıran aynı otonom loopu kullanır - oku, harekete geç, doğrula, yinele.
Temel Kavramlar
- query(): agent loopunu başlatan ana giriş noktası
- Built-in tools: Read, Write, Edit, Bash, Glob, Grep, WebSearch, WebFetch
- Custom tools via MCP: toolları process içi MCP serverları olarak tanımlayın
- Sub-agents: parentın delege edebileceği uzman agentlar
- Sessions: birden fazla etkileşim boyunca bağlamı korur
Kod Örneği
import { tool, createSdkMcpServer, query } from "@anthropic-ai/claude-agent-sdk"; import { z } from "zod"; const searchDocs = tool( "search_docs", "Search the internal documentation for relevant information", { query: z.string().describe("Search query") }, async ({ query }) => { const results = await vectorStore.similaritySearch(query, 5); return { content: [{ type: "text", text: results.map(r => r.pageContent).join("\n\n") }], }; } ); const docsServer = createSdkMcpServer({ name: "docs", version: "1.0.0", tools: [searchDocs], }); for await (const message of query({ prompt: "Find how authentication works in our system and write a summary", options: { mcpServers: { docs: docsServer }, allowedTools: ["Read", "Glob", "Grep", "mcp__docs__search_docs"], }, })) { if (message.type === "result" && message.subtype === "success") { console.log(message.result); } }
Güçlü Yönler
- Birinci sınıf MCP entegrasyonu - herhangi bir MCP server ekosistemine bağlanın
- Dosya işlemleri, terminal ve web erişimi için yerleşik tools
- Büyük codebaseler için otomatik bağlam sıkıştırma
- Karmaşık görevler için sub-agent paralelliği
- Claude Code ile aynı motor - gerçek development workflowlarında savaşta test edilmiş
Zayıf Yönler
- Yalnızca Claude modelleri - multi-provider desteği yok
- Daha küçük topluluğa sahip daha yeni framework
- Python SDK için bile Node.js runtime gerektirir
- LangGraph''a kıyasla daha az açık workflow kontrolü
Fiyatlandırma
Open-source. Standart Claude API token ücretleri. Managed Agents (hostlanan sürüm): token maliyetlerine ek olarak session-saat başına $0.08.
Hangisini Ne Zaman Seçmeli
LangGraph''ı şu durumda seçin:
- Workflowun her adımı üzerinde hassas kontrole ihtiyacınız var
- Use case''iniz karmaşık koşullu mantık ve loopları içeriyor
- Yerleşik persistence ve human-in-the-loop checkpointları istiyorsunuz
- Aynı workflowda birden fazla LLM sağlayıcısı kullanmanız gerekiyor
CrewAI''ı şu durumda seçin:
- Sezgisel, role tabanlı bir soyutlama istiyorsunuz
- Göreviniz farklı uzmanlıklara sahip birden fazla agent içeriyor
- Agentların işbirliği yapmasını ve birbirlerine bağlam iletmesini istiyorsunuz
- En büyük topluluğa ve en fazla yerleşik entegrasyona değer veriyorsunuz
OpenAI Agents SDK''yi şu durumda seçin:
- Birincil patterniniz konuşmaları uzmanlara yönlendirmek
- Input/output''u paralel doğrulayan guardraillere ihtiyacınız var
- Minimal boilerplate ile mümkün olan en basit soyutlamayı istiyorsunuz
- Yerleşik tracing ve observability önemli
Claude Agent SDK''yi şu durumda seçin:
- Agentlarınızın kod okuması, yazması ve yürütmesi gerekiyor
- Birinci sınıf MCP server entegrasyonu istiyorsunuz
- Yineleyen ve kendini düzelten otonom agentlara ihtiyacınız var
- Zaten Claude kullanıyorsunuz ve en derin entegrasyonu istiyorsunuz
Frameworkleri Birleştirebilir Misiniz?
Evet. Yaygın bir pattern, orkestrasyon için bir framework ve bireysel agentlar için başka bir framework kullanmaktır:
- Genel workflow graph için LangGraph
- Multi-agent işbirliği gerektiren belirli bir node için CrewAI
- MCP aracılığıyla coding ile ilgili alt görevler için Claude Agent SDK
- Müşteriye dönük triage ve routing için OpenAI Agents SDK
Frameworkler karşılıklı dışlayıcı değildir. Sisteminizin her bölümüne uyanı kullanın.
Sonuç
Her framework net bir bahis yapar:
- LangGraph kontrol için optimize eder - her geçişe siz karar verirsiniz
- CrewAI işbirliği için optimize eder - agentlar bir takım olarak çalışır
- OpenAI Agents SDK basitlik için optimize eder - minimal soyutlama, temiz handoffs
- Claude Agent SDK otonomi için optimize eder - ona toollar verin ve çalışmasına izin verin
Doğru seçim workflowunuza, ekibinize ve mevcut stackinize bağlıdır. Birincil use case''inize uyanı seçin, iyi öğrenin ve sweet spotlarına ulaştığınızda diğerlerini dahil edin.