LangGraph, CrewAI ці Google ADK? Адна задача для двух агентаў, тры фрэймворкі
Параўноўваем LangGraph, CrewAI і Google ADK, будуючы аднолькавую пару «даследчык–аўтар», і выбіраем праз пяць пытанняў пра кантроль, хуткасць і A2A.
Крыніцы: LangGraph vs CrewAI vs Google ADK: I Built the Same Agent Three Times
Порэванаўненні фрэймворкаў зазвычай адбываюцца на аднай шаблонаце: сетка фічар, абаротка па калоне і вынік, які не прымыкае нічога. Гэта не дапамагае тым, хто стоіць на розвітку і павінен выбраць варыянт і рухацца далей. Порэванаўненне тут пабудавана на стварэнні таго ж маленькага сістэмы ў LangGraph, CrewAI і Google ADK, таму разлікі выклікаюцца кодам і компромісамі, а не спецыфікацыямі.
Тры псіхалагічныя модэлі
Короткая падготовка пры перадпрыемстве коду:
- LangGraph — гэта коробка з кялечкамі Lego. Кожны вузол, рэшта і умовныя галузі чыста адзначаюцца. Ён дае максымальную контроль і мае найвышэйшы крэвак навучэння.
- CrewAI — гэта заранее сформавленная кампанія, якая запытае, што яе трэба робіць. Указуюцца ролі і цялевыя пункты, а фрэймворк абавяе коордынацыю. Гэта найшырэшы шлях да рабочага пратотыпа, пры чым меньша можлівасць кантролю над тым, як агенты перадаюць працу аднам другам.
- Google ADK працуе як апынавальны інжынер. Ён апоўнены справамі, мае стан, а таксама падтрымка абзірнасці, тэставання і грацыязныя способы адборкі, плюс жорсткія звязкі з Google Cloud і Gemini.
Нічыя з гэтых пунктов не ўжо крытыка. Гэта разныя падходы да таго, калі большасці распрацоўшчыкаў патрэбна большая частка часу.
Заданне на тэст
Кожная платформа выпало тое ж сама задача: доследнік збірае матэрыялы, а потым пісьменнік ператварае іх у гэтыт канечны адказ, таму пісьменнік не можа прыступіць да працы, пакуль доследнік не завершыць сваю работу. Маршрутызатор у стылі кансультанта мог бы адначынальна кераваць гэтым працэсам, што робіць яго справедлівым крэтырыем для адлічэння, наскількі разнарава кожны інструмент выражае той самы алгорытм.
LangGraph
Спачатку імпортуецца:
from langgraph.graph import StateGraph, END
from typing import TypedDict
Потым — стан упорадкованы, вузлы і явныя рэгістры:
class State(TypedDict):
query: str
research: str
final_answer: str
def research_node(state: State) -> State:
# Call your research agent/tool here
state["research"] = f"Research findings for: {state['query']}"
return state
def writer_node(state: State) -> State:
# Call your writer agent, using state["research"]
state["final_answer"] = f"Final answer using: {state['research']}"
return state
graph = StateGraph(State)
graph.add_node("research", research_node)
graph.add_node("writer", writer_node)
graph.set_entry_point("research")
graph.add_edge("research", "writer")
graph.add_edge("writer", END)
app = graph.compile()
result = app.invoke({"query": "What is agentic AI?"})
Усі рэбра тут накрэшаны вручную. На кожным кроку чытна, што будзе далей, і гэта ўсё, што дае LangGraph: дадатковы код з самага пачатку у обмен на контрольны прайсупутак, які фрэймворк ніколі не стварае імпровізавана.
CrewAI
from crewai import Agent, Task, Crew
Далей іду агенты і задачы:
researcher = Agent(
role="Research Specialist",
goal="Find accurate information on the given topic",
backstory="An expert at gathering and synthesizing information."
)
writer = Agent(
role="Content Writer",
goal="Write a clear final answer using research findings",
backstory="An expert at turning research into clear prose."
)
research_task = Task(
description="Research: {query}",
agent=researcher,
expected_output="A summary of relevant findings"
)
writing_task = Task(
description="Write a final answer using the research",
agent=writer,
expected_output="A clear, well-written final answer",
context=[research_task]
)
crew = Crew(agents=[researcher, writer], tasks=[research_task, writing_task])
result = crew.kickoff(inputs={"query": "What is agentic AI?"})
Зверніце ўвагу на тое, чаго няма пасля LangGraph: ніхто не практыкуе строўлення графа чы не спаўнае рэбра. Код чыста вказвае, хто адпаведае за шта, а логіка працы CrewAI сама перадае рэзультат доследжэння ў задачу напісання. Чыбаўце працоспроможная версія ствараецца за значна менш час — адносна двадцяты хвілін, калі ужо звычны патэрн.
Google ADK
from google.adk.agents import Agent
from google.adk.runners import Runner
research_agent = Agent(
name="researcher",
model="gemini-2.0-flash",
instruction="Research the given topic thoroughly and return findings.",
)
writer_agent = Agent(
name="writer",
model="gemini-2.0-flash",
instruction="Write a clear final answer using the research findings provided.",
sub_agents=[research_agent] # hierarchical relationship
)
runner = Runner(agent=writer_agent, app_name="research_writer_app")
result = runner.run(user_id="user1", session_id="session1",
new_message="What is agentic AI?")
Паглядзіце на поле sub_agents. ADK будуецца на іерархіі «родак-дзеця», якая функцыонуе на адпаведных запусках, а час яе працы керуе цыклам, якія пераходзяць між прыходзячымі запросамі, вызовамі модэляў і запускамі інструментаў. Ён знаходзіцца між ручна прадуманай схемай з’ўязкаў у LangGraph і неявной коордынацыяй у CrewAI: у вас ёсць іерархія, але большая частка тэхнічных аспектаў адбываецца сама, на вядома больш, чым у LangGraph.
У чым яны насправды разлічаюцца
Простыя прыклады выглядаюць падражна схожымі. Разлікі стаюць віднымі пасля этапы пратотыпа.
Контроль і можлівасць спостэрэння. LangGraph шырокаю чынам служыць найболей падготавленым выборам для складных, розгалужаных рабочых практык. Функцыі стварэння кэш-пунктав і стабільнага выканання ўжо ўбудованы, і, як паведамляецца, Klarna выкарыстоўвае яго для 85 мільйонаў корыстувачаў. Такое прымененне ў рэальных умовах ўсё, што трэба, без дапамогі якога-лібо спіску функцый. Жорсткай сторонай являецца крывая навучэння, якая ў трох варыянтаў ёсць найстрыжэйшая самэлькі таму, што контроль у яму ўсё бол явны.
Швальнасць стварэння першага пратотыпа. CrewAI стабільна выграўа. Для стварэння першай багата-агентнай сістэмы або швыраг перагляду ідэі яго абстракцыя на адной засадзе ролей дапамагае якомога шырэйша запусціць працэс. Аднак тая ж высокага рэвэля абстракцыя стае пераканаўленнем, калі логіка коордынацыі становіцца складней, адтуды ёсць менш дзеяльны контроль над тым, калі і як агенты перадаюць задачы.
Патрэбныя для корпаратыў і мовы. ADK стала доступная для шырокага вжытку у 2026 годзе і падчас гэтага змяніла свой падход, заменіўшы свой іерархічны екзэкутар на дварожневы двыжак, які і быў основай дызайну LangGraph з самага пачатку. Яго справжняе прызначэнне крыўдзіцца ў іншым. Ён падтрымлівае больш мов, чым які-небудзь з канкурэнтных раўнарадных рашэнняў (Python, TypeScript, Go, Java, Kotlin), можа без працы інтэгрувацца з Gemini і Google Cloud для команд, якія ужо іх вжываюць, а таксама мае у сабе інструменты для ацэнкі, якіх няма ў LangGraph і CrewAI.
Размовы між разнымі фрэймворкамі. Лічна колькасць порэванаў згадвае гэты аспект. ADK адразу падтрымляе протакол Agent2Agent (A2A), таму агент, напісаны ў зусім іншым фрэймворку, можа адмаўляцца паведамленнямі з яным, а падпісаныя карткі агента забезпечваюць крыптаграфічную пераверку. Калі сістэма павінна вызваць агента, які належыць прадавцу чыя-небудзь партнеру, A2A выполняе для агента тое ж, што MCP выполняе для інструментаў: ён стандартызуе абмен паведамленнямі між двума агентамі, а не між агентам і інструментам.
Эфектыўнасць токенаў. І тут існуе значны разлік. Тэсты, якія выканалі тыя ж задачы за дапамогою LangGraph і CrewAI, паказалі, што LangGraph выкарыстоўвае значна менш токенаў. Оерагоднае падстава — у LangGraph ёсць чыста выражаныя шляхі перэдачы дадзенняў, тады як CrewAI паверае рутаванне задач LLM, і кожны з гэтых неявных варыянтав рутавання ўскладнюе працу мадэлі. У будзь-якім случае за гэтыя рашэнні ктосьці трэба плаціць.
Выбір па парадку
Не адзіраюцеся табліцамі з функцыямі, а спытайцеся гэтыя пытанні па адраджэнні:
- Патрэбна шырока працэўная версія, ці гэта першы багатаяговы сістэма? Выберыце CrewAI. Гэта якнайшырэшы шлях да працюючага рашэння, і гэты выбор можна будзе пераглядзець, калі логіка коордынацыі пакажацца складной.
- Патрэбна максымальная контроль над розгалужэннямі, чыстым направленнем памылак чы ўчастаннем чалавека ў процэсе? Выберыце LangGraph. Калі направлення ёсць сложным, вы хочаце самі кераваць кожным элементам, а не даваць гэта права логіцы фрэймворку.
- Вы ужо выкарыстоўваеце Google Cloud, чы патрэбны языкі, кроме Python? Выберыце Google ADK. Натыўнае інтэграцыя з Gemini і Cloud усунеяць працоўныя труднасці для команд у гэтым экасістэме, а ўжо ўсё языкі, якія ён падтрымлівае, ёсць непераможнымі.
Няма універсальнага пераможця
Няма такога фрэймворка, які бы быў найкрашчы для всіх, а порэвананне, якое стверджвае працоўнае, мае мету — прымусіць купіць яго. Выберыце LangGraph для керавання і зміцнення працы ў складных рабочых працэсах, CrewAI для якнайшырэйшага часу да стварэння рабочага пратотыпа, а Google ADK — для команд, якія работаюць у Google Cloud, і для справжньяго месаўжнечання між разнымі фрэймворкамі.
Пярэдзейцецца на асаленых абмежэннях — чы гэта тое, што вялікадром вяселі, на якій воблаку ён працуе, чыія логіка коордынацыі ўсё ж такі складная, а не на тым, які фрэймворк апублікаваў самыя яскравыя анунсаванні. Фрэймворк — гэта толькі каркас. Правільны дызайн агента можа быць прыменены ў будзь-якай з трох сфер: цыклы, запошук, маршрутызацыя, стандарты інструментаў, можлівасці адзірвання і прычынка ацэнкі рэзультатаў.
Супаўязаныя матэрыялы
- MAF 1.0, LangGraph чы CrewAI? Выбір фрэймворка агента ў 2026 годзе — Пораўнанне Microsoft Agent Framework 1.0, LangGraph і CrewAI па стану, памяці, налагоджэнні, протаколах, шляхах у Azure і косце, з короткім планам прыняцтва рашэння і схемай впрынесення.