spinny:~/writing $ less agentic-ai-frameworks-comparison.md
12AI-agenter har gatt fran forskningsdemos till produktionssystem. Over 60% av enterprise AI-tillaampningar forvantas innehalla agentiska komponenter till 2026. Men att bygga agenter fran grunden - hantera tool-loopar, state, minne, felhantering och multi-agent-koordinering - ar komplext. Det ar dar ramverk kommer in.34Fyra ramverk dominerar 2026: **LangGraph**, **CrewAI**, **OpenAI Agents SDK** och **Claude Agent SDK**. Varje tar ett fundamentalt annorlunda tillvagagangssatt for samma problem: att ge LLM:er formagan att resonera, planera, anvanda verktyg och samarbeta.56## I Korthet78| Aspekt | LangGraph | CrewAI | OpenAI Agents SDK | Claude Agent SDK |9|--------|-----------|--------|-------------------|-----------------|10| **Av** | LangChain | CrewAI Inc. | OpenAI | Anthropic |11| **Arkitektur** | Grafbaserad | Rollbaserad | Handoff-baserad | Autonom loop |12| **Filosofi** | Maximal kontroll | Teamsamarbete | Minimal abstraktion | Ge agenten en dator |13| **Sprak** | Python, TypeScript | Python | Python | Python, TypeScript |14| **Modellstod** | Alla (OpenAI, Claude, lokala) | Alla | Alla (trots namnet) | Endast Claude |15| **GitHub stars** | ~29k | ~40k | ~21k | ~6k |16| **Bast for** | Komplexa tillstandshanterade workflows | Multi-agent-specialisering | Routing och triage | Coding och filintensiva uppgifter |1718## LangGraph: Grafbyggaren1920LangGraph modellerar agent-workflows som **riktade cykliska grafer**. Du definierar noder (funktioner som utfor arbete) och kanter (overganger mellan dem, valfritt villkorliga). State floder genom grafen och persisteras via checkpointing.2122Detta ar det mest explicita och kontrollerbara ramverket - du kopplar varje steg sjalv.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### Karnkoncept3536- **StateGraph**: grafdefinitionen med typad state37- **Nodes**: Python-funktioner som transformerar state38- **Edges**: kopplingar mellan noder, kan vara villkorliga39- **Checkpointing**: inbyggd persistens for langvariga workflows4041### Kodexempel4243```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### Styrkor7980- Detaljerad kontroll over varje steg och overgang81- Inbyggd checkpointing och human-in-the-loop82- Full TypeScript-paritet83- Fungerar med vilken LLM-leverantor som helst84- Bast for komplexa workflows med villkorlig forgrening och loopar8586### Svagheter8788- Brant inlarningskurva - du behover forsta grafteorikoncept89- Omstandligt for enkla anvandningsfall - en enkel agent kraver mer boilerplate an andra ramverk90- Att debugga graffloden kan vara utmanande utan LangSmith9192### Priser9394Open-source (MIT). LangSmith (hanterad observability-plattform) har betalda nivaer for produktionsovervakning.9596## CrewAI: Teamsammanstallaren9798CrewAI anvander en mansklig metafor: du satter ihop en **crew** av specialiserade agenter, var och en med en **roll**, ett **mal** och en **bakgrundshistoria**. Agenter samarbetar om **uppgifter** med hjalp av **verktyg**, koordinerade av en **process** (sekventiell, hierarkisk eller konsensusbaserad).99100Tank pa det som att anstalla ett team dar varje medlem har en specifik yrkestitel och specialitet.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### Karnkoncept114115- **Agent**: en persona med roll, mal, bakgrundshistoria och verktyg116- **Task**: ett uppdrag med beskrivning, forvantad output och tilldelad agent117- **Crew**: en grupp agenter som arbetar tillsammans118- **Process**: exekveringsstrategi (sekventiell, hierarkisk, konsensusbaserad)119- **Flow**: haendelsedriven orkestreringslagret for att koppla samman flera crews120121### Kodexempel122123```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### Styrkor171172- Intuitiv rollbaserad abstraktion - latt att forsta173- Over 100 inbyggda tool-integrationer174- Delat minne over agenter (korttids-, langtids-, entity-minne)175- Storsta communityn (~40k GitHub stars)176- Hierarkisk process med en "manager"-agent som delegerar och validerar177178### Svagheter179180- Mindre detaljerad kontroll an LangGraph - du definierar roller, inte exakta exekveringsvagar181- Hierarkisk process kan vara oforutsagbar nar agenter ar oense182- Att debugga multi-agent-konversationer ar svarare an single-agent-floden183184### Priser185186Open-source-karna (gratis). CrewAI Platform: $99/manad (Teams) till $120k/ar (Enterprise). Priser baserade pa aktiva crews och manatliga exekveringar.187188## OpenAI Agents SDK: Routern189190OpenAI Agents SDK (andlig efterfoljare till Swarm) fokuserar pa **handoffs** - agenter som overlamnar konversationer till andra specialiserade agenter. Det ar det mest minimala ramverket: agenter, verktyg, handoffs och guardrails. Det ar allt.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### Karnkoncept204205- **Agent**: modell + instruktioner + verktyg + handoffs206- **Handoff**: en overlamning till en annan agent (modellerad som ett verktyg som LLM:en kan anropa)207- **Guardrail**: indata-/utdatavalidering som kor parallellt med agenten208- **Runner**: exekverar agent-loopen209- **Tracing**: inbyggd observability for alla LLM-anrop, verktygsexekveringar och handoffs210211### Kodexempel212213```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### Styrkor258259- Rent handoff-monster - naturligt for routing-/triage-workflows260- Guardrails kor parallellt med exekvering (fail-fast, inte blockerande)261- Inbyggd tracing-dashboard for debugging262- Trots namnet stods aven icke-OpenAI-modeller263- Minimal abstraktion - latt att forsta och utoka264265### Svagheter266267- Mindre mogen state management an LangGraph268- Ingen inbyggd persistens eller checkpointing269- Ekosystemet av tredjepartsverktyg ar mindre270- Handoff-centrerad design kanske inte passar alla arkitekturer271272### Priser273274Open-source (MIT). Du betalar per token for vilken modell du an anvander.275276## Claude Agent SDK: Utvecklaren277278Claude Agent SDK tar ett annorlunda tillvagagangssatt: istallet for att definiera workflows eller roller ger du agenten en **uppsattning verktyg och later den lista ut hur den ska utfora uppgiften**. Den anvander samma autonoma loop som driver Claude Code - lasa, agera, verifiera, iterera.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### Karnkoncept291292- **query()**: huvudingangspunkten som startar agent-loopen293- **Inbyggda verktyg**: Read, Write, Edit, Bash, Glob, Grep, WebSearch, WebFetch294- **Anpassade verktyg via MCP**: definiera verktyg som in-process MCP-servrar295- **Sub-agenter**: specialiserade agenter som den overordnade agenten kan delegera till296- **Sessions**: behall kontext over flera interaktioner297298### Kodexempel299300```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### Styrkor336337- Forstklassig MCP-integration - anslut till hela MCP-server-ekosystemet338- Inbyggda verktyg for filoperationer, terminal och webbatkomst339- Automatisk kontextkomprimering for stora kodbaser340- Sub-agent-parallellism for komplexa uppgifter341- Samma motor som Claude Code - stridstestad i riktiga utvecklingsworkflows342343### Svagheter344345- Endast Claude-modeller - inget multi-provider-stod346- Nyare ramverk med en mindre community347- Kraver Node.js-runtime aven for Python SDK348- Mindre explicit workflowkontroll jamfort med LangGraph349350### Priser351352Open-source. Standard Claude API-tokenpriser. Managed Agents (hostad version): $0,08 per sessionstimme utover tokenkostnader.353354## Nar ska du valja vilket355356```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### Valj LangGraph om:371- Du behover exakt kontroll over varje steg i workflowen372- Ditt anvandningsfall innefattar komplex villkorlig logik och loopar373- Du vill ha inbyggd persistens och human-in-the-loop-checkpoints374- Du behover anvanda flera LLM-leverantorer i samma workflow375376### Valj CrewAI om:377- Du vill ha en intuitiv, rollbaserad abstraktion378- Din uppgift innefattar flera agenter med olika specialiseringar379- Du behover agenter som samarbetar och skickar kontext mellan varandra380- Den storsta communityn och flest inbyggda integrationer ar viktigt for dig381382### Valj OpenAI Agents SDK om:383- Ditt primara monster ar att routa konversationer till specialister384- Du behover guardrails som validerar indata/utdata parallellt385- Du vill ha enklast mojliga abstraktion med minimal boilerplate386- Inbyggd tracing och observability ar viktigt387388### Valj Claude Agent SDK om:389- Dina agenter behover lasa, skriva och exekvera kod390- Du vill ha forstklassig MCP-server-integration391- Du behover autonoma agenter som itererar och sjalvkorrigerar392- Du redan anvander Claude och vill ha den djupaste integrationen393394## Kan man kombinera ramverk?395396Ja. Ett vanligt monster ar att anvanda ett ramverk for orkestrering och ett annat for individuella agenter:397398- **LangGraph** for den overgripande workflow-grafen399- **CrewAI** for en specifik nod som kraver multi-agent-samarbete400- **Claude Agent SDK** for kodrelaterade deluppgifter via MCP401- **OpenAI Agents SDK** for kundriktad triage och routing402403Ramverken utesluter inte varandra. Anvand det som passar varje del av ditt system.404405## Slutsats406407Varje ramverk satsar pa en tydlig inriktning:408409- **LangGraph** optimerar for kontroll - du bestammer varje overgang410- **CrewAI** optimerar for samarbete - agenter arbetar som ett team411- **OpenAI Agents SDK** optimerar for enkelhet - minimal abstraktion, rena handoffs412- **Claude Agent SDK** optimerar for autonomi - ge det verktyg och lat det arbeta413414Ratt val beror pa din workflow, ditt team och din befintliga stack. Valj det som matchar ditt primara anvandningsfall, lar dig det ordentligt och dra in andra nar du traffar deras styrkor.415
:Agentic AI Frameworks i Jamforelse: LangGraph vs CrewAI vs OpenAI Agents SDK vs Claude Agent SDKlines 1-415 (END) — press q to close