AI-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.
U 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.
Korotkyi ohliad
| Aspekt | LangGraph | CrewAI | OpenAI Agents SDK | Claude Agent SDK |
|---|---|---|---|---|
| Rozrobnyk | LangChain | CrewAI Inc. | OpenAI | Anthropic |
| Arkhitektura | Na osnovi hrafiv | Na osnovi rolei | Na osnovi peredach | Avtonomnyi tsykl |
| Filosofiia | Maksymalnyi kontrol | Komandna spivpratsia | Minimalna abstraktsiia | Dai ahentu kompiuter |
| Movy | Python, TypeScript | Python | Python | Python, TypeScript |
| Pidtrymka modelei | Bud-yaki (OpenAI, Claude, lokalni) | Bud-yaki | Bud-yaki (nezvazhaiuchy na nazvu) | Tilky Claude |
| Zirky na GitHub | ~29k | ~40k | ~21k | ~6k |
| Naykrashche dlya | Skladnykh workflow zi stanom | Spetsializatsiii bahatokh ahentiv | Routynhu ta triazhu | Koduvannya ta zavdan z failamy |
LangGraph: Budivnyk hrafiv
LangGraph 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.
Tse naibilsh yavnyi ta kontrolovanyi freimvork - vy sami pidkliuchaiete kozhen krok.
Kliuchovi kontseptsiii
- StateGraph: vyznachennya hrafu z typizovanym stanom
- Nodes: funktsiii Python, shcho peretvoruiut stan
- Edges: zviazky mizh vuzlamy, mozhut buty umovnymy
- Checkpointing: vbudovana postiinist dlya tryvalo pratsiuiuchykh workflow
Pryklad kodu
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?"}]})
Sylni storony
- Detalnyy kontrol nad kozhnym krokom ta perekhodom
- Vbudovanyi checkpointing ta human-in-the-loop
- Povna parnist z TypeScript
- Pratsiuie z bud-yakym provayderom LLM
- Naykrashche dlya skladnykh workflow z umovnym haluzhennyam ta tsyklamy
Slabki storony
- Kruta kryva navchannya - potribno rozumity kontseptsiii teoriii hrafiv
- Bahato kodu dlya prostykh vypadkiv - bazovyi ahent potrebuie bilshe boilerplate, nizh inshi freimvorky
- Vidladka potokiv hrafiv mozhe buty skladnoiu bez LangSmith
Tsiny
Open-source (MIT). LangSmith (kerovana platforma sposterezhuvanosti) maie platni plany dlya vyrobnochoho monitorynhu.
CrewAI: Tvorets komand
CrewAI 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).
Uiavit tse yak naim komandy, de kozhen uchasnyk maie vyznachenu posadu ta spetsializatsiiu.
Kliuchovi kontseptsiii
- Agent: persona z rolliu, metoiu, peredistoriieiu ta instrumentamy
- Task: zavdannya z opysom, ochikuvanym rezultatom ta pryznachenym ahentom
- Crew: hrupa ahentiv, shcho pratsiuiut razom
- Process: stratehiia vykonannya (poslidovna, iierarkhichna, konsensusna)
- Flow: riven orkestraciii na osnovi podii dlya ziednannya kilkokh komand
Pryklad kodu
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)
Sylni storony
- Intuitivna abstraktsiia na osnovi rolei - lehko zrozumity
- Ponad 100 vbudovanykh intehratsii instrumentiv
- Spilna pamiat mizh ahentamy (korotkostrokova, dovhostrokova, sutnnostei)
- Naibilsha spilnota (~40k zirok na GitHub)
- Iierarkhichnyi protses z ahentom-"menedzherom", yakyi delehuie ta validuie
Slabki storony
- Mensh detalnyy kontrol, nizh u LangGraph - vy vyznachaiete roli, a ne tochni shlyakhy vykonannya
- Iierarkhichnyi protses mozhe buty neperedbachuvanym, koly ahenty ne pohodzhuiutsia
- Vidladka rozmov bahatokh ahentiv skladnisha, nizh potokiv odnoho ahenta
Tsiny
Open-source yadro (bezkoshtovno). CrewAI Platform: 99 $/misiats (Teams) do 120 tys. $/rik (Enterprise). Tsiny zalezhat vid aktyvnykh komand ta shchomisiachnykh vykonan.
OpenAI Agents SDK: Router
OpenAI 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.
Kliuchovi kontseptsiii
- Agent: model + instruktsiii + instrumenty + peredachi
- Handoff: peredacha inshomu ahentu (modeliuietsia yak instrument, yakyi LLM mozhe vyklykaty)
- Guardrail: validatsiia vkhodu/vykhodu, shcho zapuskaiietsia parallelno z ahentom
- Runner: vykonuie tsykl ahenta
- Tracing: vbudovana sposterezhuvanist dlya vsikh vyklykiv LLM, vykorystannya instrumentiv ta peredach
Pryklad kodu
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
Sylni storony
- Chystyi patttern peredach - pryrodnyii dlya workflow routynhu/triazhu
- Guardrails pratsiuiut parallelno z vykonannyam (fail-fast, ne blokuiuchi)
- Vbudovana panel tracing dlya vidladky
- Nezvazhaiuchy na nazvu, pidtrymuie modeli ne vid OpenAI
- Minimalna abstraktsiia - lehko zrozumity ta rozshyryty
Slabki storony
- Mensh zrile keruvannya stanom, nizh u LangGraph
- Nemaie vbudovanoii postiiinosti chy checkpointynhu
- Ekosystema instrumentiv tretiikh storin mensha
- Dyzain, oriientovanyi na peredachi, mozhe ne pidkhodty do kozhnoi arkhitektury
Tsiny
Open-source (MIT). Vy platyte za token za bud-yaku model, yaku vykorystovuiete.
Claude Agent SDK: Rozrobnyk
Claude 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.
Kliuchovi kontseptsiii
- query(): holovna tochka vkhodu, shcho zapuskaie tsykl ahenta
- Vbudovani instrumenty: Read, Write, Edit, Bash, Glob, Grep, WebSearch, WebFetch
- Korstuvanski instrumenty cherez MCP: vyznachennya instrumentiv yak in-process MCP serveriv
- Sub-agents: spetsializovani ahenty, yakym batkivskyi mozhe delehuvaty
- Sessions: pidtrymannya kontekstu mizh kilkoma vzaiemodiiamy
Pryklad kodu
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); } }
Sylni storony
- Pershokklasna intehratsiia MCP - pidkliuchaytesia do bud-yakoi ekosystemy MCP serveriv
- Vbudovani instrumenty dlya failovykh operatsii, terminalu ta dostupu do merezhi
- Avtomatychne stysnennya kontekstu dlya velykykh kodovykh baz
- Paralelni sub-agents dlya skladnykh zavdan
- Toi samyi rushtii, shcho y Claude Code - perevirrenyi na realnykh workflow rozrobky
Slabki storony
- Tilky modeli Claude - nemaie pidtrymky bahatokh provaideriv
- Novishyi freimvork z menshoiu spilnotoiu
- Potrebuie seredovyshche Node.js navit dlya Python SDK
- Mensh yavnyi kontrol workflow porivnyano z LangGraph
Tsiny
Open-source. Standartni tarify za tokeny Claude API. Managed Agents (khostynhova versiia): 0,08 $ za hodynu sesiii plius vartist tokeniv.
Koly obraty yakyi
Oberit LangGraph, yakshcho:
- Vam potriben tochnyy kontrol nad kozhnym krokom workflow
- Vash vypadok vykorystannya vkliuchaie skladnu umovnu lohiku ta tsykly
- Vy khochete vbudovanu postiinist ta checkpointy human-in-the-loop
- Vam potribno vykorystovuvaty kilka provaideriv LLM v odnomu workflow
Oberit CrewAI, yakshcho:
- Vy khochete intuityvnu abstraktsiiu na osnovi rolei
- Vashe zavdannya vkliuchaie kilkokh ahentiv z riznymy spetsializatsiiamy
- Vam potribno, shchob ahenty spivpratsiuvaly ta peredavaly odyn odnomu kontekst
- Vy tsiniuiete naibilshu spilnotu ta naibilshu kilkist vbudovanykh intehratsii
Oberit OpenAI Agents SDK, yakshcho:
- Vash osnovnyi pattern - marshrutyzatsiia rozmov do spetsialistiv
- Vam potribni guardrails, shcho validuiut vkhid/vykhid parallelno
- Vy khochete naiprostishu mozhlyvu abstraktsiiu z minimalnym boilerplate
- Vbudovanyi tracing ta sposterezhuvanist vazhlyvi
Oberit Claude Agent SDK, yakshcho:
- Vashi ahenty povynni chytaty, pysaty ta vykonuvaty kod
- Vy khochete pershokklasnu intehratsiiu z MCP serveramy
- Vam potribni avtonomni ahenty, shcho iteruiut ta samokorehluiutsia
- Vy vzhe vykorystovuiete Claude i khochete nayhlyibshu intehratsiiu
Chy mozhna kombinuvaty freimvorky?
Tak. Poshyrenyi pattern - vykorystannya odnoho freimvorku dlya orkestraciii ta inshoho dlya okremykh ahentiv:
- LangGraph dlya zahalnoho hrafu workflow
- CrewAI dlya konkretnoho vuzla, shcho potrebuie spivpratsi bahatokh ahentiv
- Claude Agent SDK dlya pidzavdan, poviazanykh z koduvanniam, cherez MCP
- OpenAI Agents SDK dlya triazhu ta routynhu na bsotsi kliienta
Freimvorky ne vykliuchaiut odyn odnoho. Vykorystovuite te, shcho pidkhodyt do kozhnoii chastyny vashoii systemy.
Vysnovok
Kozhen freimvork robytt chitkyi vybir:
- LangGraph optymizuie kontrol - vy vyrishuiete kozhen perekhid
- CrewAI optymizuie spivpratsiiu - ahenty pratsiuiut yak komanda
- OpenAI Agents SDK optymizuie prostotu - minimalna abstraktsiia, chysti peredachi
- Claude Agent SDK optymizuie avtonomiiu - daite yomu instrumenty i dozvolte pratsiuvaty
Pravylnyi 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.