AI agenti se presunuli z vyzkumnych dem do produnkcnich systemu. Ocekava se, ze vice nez 60 % podnikovych AI aplikaci bude do roku 2026 obsahovat agentni komponenty. Ale budovani agentu od nuly - sprava smycek nastroju, stavu, pameti, zpracovani chyb a koordinace vice agentu - je slozite. Prave proto existuji frameworky.
V roce 2026 dominuji ctyri frameworky: LangGraph, CrewAI, OpenAI Agents SDK a Claude Agent SDK. Kazdy z nich pristupuje k temuze problemu zasadne odlisnym zpusobem: dat modelum LLM schopnost uvazovat, planovat, pouzivat nastroje a spolupracovat.
V kostce
| Aspekt | LangGraph | CrewAI | OpenAI Agents SDK | Claude Agent SDK |
|---|---|---|---|---|
| Tvurce | LangChain | CrewAI Inc. | OpenAI | Anthropic |
| Architektura | Zalozena na grafech | Zalozena na rolich | Zalozena na predavani | Autonomni smycka |
| Filozofie | Maximalni kontrola | Tymova spoluprace | Minimalni abstrakce | Dejte agentovi pocitac |
| Jazyky | Python, TypeScript | Python | Python | Python, TypeScript |
| Podpora modelu | Libovolne (OpenAI, Claude, lokalni) | Libovolne | Libovolne (navzdory nazvu) | Pouze Claude |
| Hvezdicky na GitHubu | ~29k | ~40k | ~21k | ~6k |
| Nejlepsi pro | Slozite stavove workflow | Specializaci vice agentu | Routing a triaz | Kodovani a ulohy s praci se soubory |
LangGraph: Stavitel grafu
LangGraph modeluje workflow agentu jako orientovane cyklicke grafy. Definujete uzly (funkce, ktere provadeji praci) a hrany (prechody mezi nimi, volitelne podminene). Stav proteka grafem a je uchovavan prostrednictvim checkpointingu.
Toto je nejexplicitnejsi a nejlepe kontrolovatelny framework - kazdy krok zapojujete sami.
Klicove koncepty
- StateGraph: definice grafu s typovanym stavem
- Nodes: funkce Pythonu transformujici stav
- Edges: spojeni mezi uzly, mohou byt podminena
- Checkpointing: vestavena perzistence pro dlouho bezici workflow
Priklad 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?"}]})
Silne stranky
- Jemnozrnna kontrola nad kazdym krokem a prechodem
- Vestaveny checkpointing a human-in-the-loop
- Plna parita s TypeScriptem
- Funguje s libovolnym poskytovatelem LLM
- Nejlepsi pro slozite workflow s podminenym vetvenim a smyckami
Slabe stranky
- Strma krivka uceni - musite rozumet konceptum teorie grafu
- Upovdany pro jednoduche pripady - zakladni agent vyzaduje vice boilerplate kodu nez ostatni frameworky
- Ladeni toky grafu muze byt narocne bez LangSmith
Cenik
Open-source (MIT). LangSmith (spravovana platforma pozorovatelnosti) ma placene urovne pro produkcni monitoring.
CrewAI: Sestavovatel tymu
CrewAI pouziva lidskou metaforu: sestavite posadku specializovanych agentu, z nichz kazdy ma roli, cil a pribeh. Agenti spolupracuji na ulohach pomoci nastroju, koordinovani procesem (sekvencni, hierarchicky nebo konsensualni).
Predstavte si to jako najimani tymu, kde kazdy clen ma konkretni pracovni pozici a specializaci.
Klicove koncepty
- Agent: persona s roli, cilem, pribehem a nastroji
- Task: uloha s popisem, ocekavanym vystupem a prirazenym agentem
- Crew: skupina agentu pracujicich spolecne
- Process: strategie provadeni (sekvencni, hierarchicka, konsensualni)
- Flow: vrstva orchestrace rizena udalostmi pro propojeni vice posadek
Priklad 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)
Silne stranky
- Intuitivni abstrakce zalozena na rolich - snadne uvazovani
- Vice nez 100 vestavenych integraci nastroju
- Sdilena pamet mezi agenty (kratkodoba, dlouhodoba, entitni)
- Nejvetsi komunita (~40k hvezdicek na GitHubu)
- Hierarchicky proces s agentem "manazerem", ktery deleguje a validuje
Slabe stranky
- Mensi jemnozrnna kontrola nez LangGraph - definujete role, ne presne cesty provadeni
- Hierarchicky proces muze byt nepredvidatelny, kdyz se agenti neshodnou
- Ladeni konverzaci vice agentu je tezsi nez u toky jednoho agenta
Cenik
Open-source jadro (zdarma). CrewAI Platform: 99 $/mesic (Teams) az 120 tis. $/rok (Enterprise). Ceny zalozeny na aktivnich posadkach a mesicnich provedenich.
OpenAI Agents SDK: Router
OpenAI Agents SDK (duchovy nastupce Swarm) se zamruje na predavani - agenti predavaji konverzace jinym specializovanym agentum. Je to nejminimalnejsi framework: agenti, nastroje, predavani a guardrails. To je vse.
Klicove koncepty
- Agent: model + instrukce + nastroje + predavani
- Handoff: predani jinemu agentovi (modelovano jako nastroj, ktery LLM muze zavolat)
- Guardrail: validace vstupu/vystupu bezici paralelne s agentem
- Runner: provadi smycku agenta
- Tracing: vestavena pozorovatelnost pro vsechna volani LLM, vyuziti nastroju a predani
Priklad 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
Silne stranky
- Cisty vzor predavani - prirozeny pro workflow routingu/triaze
- Guardrails bezi paralelne s provadenim (fail-fast, neblokovaci)
- Vestaveny panel tracing pro ladeni
- Navzdory nazvu podporuje modely mimo OpenAI
- Minimalni abstrakce - snadne pochopeni a rozsireni
Slabe stranky
- Mene vyspela sprava stavu nez LangGraph
- Zadna vestavena perzistence ani checkpointing
- Ekosystem nastroju tretich stran je mensi
- Design zamereny na predavani nemusi sednou na kazdou architekturu
Cenik
Open-source (MIT). Platite za token za jakykoli model, ktery pouzivate.
Claude Agent SDK: Vyvojar
Claude Agent SDK zaujima odlisny pristup: namisto definovani workflow nebo roli date agentovi sadu nastroju a nechate ho vymyslet, jak ulohu splnit. Pouziva stejnou autonomni smycku, ktera pohani Claude Code - cist, jednat, overit, iterovat.
Klicove koncepty
- query(): hlavni vstupni bod, ktery spusti smycku agenta
- Vestavene nastroje: Read, Write, Edit, Bash, Glob, Grep, WebSearch, WebFetch
- Vlastni nastroje pres MCP: definice nastroju jako in-process MCP serveru
- Sub-agents: specializovani agenti, kterym muze rodicovsky agent delegovat
- Sessions: udrzovani kontextu napric vice interakcemi
Priklad 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); } }
Silne stranky
- Prvotrodni integrace MCP - pripojte se k libovolnemu ekosystemu MCP serveru
- Vestavene nastroje pro operace se soubory, terminal a pristup na web
- Automaticka kompaktace kontextu pro velke kodove baze
- Paralelni sub-agents pro slozite ulohy
- Stejny motor jako Claude Code - overeny v realnych vyvojarskych workflow
Slabe stranky
- Pouze modely Claude - zadna podpora vice poskytovatelu
- Novejsi framework s mensi komunitou
- Vyzaduje prostredi Node.js i pro Python SDK
- Mensi explicitni kontrola workflow ve srovnani s LangGraph
Cenik
Open-source. Standardni sazby za tokeny Claude API. Managed Agents (hostovana verze): 0,08 $ za hodinu relace plus naklady na tokeny.
Kdy zvolit ktery
Zvolte LangGraph, pokud:
- Potrebujete presnou kontrolu nad kazdym krokem workflow
- Vas pripad uziti zahrnuje slozitou podminenou logiku a smycky
- Chcete vestavenou perzistenci a checkpointy human-in-the-loop
- Potrebujete pouzivat vice poskytovatelu LLM ve stejnem workflow
Zvolte CrewAI, pokud:
- Chcete intuitivni abstrakci zalozenou na rolich
- Vase uloha zahrnuje vice agentu s odlisnymi specializacemi
- Potrebujete, aby agenti spolupracovali a predavali si kontext
- Cenite si nejvetsi komunity a nejvice vestavenych integraci
Zvolte OpenAI Agents SDK, pokud:
- Vasim primarnim vzorem je smerovani konverzaci ke specialistum
- Potrebujete guardrails validujici vstup/vystup paralelne
- Chcete co nejjednodussi abstrakci s minimalnim boilerplate kodem
- Vestaveny tracing a pozorovatelnost jsou dulezite
Zvolte Claude Agent SDK, pokud:
- Vasi agenti potrebuji cist, psat a spoustet kod
- Chcete prvotrodni integraci s MCP servery
- Potrebujete autonomni agenty, kteri iteruji a sami se opravuji
- Jiz pouzivate Claude a chcete nejhlubsi integraci
Lze frameworky kombinovat?
Ano. Castym vzorem je pouziti jednoho frameworku pro orchestraci a druheho pro jednotlive agenty:
- LangGraph pro celkovy graf workflow
- CrewAI pro konkretni uzel vyzadujici spolupraci vice agentu
- Claude Agent SDK pro podzadania souvisejici s kodovanim pres MCP
- OpenAI Agents SDK pro triaz a routing smerem ke klientum
Frameworky se navzajem nevylucuji. Pouzijte to, co se hodi pro kazdou cast vaseho systemu.
Zaver
Kazdy framework sazi na neco jineho:
- LangGraph optimalizuje pro kontrolu - vy rozhodujete o kazdem prechodu
- CrewAI optimalizuje pro spolupraci - agenti pracuji jako tym
- OpenAI Agents SDK optimalizuje pro jednoduchost - minimalni abstrakce, cista predavani
- Claude Agent SDK optimalizuje pro autonomii - dejte mu nastroje a nechte ho pracovat
Spravna volba zavisi na vasem workflow, vasem tymu a vasem stavajicim stacku. Vyberte ten, ktery odpovida vasemu primarnimu pripadu uziti, dobre se ho naucte a sahnete po dalsich, az narazite na jejich silnou stranku.