spinny:~/writing $ less agentic-ai-frameworks-comparison.md
12AI 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.342026''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.56## Bir Bakışta78| Yön | LangGraph | CrewAI | OpenAI Agents SDK | Claude Agent SDK |9|--------|-----------|--------|-------------------|-----------------|10| **Geliştiren** | LangChain | CrewAI Inc. | OpenAI | Anthropic |11| **Mimari** | Graph tabanlı | Role tabanlı | Handoff tabanlı | Otonom loop |12| **Felsefe** | Maksimum kontrol | Takım işbirliği | Minimal soyutlama | Agent''a bir bilgisayar ver |13| **Diller** | Python, TypeScript | Python | Python | Python, TypeScript |14| **Model desteği** | Herhangi biri (OpenAI, Claude, yerel) | Herhangi biri | Herhangi biri (isme rağmen) | Yalnızca Claude |15| **GitHub stars** | ~29k | ~40k | ~21k | ~6k |16| **En uygun** | Karmaşık stateful workflowlar | Multi-agent uzmanlaşma | Routing ve triage | Coding ve dosya yoğun görevler |1718## LangGraph: Graph İnşaatçısı1920LangGraph, 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.2122Bu, en açık ve kontrol edilebilir frameworktür - her adımı kendiniz bağlarsınız.2324```mermaid25graph LR26 Start --> Router[Router Node]27 Router -->|needs research| Research[Research Node]28 Router -->|needs code| Code[Code Node]29 Research --> Synthesize[Synthesize Node]30 Code --> Synthesize31 Synthesize --> End32```3334### Temel Kavramlar3536- **StateGraph**: typed state ile graph tanımı37- **Nodes**: state''i dönüştüren Python fonksiyonları38- **Edges**: nodelar arası bağlantılar, koşullu olabilir39- **Checkpointing**: uzun süreli workflowlar için yerleşik persistence4041### Kod Örneği4243```python44from langgraph.graph import StateGraph, MessagesState, START, END45from langchain_openai import ChatOpenAI4647llm = ChatOpenAI(model="gpt-4o")4849def call_agent(state: MessagesState):50 response = llm.invoke(state["messages"])51 return {"messages": [response]}5253def should_continue(state: MessagesState):54 last = state["messages"][-1]55 if last.tool_calls:56 return "tools"57 return END5859def call_tools(state: MessagesState):60 # Execute tool calls and return results61 results = []62 for tool_call in state["messages"][-1].tool_calls:63 result = execute_tool(tool_call)64 results.append(result)65 return {"messages": results}6667graph = StateGraph(MessagesState)68graph.add_node("agent", call_agent)69graph.add_node("tools", call_tools)70graph.add_edge(START, "agent")71graph.add_conditional_edges("agent", should_continue, {"tools": "tools", END: END})72graph.add_edge("tools", "agent")7374app = graph.compile()75result = app.invoke({"messages": [{"role": "user", "content": "What's the weather?"}]})76```7778### Güçlü Yönler7980- Her adım ve geçiş üzerinde ince taneli kontrol81- Yerleşik checkpointing ve human-in-the-loop82- Tam TypeScript paritesi83- Herhangi bir LLM sağlayıcısıyla çalışır84- Koşullu branching ve looplar içeren karmaşık workflowlar için en uygun8586### Zayıf Yönler8788- Dik öğrenme eğrisi - graph teorisi kavramlarını anlamanız gerekir89- Basit use caseler için fazla ayrıntılı - temel bir agent diğer frameworklere göre daha fazla boilerplate gerektirir90- LangSmith olmadan graph akışlarının debug edilmesi zor olabilir9192### Fiyatlandırma9394Open-source (MIT). LangSmith (yönetilen observability platformu) production izleme için ücretli tierlara sahiptir.9596## CrewAI: Takım Oluşturucu9798CrewAI 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.99100Bunu, her üyenin belirli bir iş unvanı ve uzmanlığına sahip olduğu bir takım kurmak olarak düşünün.101102```mermaid103graph TD104 Crew[Crew Manager] --> R[Researcher\nRole: Find data\nTools: WebSearch]105 Crew --> W[Writer\nRole: Write content\nTools: FileWrite]106 Crew --> E[Editor\nRole: Review quality\nTools: FileRead]107 R --> Task1[Research Task]108 W --> Task2[Writing Task]109 E --> Task3[Review Task]110 Task1 --> Task2 --> Task3111```112113### Temel Kavramlar114115- **Agent**: role, goal, backstory ve toolları olan bir persona116- **Task**: açıklama, beklenen çıktı ve atanan agent ile birlikte bir görev117- **Crew**: birlikte çalışan bir agent grubu118- **Process**: yürütme stratejisi (sequential, hierarchical, consensual)119- **Flow**: birden fazla crew''yu bağlamak için olay güdümlü orkestrasyon katmanı120121### Kod Örneği122123```python124from crewai import Agent, Task, Crew, Process125126researcher = Agent(127 role="Senior Research Analyst",128 goal="Find comprehensive data about the given topic",129 backstory="You have 10 years of experience in technology research. "130 "You are thorough and always verify facts from multiple sources.",131 tools=[web_search_tool],132 verbose=True,133)134135writer = Agent(136 role="Technical Writer",137 goal="Create clear, engaging technical content",138 backstory="You write for a developer audience. "139 "Your articles are practical and include code examples.",140 tools=[file_tool],141 verbose=True,142)143144research_task = Task(145 description="Research the latest developments in WebAssembly in 2026. "146 "Focus on WASI, Component Model, and production use cases.",147 expected_output="A structured research document with key findings and sources.",148 agent=researcher,149)150151writing_task = Task(152 description="Write a blog post based on the research. "153 "Include code examples and Mermaid diagrams.",154 expected_output="A complete blog post in Markdown format.",155 agent=writer,156 context=[research_task], # Writer receives researcher's output157)158159crew = Crew(160 agents=[researcher, writer],161 tasks=[research_task, writing_task],162 process=Process.sequential,163 verbose=True,164)165166result = crew.kickoff()167print(result.raw)168```169170### Güçlü Yönler171172- Sezgisel role tabanlı soyutlama - düşünmesi kolay173- 100''den fazla yerleşik tool entegrasyonu174- Agentlar arasında paylaşılan memory (kısa vadeli, uzun vadeli, entity)175- En büyük topluluk (~40k GitHub stars)176- Delege eden ve doğrulayan bir "manager" agentı ile hierarchical process177178### Zayıf Yönler179180- LangGraph''a göre daha az ince taneli kontrol - roller tanımlarsınız, kesin yürütme yollarını değil181- Agentlar anlaşamadığında hierarchical process öngörülemez olabilir182- Multi-agent konuşmalarının debug edilmesi single-agent akışlarından daha zordur183184### Fiyatlandırma185186Open-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.187188## OpenAI Agents SDK: Router189190OpenAI 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.191192```mermaid193graph LR194 User --> Triage[Triage Agent]195 Triage -->|billing question| Billing[Billing Agent]196 Triage -->|refund request| Refund[Refund Agent]197 Triage -->|technical issue| Support[Support Agent]198 Billing --> Response[Response]199 Refund --> Response200 Support --> Response201```202203### Temel Kavramlar204205- **Agent**: model + talimatlar + tools + handoffs206- **Handoff**: başka bir agenta transfer (LLM''in çağırabileceği bir tool olarak modellenmiştir)207- **Guardrail**: agentla paralel çalışan input/output doğrulaması208- **Runner**: agent loopunu çalıştırır209- **Tracing**: tüm LLM çağrıları, tool invocationları ve handoffları için yerleşik observability210211### Kod Örneği212213```python214from agents import Agent, Runner, handoff, InputGuardrail, GuardrailFunctionOutput215from pydantic import BaseModel216217class SafetyCheck(BaseModel):218 is_safe: bool219 reason: str220221async def content_safety(ctx, agent, input_text):222 result = await Runner.run(223 Agent(name="Safety", instructions="Check if input is safe. No PII."),224 input_text,225 context=ctx,226 )227 output = SafetyCheck.model_validate_json(result.final_output)228 return GuardrailFunctionOutput(229 output_info=output, tripwire_triggered=not output.is_safe230 )231232billing_agent = Agent(233 name="Billing Agent",234 instructions="You handle billing inquiries. Be precise with numbers.",235 tools=[lookup_invoice, process_payment],236)237238refund_agent = Agent(239 name="Refund Agent",240 instructions="You process refund requests. Always verify the order first.",241 tools=[lookup_order, issue_refund],242)243244triage_agent = Agent(245 name="Triage Agent",246 instructions="Route the customer to the right specialist. "247 "Ask clarifying questions if needed.",248 handoffs=[billing_agent, refund_agent],249 input_guardrails=[InputGuardrail(guardrail_function=content_safety)],250)251252result = await Runner.run(triage_agent, "I need a refund for order #4521")253print(result.final_output)254# The triage agent routes to refund_agent, which processes the refund255```256257### Güçlü Yönler258259- Temiz handoff pattern - routing/triage workflowları için doğal260- Guardrails yürütmeyle paralel çalışır (fail-fast, bloklamaz)261- Debugging için yerleşik tracing dashboard262- İsmine rağmen non-OpenAI modellerini destekler263- Minimal soyutlama - anlaması ve genişletmesi kolay264265### Zayıf Yönler266267- LangGraph''a göre daha az olgun state yönetimi268- Yerleşik persistence veya checkpointing yok269- Üçüncü taraf tool ekosistemi daha küçük270- Handoff merkezli tasarım her mimariye uygun olmayabilir271272### Fiyatlandırma273274Open-source (MIT). Kullandığınız herhangi bir model için token başına ödersiniz.275276## Claude Agent SDK: Geliştirici277278Claude 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.279280```mermaid281graph TD282 Prompt[User Prompt] --> Loop[Autonomous Agent Loop]283 Loop --> Reason[Reason about next step]284 Reason --> Act[Execute tool]285 Act --> Verify[Check result]286 Verify -->|not done| Loop287 Verify -->|done| Output[Final output]288```289290### Temel Kavramlar291292- **query()**: agent loopunu başlatan ana giriş noktası293- **Built-in tools**: Read, Write, Edit, Bash, Glob, Grep, WebSearch, WebFetch294- **Custom tools via MCP**: toolları process içi MCP serverları olarak tanımlayın295- **Sub-agents**: parentın delege edebileceği uzman agentlar296- **Sessions**: birden fazla etkileşim boyunca bağlamı korur297298### Kod Örneği299300```typescript301import { tool, createSdkMcpServer, query } from "@anthropic-ai/claude-agent-sdk";302import { z } from "zod";303304const searchDocs = tool(305 "search_docs",306 "Search the internal documentation for relevant information",307 { query: z.string().describe("Search query") },308 async ({ query }) => {309 const results = await vectorStore.similaritySearch(query, 5);310 return {311 content: [{ type: "text", text: results.map(r => r.pageContent).join("\n\n") }],312 };313 }314);315316const docsServer = createSdkMcpServer({317 name: "docs",318 version: "1.0.0",319 tools: [searchDocs],320});321322for await (const message of query({323 prompt: "Find how authentication works in our system and write a summary",324 options: {325 mcpServers: { docs: docsServer },326 allowedTools: ["Read", "Glob", "Grep", "mcp__docs__search_docs"],327 },328})) {329 if (message.type === "result" && message.subtype === "success") {330 console.log(message.result);331 }332}333```334335### Güçlü Yönler336337- Birinci sınıf MCP entegrasyonu - herhangi bir MCP server ekosistemine bağlanın338- Dosya işlemleri, terminal ve web erişimi için yerleşik tools339- Büyük codebaseler için otomatik bağlam sıkıştırma340- Karmaşık görevler için sub-agent paralelliği341- Claude Code ile aynı motor - gerçek development workflowlarında savaşta test edilmiş342343### Zayıf Yönler344345- Yalnızca Claude modelleri - multi-provider desteği yok346- Daha küçük topluluğa sahip daha yeni framework347- Python SDK için bile Node.js runtime gerektirir348- LangGraph''a kıyasla daha az açık workflow kontrolü349350### Fiyatlandırma351352Open-source. Standart Claude API token ücretleri. Managed Agents (hostlanan sürüm): token maliyetlerine ek olarak session-saat başına $0.08.353354## Hangisini Ne Zaman Seçmeli355356```mermaid357graph TD358 Start{What's your priority?}359 Start -->|Full control over workflow| LG[LangGraph]360 Start -->|Multi-agent collaboration| CA[CrewAI]361 Start -->|Routing and triage| OA[OpenAI Agents SDK]362 Start -->|Coding and file automation| CS[Claude Agent SDK]363364 LG --> LGU[Complex stateful workflows\nConditional branching\nHuman-in-the-loop]365 CA --> CAU[Team of specialized agents\nResearch + writing pipelines\nContent generation]366 OA --> OAU[Customer service routing\nMulti-step handoffs\nInput validation]367 CS --> CSU[Code generation and review\nFile-heavy automation\nMCP tool ecosystem]368```369370### LangGraph''ı şu durumda seçin:371- Workflowun her adımı üzerinde hassas kontrole ihtiyacınız var372- Use case''iniz karmaşık koşullu mantık ve loopları içeriyor373- Yerleşik persistence ve human-in-the-loop checkpointları istiyorsunuz374- Aynı workflowda birden fazla LLM sağlayıcısı kullanmanız gerekiyor375376### CrewAI''ı şu durumda seçin:377- Sezgisel, role tabanlı bir soyutlama istiyorsunuz378- Göreviniz farklı uzmanlıklara sahip birden fazla agent içeriyor379- Agentların işbirliği yapmasını ve birbirlerine bağlam iletmesini istiyorsunuz380- En büyük topluluğa ve en fazla yerleşik entegrasyona değer veriyorsunuz381382### OpenAI Agents SDK''yi şu durumda seçin:383- Birincil patterniniz konuşmaları uzmanlara yönlendirmek384- Input/output''u paralel doğrulayan guardraillere ihtiyacınız var385- Minimal boilerplate ile mümkün olan en basit soyutlamayı istiyorsunuz386- Yerleşik tracing ve observability önemli387388### Claude Agent SDK''yi şu durumda seçin:389- Agentlarınızın kod okuması, yazması ve yürütmesi gerekiyor390- Birinci sınıf MCP server entegrasyonu istiyorsunuz391- Yineleyen ve kendini düzelten otonom agentlara ihtiyacınız var392- Zaten Claude kullanıyorsunuz ve en derin entegrasyonu istiyorsunuz393394## Frameworkleri Birleştirebilir Misiniz?395396Evet. Yaygın bir pattern, orkestrasyon için bir framework ve bireysel agentlar için başka bir framework kullanmaktır:397398- Genel workflow graph için **LangGraph**399- Multi-agent işbirliği gerektiren belirli bir node için **CrewAI**400- MCP aracılığıyla coding ile ilgili alt görevler için **Claude Agent SDK**401- Müşteriye dönük triage ve routing için **OpenAI Agents SDK**402403Frameworkler karşılıklı dışlayıcı değildir. Sisteminizin her bölümüne uyanı kullanın.404405## Sonuç406407Her framework net bir bahis yapar:408409- **LangGraph** kontrol için optimize eder - her geçişe siz karar verirsiniz410- **CrewAI** işbirliği için optimize eder - agentlar bir takım olarak çalışır411- **OpenAI Agents SDK** basitlik için optimize eder - minimal soyutlama, temiz handoffs412- **Claude Agent SDK** otonomi için optimize eder - ona toollar verin ve çalışmasına izin verin413414Doğ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.415
:Agentic AI Frameworklerinin Karşılaştırması: LangGraph vs CrewAI vs OpenAI Agents SDK vs Claude Agent SDKlines 1-415 (END) — press q to close