CrewAI vs LangGraph vs AutoGen: Jak vybrat framework 2026
Volba mezi CrewAI, LangGraph a AutoGen není o tom, který z nich je lepší. Všechny tři jsou v dubnu 2026 produkčně použitelné, všechny mají MIT licenci a všechny umí volat libovolný model. Otázka zní: jakému programátorovi kód předáte za šest měsíců a jak moc se workflow bude větvit. Špatná volba vás bude stát 40–120 000 Kč za refaktor — přitom rozhodnutí se dá udělat za pět minut. Článek srovnává tři frameworky na jednom konkrétním scénáři, sestaví rozhodovací strom pro typické české situace a ukáže, kolik vás odpovídající licence a observability vyjde za rok v korunách.
Stručně — co si z článku odnést
- CrewAI = rychlý start. Role-based framework, 22 řádků kódu na třídění zákaznické podpory, první prototyp za den. Vhodné pro lineární workflow a pilot projekty, slabé na cykly a HITL.
- LangGraph = produkční state machine. Explicitní graf, checkpointing, interrupt/resume pro human-in-the-loop. Vyšší boilerplate (~45 řádků), ale jediný framework, co dává spánek v produkci s podmíněnými větvemi.
- AutoGen = pro Microsoft stack. Azure OpenAI nativně, multi-agent „konverzace" vzory, Studio GUI pro nekódující analytiky. V0.4 přepis přináší nativní podporu MCP nástrojů, ale dokumentace je zatím roztříštěná mezi v0.2 a v0.4 příklady.
1. Tři frameworky, tři mentální modely
Stručně: CrewAI myslí v rolích („analytik", „redaktor", „kontrolor"), LangGraph v uzlech a hranách stavového grafu, AutoGen v konverzacích mezi agenty. Každý model vás nutí strukturovat problém jinak a vybírá se podle toho, který tvar nejlíp sedí vaší úloze — ne podle popularity na GitHubu.
CrewAI vznikl v roce 2023 okolo jednoduché metafory: dáte programu tým lidí s popisem rolí a cílů, napíšete úkoly, stisknete spustit. Základní stavební bloky jsou čtyři třídy — Agent, Task, Crew a Process. Framework za vás řeší předávání kontextu mezi úkoly, volání modelu a základní retry logiku. Díky tomu je bariéra vstupu nejnižší ze tří — první crew napíšete za hodinu a funguje. Cena za jednoduchost je slabá kontrola nad cykly a složitějším řízením toku.
LangGraph od LangChainu jde opačnou cestou. Workflow modeluje jako orientovaný graf: definujete stav (Pydantic nebo TypedDict), uzly (funkce, které stav transformují) a hrany (včetně podmíněných). Framework explicitně ukládá stav po každém kroku do Checkpointeru (SQLite, Postgres, Redis), což umožňuje zastavit výpočet, vrátit se o krok zpátky nebo počkat na zásah člověka. Právě kvůli této produkční odolnosti ho vybírají firmy jako Harvey AI, Decagon a většina legal-tech nasazení, která v minulém kvartále publikovala architektonické postmortemy.
AutoGen vyšel z Microsoft Research v roce 2023 s tezí „agenti si mezi sebou povídají, aby vyřešili úlohu". Základní třídy jsou AssistantAgent (LLM), UserProxyAgent (člověk nebo jeho zástupce) a GroupChat (několikastranný dialog). Verze 0.4 (jaro 2025) framework přepsala na asynchronní event-driven architekturu, rozdělila ho na vrstvy autogen-core, autogen-agentchat a autogen-ext a přidala nativní podporu MCP (Model Context Protocol). Studio GUI umožňuje netechnickým analytikům sestavit agenta bez kódu, což je silná karta v Microsoft-centric organizacích. Pro čistě vizuální stavbu RAG aplikací a agentů bez kódu mimo Microsoft stack je dnes nejzralejší alternativou open-source platforma Dify.
Které tři otázky rozhodují o volbě
Než otevřete dokumentaci jakéhokoli frameworku, zodpovězte si tři otázky: (1) Potřebuje workflow cykly nebo podmíněné větve? (2) Je součástí procesu zásah člověka (schvalování, korektura)? (3) Na jaký stack vás váže firemní politika (Azure, AWS, vlastní on-premise)? Odpovědi na tyto tři otázky vedou přímo k verdiktu — rozhodovací strom dál v článku.
2. Srovnání deseti kritérií v jedné tabulce
Stručně: Všechny tři frameworky mají MIT licenci, všechny podporují nejpoužívanější modely a všechny jedou v Pythonu. Rozdíly leží v tom, jak explicitně řídíte stav, zda potřebujete TypeScript, jak dobré máte observabilní nástroje a kde najdete vývojáře. Tabulka níže shrnuje deset kritérií, která v praxi rozhodují o nákupu.
| Kritérium | CrewAI | LangGraph | AutoGen |
|---|---|---|---|
| Licence | MIT | MIT | MIT / Apache 2.0 (dle balíčku) |
| Podporované jazyky | Python | Python + TypeScript | Python + .NET (v0.4 core) |
| Mentální model | Role-playing (agent + task) | Stavový graf (node + edge) | Konverzace agentů (message bus) |
| State management | Implicitní context mezi tasky | Explicitní StateGraph + Checkpointer | Konverzační historie + sdílený kontext |
| Podmíněné větve a cykly | Slabé (Flows od v0.50 pomáhají) | Native (conditional_edges, loops) | Přes GroupChat manager / Swarm pattern |
| Human-in-the-loop | Vlastní callbacky, ruční | Native interrupt/resume | UserProxyAgent (dobré, ale synchronní) |
| Observabilita | AgentOps / Helicone / Langfuse | LangSmith native + OTel | OpenTelemetry tracing v0.4 |
| Deployment | FastAPI + Docker, CrewAI Enterprise | LangGraph Cloud nebo self-host | Azure Container Apps, Studio server |
| MCP podpora | Přes adaptér nástrojů (v0.80+) | Native (v0.2+) | Native v autogen-ext (v0.4) |
| CZ komunita a dostupnost vývojářů | Nejširší (LinkedIn 40+ profilů, CZ Discord) | Střední (25+ profilů, oficiální Discord) | Menší (15+ profilů, Microsoft MVP kanály) |
Tabulka vytváří dojem, že LangGraph je „univerzálně lepší" — native všechno, produkční nástroje, multi-jazykový. To je pravda v abstraktní rovině, ale každá z těchto schopností stojí řádky kódu, které v CrewAI neexistují. Rozdíl uvidíte nejrychleji na konkrétní implementaci, kterou ukazuje další sekce.
3. Stejný úkol, tři implementace
Stručně: Modelový úkol je triage příchozích zákaznických emailů: klasifikace (reklamace / dotaz / spam), vygenerování odpovědi a zaslání přes SMTP. Stejná logika, stejný model (Claude Haiku 4.5), tři frameworky. CrewAI: 22 řádků. LangGraph: 45 řádků. AutoGen: 30 řádků. Čím více boilerplate, tím více kontroly nad chováním.
CrewAI — 22 řádků
from crewai import Agent, Task, Crew
triage = Agent(
role="Email triage analyst",
goal="Klasifikuj email a navrhni odpověď",
backstory="Zkušený support agent v české SaaS firmě.",
llm="claude-haiku-4-5"
)
sender = Agent(
role="Email sender",
goal="Odešli odpověď přes SMTP",
tools=[smtp_send_tool],
llm="claude-haiku-4-5"
)
classify = Task(
description="Klasifikuj email: {email}. Vrať JSON {kategorie, odpovec}.",
agent=triage, expected_output="JSON"
)
send = Task(description="Odešli {odpovec} na {adresa}.", agent=sender)
crew = Crew(agents=[triage, sender], tasks=[classify, send])
crew.kickoff(inputs={"email": raw_email, "adresa": sender_addr})
LangGraph — 45 řádků
from typing import TypedDict
from langgraph.graph import StateGraph, END
from langgraph.checkpoint.sqlite import SqliteSaver
class State(TypedDict):
email: str
kategorie: str
odpovec: str
odeslano: bool
def classify(state: State) -> State:
out = llm.invoke(f"Klasifikuj: {state['email']}. JSON.")
return {**state, "kategorie": out["kategorie"], "odpovec": out["odpovec"]}
def send_node(state: State) -> State:
smtp_send(state["odpovec"])
return {**state, "odeslano": True}
def route(state: State) -> str:
if state["kategorie"] == "spam":
return END
return "send"
graph = StateGraph(State)
graph.add_node("classify", classify)
graph.add_node("send", send_node)
graph.set_entry_point("classify")
graph.add_conditional_edges("classify", route, {"send": "send", END: END})
graph.add_edge("send", END)
app = graph.compile(checkpointer=SqliteSaver.from_conn_string("runs.db"))
app.invoke({"email": raw_email}, config={"configurable": {"thread_id": "t1"}})
AutoGen — 30 řádků
from autogen_agentchat.agents import AssistantAgent, UserProxyAgent
from autogen_agentchat.teams import RoundRobinGroupChat
from autogen_ext.models.anthropic import AnthropicChatCompletionClient
model = AnthropicChatCompletionClient(model="claude-haiku-4-5")
triage = AssistantAgent(
name="triage",
model_client=model,
system_message="Klasifikuj email a navrhni odpověď v JSON."
)
sender = AssistantAgent(
name="sender",
model_client=model,
tools=[smtp_send_tool],
system_message="Odešli připravenou odpověď přes SMTP."
)
team = RoundRobinGroupChat([triage, sender], max_turns=2)
await team.run(task=f"Email: {raw_email}")
Kde leží ty extra řádky
LangGraph má o 23 řádků víc, protože explicitně modeluje stav (TypedDict), větvení (add_conditional_edges) a persistenci (SqliteSaver). Za to dostanete možnost výpočet kdykoli pozastavit, vrátit se o uzel zpět nebo nechat schválit odpověď člověkem, aniž byste přepisovali logiku. CrewAI a AutoGen tyto věci neřeší automaticky — musíte si je dopsat ručně, a ve chvíli, kdy je začnete dopisovat, skončíte u 50+ řádků kódu stejně. Rozdíl je v tom, kdy to budete dělat: hned nebo až ve čtvrtém měsíci produkce.
4. Rozhodovací strom: pět otázek, tři verdikty
Stručně: Pokud workflow obsahuje cykly nebo human-in-the-loop, volte LangGraph. Pokud jste v Microsoft ekosystému a potřebujete Studio GUI, volte AutoGen. Zbytek řeší CrewAI. Pět otázek stačí k rozhodnutí a dá se to udělat za pět minut.
Strom má záměrně jedno hluché místo: otázku, zda potřebujete konverzační multi-agent patterny (několik agentů, co si mezi sebou vyjednávají výstup — typicky debata, kritika, role recenzenta). Tam AutoGen stále drží výhodu přes GroupChat a nový Swarm, ale v produkci jde o menšinu úloh — většinu agentních nasazení v českých firmách tvoří jednodušší pipeline, kde jeden agent provede více kroků sekvenčně nebo podmíněně.
Pátá otázka, která strom nepokrývá: plánujete framework vyměnit za 12 měsíců? Pokud ano, CrewAI je férová volba i v situacích, kde „by se slušel" LangGraph — jednodušší kód se pohodlněji přepíše. Pokud ne, vyšší investice do LangGraphu dnes ušetří refaktor zítra.
5. Kolik to stojí: hodiny, koruny a refaktor
Stručně: Junior Python developer s dvouletou zkušeností zvládne první funkční CrewAI crew za jeden pracovní den (8–16 hodin). LangGraph vyžaduje ~týden (40–60 hodin), protože je potřeba pochopit modelování stavu a persistence. AutoGen se pohybuje uprostřed (24–40 hodin), ale čas ubíhá hledáním v0.4 příkladů mezi starými v0.2 tutoriály. Refaktor mezi frameworky dělá 40 000 Kč pro prototyp a 120 000 Kč pro produkční pipeline s 2–4 agenty.
| Položka | CrewAI | LangGraph | AutoGen |
|---|---|---|---|
| První prototyp (junior 2y Python) | 8–16 hodin | 40–60 hodin | 24–40 hodin |
| Produkční setup (logging, retry, deploy) | 40–60 hodin | 60–100 hodin | 60–80 hodin |
| Observability / 10 agentů / 10k runů měsíčně | AgentOps ~14 400 Kč/rok | LangSmith ~24 000 Kč/rok | OTel self-host (0 + ops) |
| Hosting (malý produkční workload) | Hetzner CX32 ~1 100 Kč/měs | LangGraph Cloud od ~2 400 Kč/měs, nebo stejný self-host | Azure Container Apps od ~1 800 Kč/měs |
| Refaktor na jiný framework (prototyp) | ~40 000 Kč | ~40 000 Kč | ~40 000 Kč |
| Refaktor produkčního pipeline (2–4 agenti, HITL) | ~120 000 Kč | ~120 000 Kč | ~120 000 Kč |
Kalkulace počítá s průměrnou sazbou 1 200 Kč/h pro středně zkušené Python vývojáře (trh 2026) a 70–100 hodinami refaktoru pro malý produkční pipeline. Skrytou položkou je čas na učení u LangGraphu: tým, který nikdy s grafem stavových strojů nepracoval, ztrácí prvních 20–30 hodin přestavbou mentálního modelu. U CrewAI tahle bariéra neexistuje, u AutoGenu je nižší, ale kompenzuje ji fragmentovaná dokumentace — juniorovi se snadno podaří sešít kód ze dvou nekompatibilních verzí a půl dne ladit kryptickou chybu.
Jeden varovný signál: LangSmith lock-in
LangGraph je technicky MIT licencovaný a fungoval by i bez LangSmithu, ale všechny oficiální tutoriály, návody k nasazení a produkční nástroje LangSmith předpokládají. Tým, který jede bez LangSmithu, píše si alternativní observabilitu nad OpenTelemetry sám — to je reálných ~40–80 hodin práce navíc. Cena LangSmithu začíná na 39 USD (~900 Kč) měsíčně za vývojáře; firemní ceník není veřejný. Pokud citlivě řešíte vendor lock-in, započítejte tenhle náklad rovnou, nebo se rovnou rozhodujte pro čistší CrewAI / AutoGen stack.
6. Pět typických českých situací a doporučení
Stručně: Většina českých agentních nasazení, se kterými se setkávají CZ konzultanti, spadá do pěti archetypů. Rozhodovací matice níže nejsou obecně platná pravda, ale aplikace stromu z předchozí sekce na reálné případy z trhu.
| Use-case | Doporučení | Proč |
|---|---|---|
| Automatizace fakturace a vyúčtování | CrewAI | Lineární pipeline (parsování → extrakce → validace → zaúčtování), bez cyklů, nízký HITL, obvykle OSVČ / účetní kancelář bez DevOps. |
| RAG chatbot pro klienty e-shopu | LangGraph | Potřeba rekurze (rewrite query → search → evaluate → rewrite), streaming odpovědí, možnost přerušit pro human review v eskalovaných případech. |
| Kódový asistent v IDE (MCP) | AutoGen | MCP nativně od v0.4, Microsoft ekosystém pro uživatele VS Code a GitHub Copilotu, Studio pro ladění před publikací nástroje. |
| Sales email sekvence s personalizací | CrewAI | Krátký workflow (research firma → draft → review → send), role „researcher + copywriter + editor" ladí s CrewAI mental modelem. |
| Extrakce dat ze smluv s právní kontrolou | LangGraph | Kritický HITL (právník schvaluje klauzuli), checkpoint po každé sekci smlouvy, možnost vrátit se a přepsat extrakci po připomínce. |
Matice potvrzuje intuici z předchozích sekcí: tři z pěti scénářů jsou CrewAI nebo LangGraph teritoriem, AutoGen vyhrává konkrétní nika (IDE kódový asistent). Pokud vaše situace nesedí do žádného archetypu, projděte znovu rozhodovací strom z předchozí sekce a ignorujte tuhle tabulku — váš případ je pravděpodobně unikátní.
Často kladené otázky
Podporují všechny tři frameworky Claude, GPT a Gemini?
Ano. CrewAI pod kapotou používá LiteLLM, takže stačí změnit řetězec modelu (claude-haiku-4-5, gpt-5-mini, gemini-2.5-flash). LangGraph volá modely přes LangChain adaptery (ChatAnthropic, ChatOpenAI, ChatGoogleGenerativeAI). AutoGen v0.4 má balíček autogen-ext.models s nativními klienty pro Anthropic, OpenAI, Azure OpenAI a přes LiteLLM i ostatní.
Je Model Context Protocol (MCP) podporován?
LangGraph má MCP podporu nativně od verze 0.2 (balíček langchain-mcp-adapters). AutoGen v0.4 také nativně přes autogen-ext.tools.mcp. CrewAI podporuje MCP přes tool adapter (od v0.80+), ale DX je zatím slabší — očekává se dorovnání v nadcházejících verzích.
Co streamování odpovědí tokenů v reálném čase?
LangGraph má streaming nativně na úrovni grafu (astream_events, astream_tokens) a je to nejlepší ze tří. AutoGen v0.4 streamuje asynchronně přes event bus. CrewAI podporuje token streaming od v0.70+, ale pouze u jednoho agenta současně — pro multi-agent crew zatím omezeno.
Kde najít české vývojáře pro tento stack?
LinkedIn vyhledávání v dubnu 2026 vrátilo v ČR 40+ profilů s „CrewAI" v dovednostech nebo projektech, 25+ s „LangGraph" a 15+ s „AutoGen". CrewAI komunita je dostupná i přes CZ AI Discord. LangGraph vývojáři obvykle mají LangChain na CV, takže reálný pool je širší. AutoGen profily koncentruje síť Microsoft MVP a partneři typu Unicorn / Keboola.
Nemá smysl si napsat vlastní framework místo těchto?
Pro jednoduchá lineární volání LLM s toolem ano — Python while smyčka s voláním SDK je 40 řádků a je spolehlivá. Framework začne dávat smysl, když potřebujete (a) tři a více kroků s předáváním kontextu, (b) persistenci stavu pro výpadky, (c) HITL, nebo (d) plánujete škálovat na deset agentů. Do té doby je holý kód pravděpodobně rozumnější volba — podrobně se tomu věnuje článek AI agenti v praxi: Proč 40 % projektů selhává.
Tři kroky, co udělat zítra ráno
Vyberte framework podle rozhodovacího stromu (pět minut). Nainstalujte ho a přepište jeden malý pipeline, který dnes řeší ruční rutina (půl dne). Teprve až pipeline běhá spolehlivě dva týdny, rozšiřte ho o druhého agenta nebo HITL krok. Postupné zavádění šetří refaktor — a refaktor je jediná položka v Kč tabulce, která roste lineárně s velikostí pipeline. Detailnější plán implementace AI do firemních procesů popisuje návod na zavedení AI do firmy bez chaosu, ekonomiku agentních volání pokrývá článek Náklady na AI API: Jak nekrvácet na tokenech.