spinny:~/writing $ less agentic-ai-frameworks-comparison.md
12AI-ahenty pereishly vid doslidnytskykh demo do vyrobnychykh system. Ochikuietsia, shcho ponad 60% korporatyvnykh AI-zastosunkiv mistytymut ahentni komponenty do 2026 roku. Ale stvorennya ahentiv z nulya - keruvannya tsyklamy instrumentiv, stanom, pamiattiu, obrobka pomylok ta koordynatsiia bahatokh ahentiv - tse skladna zadacha. Same dlya tsoho isnuiut freimvorky.34U 2026 rotsi domynuiut chotyry freimvorky: **LangGraph**, **CrewAI**, **OpenAI Agents SDK** ta **Claude Agent SDK**. Kozhen z nykh zastosoviue pryntsypovo inshyi pidkhid do tiiiei samoii problemy: nadaty LLM zdatnist mirkuvaty, planuvaty, vykorystovuvaty instrumenty ta spivpratsiuvaty.56## Korotkyi ohliad78| Aspekt | LangGraph | CrewAI | OpenAI Agents SDK | Claude Agent SDK |9|--------|-----------|--------|-------------------|-----------------|10| **Rozrobnyk** | LangChain | CrewAI Inc. | OpenAI | Anthropic |11| **Arkhitektura** | Na osnovi hrafiv | Na osnovi rolei | Na osnovi peredach | Avtonomnyi tsykl |12| **Filosofiia** | Maksymalnyi kontrol | Komandna spivpratsia | Minimalna abstraktsiia | Dai ahentu kompiuter |13| **Movy** | Python, TypeScript | Python | Python | Python, TypeScript |14| **Pidtrymka modelei** | Bud-yaki (OpenAI, Claude, lokalni) | Bud-yaki | Bud-yaki (nezvazhaiuchy na nazvu) | Tilky Claude |15| **Zirky na GitHub** | ~29k | ~40k | ~21k | ~6k |16| **Naykrashche dlya** | Skladnykh workflow zi stanom | Spetsializatsiii bahatokh ahentiv | Routynhu ta triazhu | Koduvannya ta zavdan z failamy |1718## LangGraph: Budivnyk hrafiv1920LangGraph modeliuie workflow ahentiv yak **oriientovani tsyklichni hrafy**. Vy vyznachaiete vuzly (funktsiii, shcho vykonuiut robotu) ta rebra (perekhody mizh nymy, za bazhannyam umovni). Stan protikaiie cherez hraf i zberihaietsia cherez checkpointing.2122Tse naibilsh yavnyi ta kontrolovanyi freimvork - vy sami pidkliuchaiete kozhen krok.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### Kliuchovi kontseptsiii3536- **StateGraph**: vyznachennya hrafu z typizovanym stanom37- **Nodes**: funktsiii Python, shcho peretvoruiut stan38- **Edges**: zviazky mizh vuzlamy, mozhut buty umovnymy39- **Checkpointing**: vbudovana postiinist dlya tryvalo pratsiuiuchykh workflow4041### Pryklad kodu4243```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### Sylni storony7980- Detalnyy kontrol nad kozhnym krokom ta perekhodom81- Vbudovanyi checkpointing ta human-in-the-loop82- Povna parnist z TypeScript83- Pratsiuie z bud-yakym provayderom LLM84- Naykrashche dlya skladnykh workflow z umovnym haluzhennyam ta tsyklamy8586### Slabki storony8788- Kruta kryva navchannya - potribno rozumity kontseptsiii teoriii hrafiv89- Bahato kodu dlya prostykh vypadkiv - bazovyi ahent potrebuie bilshe boilerplate, nizh inshi freimvorky90- Vidladka potokiv hrafiv mozhe buty skladnoiu bez LangSmith9192### Tsiny9394Open-source (MIT). LangSmith (kerovana platforma sposterezhuvanosti) maie platni plany dlya vyrobnochoho monitorynhu.9596## CrewAI: Tvorets komand9798CrewAI vykorystoviuie liudsku metaforu: vy zbyrayte **komandu** spetsializovanykh ahentiv, kozhen z **rolliu**, **metoiu** ta **peredistoriieiu**. Ahenty spivpratsiuiut nad **zavdannyamy** za dopomohoiu **instrumentiv**, koordynovani **protsesom** (poslidovnym, iierarkhichnym abo konsensusnym).99100Uiavit tse yak naim komandy, de kozhen uchasnyk maie vyznachenu posadu ta spetsializatsiiu.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### Kliuchovi kontseptsiii114115- **Agent**: persona z rolliu, metoiu, peredistoriieiu ta instrumentamy116- **Task**: zavdannya z opysom, ochikuvanym rezultatom ta pryznachenym ahentom117- **Crew**: hrupa ahentiv, shcho pratsiuiut razom118- **Process**: stratehiia vykonannya (poslidovna, iierarkhichna, konsensusna)119- **Flow**: riven orkestraciii na osnovi podii dlya ziednannya kilkokh komand120121### Pryklad kodu122123```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### Sylni storony171172- Intuitivna abstraktsiia na osnovi rolei - lehko zrozumity173- Ponad 100 vbudovanykh intehratsii instrumentiv174- Spilna pamiat mizh ahentamy (korotkostrokova, dovhostrokova, sutnnostei)175- Naibilsha spilnota (~40k zirok na GitHub)176- Iierarkhichnyi protses z ahentom-"menedzherom", yakyi delehuie ta validuie177178### Slabki storony179180- Mensh detalnyy kontrol, nizh u LangGraph - vy vyznachaiete roli, a ne tochni shlyakhy vykonannya181- Iierarkhichnyi protses mozhe buty neperedbachuvanym, koly ahenty ne pohodzhuiutsia182- Vidladka rozmov bahatokh ahentiv skladnisha, nizh potokiv odnoho ahenta183184### Tsiny185186Open-source yadro (bezkoshtovno). CrewAI Platform: 99 $/misiats (Teams) do 120 tys. $/rik (Enterprise). Tsiny zalezhat vid aktyvnykh komand ta shchomisiachnykh vykonan.187188## OpenAI Agents SDK: Router189190OpenAI Agents SDK (dukhovnyi naslidnyk Swarm) foksuietsia na **peredachakh** - ahenty peredaiut rozmovy inshym spetsializovanym ahentam. Tse naibilsh minimalistychnyi freimvork: ahenty, instrumenty, peredachi ta guardrails. Ot i vse.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### Kliuchovi kontseptsiii204205- **Agent**: model + instruktsiii + instrumenty + peredachi206- **Handoff**: peredacha inshomu ahentu (modeliuietsia yak instrument, yakyi LLM mozhe vyklykaty)207- **Guardrail**: validatsiia vkhodu/vykhodu, shcho zapuskaiietsia parallelno z ahentom208- **Runner**: vykonuie tsykl ahenta209- **Tracing**: vbudovana sposterezhuvanist dlya vsikh vyklykiv LLM, vykorystannya instrumentiv ta peredach210211### Pryklad kodu212213```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### Sylni storony258259- Chystyi patttern peredach - pryrodnyii dlya workflow routynhu/triazhu260- Guardrails pratsiuiut parallelno z vykonannyam (fail-fast, ne blokuiuchi)261- Vbudovana panel tracing dlya vidladky262- Nezvazhaiuchy na nazvu, pidtrymuie modeli ne vid OpenAI263- Minimalna abstraktsiia - lehko zrozumity ta rozshyryty264265### Slabki storony266267- Mensh zrile keruvannya stanom, nizh u LangGraph268- Nemaie vbudovanoii postiiinosti chy checkpointynhu269- Ekosystema instrumentiv tretiikh storin mensha270- Dyzain, oriientovanyi na peredachi, mozhe ne pidkhodty do kozhnoi arkhitektury271272### Tsiny273274Open-source (MIT). Vy platyte za token za bud-yaku model, yaku vykorystovuiete.275276## Claude Agent SDK: Rozrobnyk277278Claude Agent SDK zastosoviuie inshyi pidkhid: zamist vyznachennya workflow chy rolei vy daiete ahentu **nabir instrumentiv i dozvolaiete yomu samomu z'yasuvaty, yak vykonaty zavdannya**. Vin vykorystoviuie toi samyi avtonomnyi tsykl, shcho napovniuie Claude Code - chytai, dii, pereviryai, iterui.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### Kliuchovi kontseptsiii291292- **query()**: holovna tochka vkhodu, shcho zapuskaie tsykl ahenta293- **Vbudovani instrumenty**: Read, Write, Edit, Bash, Glob, Grep, WebSearch, WebFetch294- **Korstuvanski instrumenty cherez MCP**: vyznachennya instrumentiv yak in-process MCP serveriv295- **Sub-agents**: spetsializovani ahenty, yakym batkivskyi mozhe delehuvaty296- **Sessions**: pidtrymannya kontekstu mizh kilkoma vzaiemodiiamy297298### Pryklad kodu299300```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### Sylni storony336337- Pershokklasna intehratsiia MCP - pidkliuchaytesia do bud-yakoi ekosystemy MCP serveriv338- Vbudovani instrumenty dlya failovykh operatsii, terminalu ta dostupu do merezhi339- Avtomatychne stysnennya kontekstu dlya velykykh kodovykh baz340- Paralelni sub-agents dlya skladnykh zavdan341- Toi samyi rushtii, shcho y Claude Code - perevirrenyi na realnykh workflow rozrobky342343### Slabki storony344345- Tilky modeli Claude - nemaie pidtrymky bahatokh provaideriv346- Novishyi freimvork z menshoiu spilnotoiu347- Potrebuie seredovyshche Node.js navit dlya Python SDK348- Mensh yavnyi kontrol workflow porivnyano z LangGraph349350### Tsiny351352Open-source. Standartni tarify za tokeny Claude API. Managed Agents (khostynhova versiia): 0,08 $ za hodynu sesiii plius vartist tokeniv.353354## Koly obraty yakyi355356```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### Oberit LangGraph, yakshcho:371- Vam potriben tochnyy kontrol nad kozhnym krokom workflow372- Vash vypadok vykorystannya vkliuchaie skladnu umovnu lohiku ta tsykly373- Vy khochete vbudovanu postiinist ta checkpointy human-in-the-loop374- Vam potribno vykorystovuvaty kilka provaideriv LLM v odnomu workflow375376### Oberit CrewAI, yakshcho:377- Vy khochete intuityvnu abstraktsiiu na osnovi rolei378- Vashe zavdannya vkliuchaie kilkokh ahentiv z riznymy spetsializatsiiamy379- Vam potribno, shchob ahenty spivpratsiuvaly ta peredavaly odyn odnomu kontekst380- Vy tsiniuiete naibilshu spilnotu ta naibilshu kilkist vbudovanykh intehratsii381382### Oberit OpenAI Agents SDK, yakshcho:383- Vash osnovnyi pattern - marshrutyzatsiia rozmov do spetsialistiv384- Vam potribni guardrails, shcho validuiut vkhid/vykhid parallelno385- Vy khochete naiprostishu mozhlyvu abstraktsiiu z minimalnym boilerplate386- Vbudovanyi tracing ta sposterezhuvanist vazhlyvi387388### Oberit Claude Agent SDK, yakshcho:389- Vashi ahenty povynni chytaty, pysaty ta vykonuvaty kod390- Vy khochete pershokklasnu intehratsiiu z MCP serveramy391- Vam potribni avtonomni ahenty, shcho iteruiut ta samokorehluiutsia392- Vy vzhe vykorystovuiete Claude i khochete nayhlyibshu intehratsiiu393394## Chy mozhna kombinuvaty freimvorky?395396Tak. Poshyrenyi pattern - vykorystannya odnoho freimvorku dlya orkestraciii ta inshoho dlya okremykh ahentiv:397398- **LangGraph** dlya zahalnoho hrafu workflow399- **CrewAI** dlya konkretnoho vuzla, shcho potrebuie spivpratsi bahatokh ahentiv400- **Claude Agent SDK** dlya pidzavdan, poviazanykh z koduvanniam, cherez MCP401- **OpenAI Agents SDK** dlya triazhu ta routynhu na bsotsi kliienta402403Freimvorky ne vykliuchaiut odyn odnoho. Vykorystovuite te, shcho pidkhodyt do kozhnoii chastyny vashoii systemy.404405## Vysnovok406407Kozhen freimvork robytt chitkyi vybir:408409- **LangGraph** optymizuie kontrol - vy vyrishuiete kozhen perekhid410- **CrewAI** optymizuie spivpratsiiu - ahenty pratsiuiut yak komanda411- **OpenAI Agents SDK** optymizuie prostotu - minimalna abstraktsiia, chysti peredachi412- **Claude Agent SDK** optymizuie avtonomiiu - daite yomu instrumenty i dozvolte pratsiuvaty413414Pravylnyi vybir zalezhyt vid vashoho workflow, vashoii komandy ta vashoho isnuiuchoho steku. Oberit toi, shcho vidpovidaie vashomu osnovnomu vypadku vykorystannya, dobre vyvchit yoho ta pidkliuchit inshi, koly natrapyte na yikhniu sylnu storonu.415
:Porivnyannya freimvorkiv Agentic AI: LangGraph vs CrewAI vs OpenAI Agents SDK vs Claude Agent SDKlines 1-415 (END) — press q to close