Выбар агентнага фрэймворка: LangGraph, CrewAI, OpenAI SDK і ADK
Без табліц функцый: аднясіце праект да адной з пяці форм, параўнайце чатыры стылі аркестрацыі і паглядзіце мінімальныя прыклады на LangGraph, CrewAI і OpenAI SDK.
Выбір фрэймворку для агентаў у 2026 годзе здаецца сложнейшым, чым магло б быць. Як толькі пачынаеш шукаты такі фрэймворк, ты сталкаешся з LangGraph, CrewAI, OpenAI Agents SDK, Google’s Agent Development Kit, Claude Agent SDK, AG2, PydanticAI і ўсё большай колькасцю іншых раўнарадных прыемлівых вароц, кожны з якіх прэтэндуе на ролю найблага выбору.
Гэтае плутанне не ўскладнення з вашай стороны ў доследжэннях. Цяная сфера стала фрагментаванай, і выбір больш схожы на філасофскі, чым на тэхнічны, адтуды ў кожным фрэймворку праўіцца свая думка пра тое, які ступень кантролю трэба заставіць над выконаннем агента і як агенты должны взаімаўчыць. Адна з фраз з адпаведнага пояснення IBM паказвае лепшы спосаб прыбліжэння да гэтага пытання: перэстаньце спытацца, які фрэймворк найлепшы, і спытайцеся, які тып сістэмы агентаў вы ствараеце.
Тое, што йдзе далей, адпраўлена для распрацоўшчыкаў і архітэктараў серэдньага рангу, які вялікай меры ведаюць, што такое агент: мадэль з інструментамі, інструкцыямі і часткай памяці, якае можа выконваць больш ад однаго крока ў паходзе да меты. У цім матэрыяле прыпускаецца, што вы ведаеце Python і ўжо пробавалі хоць адну петлю вызова інструментаў з удзелам агента. У матэрыяле праекты класіфікуюцца на пяць катэгорый, потым упораўнююцца чатыры філасофіі оркестрацыі, а пасля паказваюцца тры мінімальныя прыклады коду, каб вы моглі паціркуванне разніцу ў модэлях програмавання пры выборы базы коду.
Чаму фрэймворк насправды вас захоўвае
Для дэманстрацыі вы можэце стварыць агента без жаднага фрэймворка. Аднак калькі проблемаў з’являюцца практычна ў кожной серйознай сістэме, і фрэймворк з’яўляецца галоўная метай таго, каб вам не давелася ўсё занова рашыць:
- Цыкл разумовання. Вызываеце мадэль, запускаеце тыя інструменты, якія ёна выберэ, падаеце рэзультаты назад і павторуеце працэс, пакуль не будзе выканана умова зупінкі.
Усе фрэймворкі, якія тут практыкуюцца, пакрываюць гэтыя чатыры абласы. Яны разніцяцца тым, насколькі адчынна яны прыменяюць свае рашэнні.
Пачніце з кейса выкарыстоўвання
Перш чым пораўняваць функцыі, запытайце ся, што вы на самай працэ прабуяце стварыць. Пяць катэгарыяў пакрывае большасць праектаў, і кожная з іх прызначае разны спіс варыянтаў.
- Лінейныя рабочыя практыкі. Крокі выкананы ў прыглядна, здазвольна фіксаванай архітэктурэ: агент падтрымкі шукае інформацыю ў базе знаёмых, складае адпаведны адказ і, можа, стварыць заявку. Тут не трэба, каб агенты сперачыналі дыскусіяў. Неабходная надзеямасць. LangChain падходзіць для последоўнасцяў, LlamaIndex — для задач, якія выкарыстоўваюць масовы пошук інформацыі, а LangGraph становіць ся корыстным, калі последоўнасці трэба адпрацавваць з учыткам певных умов чы цыклаў.
- Автонамныя команды з калькі агентаў. Мета прадаўаная, і група агентаў выбірае спосаб яе досягнення — напрыклад, планавальнік, програміст і пераказчык раздзеляюць задачу над праграмаваннем. Такія задачы за сваёю прыродай ёсць адкрытымі. AG2 (падтрымваныя наступнік AutoGen) і CrewAI ёсць стандартнымі варыянтамі.
Такій спосабе сортавання пытаецца ператварыць запытку «Калькольныя рамкі?» на ўжо менш значны пытанне. Чы ўся працэсная лінія ёсць прагнозаванай, дакларатывальной, абмежанай ролямі, спрамованай на выпуск у працэю, чы проста яўляе ся гіпотэзай?
Чатыры спосабы, якімі калькольныя рамкі мадэлююць коордынацыю
У межах складу кандыдатаў калькольныя рамкі все ж разлічаюцца за спосабам выражэння коордынацыі. У загальных рысах яны следуюць аднай з чатырох філасофій.
- На адной з графаў. Агенты і логіка ёсць вузламі ў направленым графе, а явныя рэшткі, умовныя чы цыклічныя, вяршаюць, што будзе выканана далей. LangGraph — гэта яскравыяй прыклад. Практычна вы задаеце машыну станоў.
- На адной з ролей. Кожны агент — член каманды з певной ролю, цэлью і анамнезам, тады як шар працэса вышэй вяршае, як задачы пераводзяцца между ўсімі. CrewAI організавана самэ прыгожда да гэтай ідэі.
Няма філасофіі, якая б абсалютна перамагала. Вашы выбор павінен быць адпаведны існуючаму ментальнаму модэлю вашай команды ўжо ў вопыце проблемы і ступеню явнага кантролю над шляхамі выканання, які вы насправды хочаце.
Месца рамкі ў стэйку
Кожная парадыгма стоіць на адзінам чыраўшым модэляў і керуе цыклам разумовых вырахункаў. Над гэтым знаходзіцца вызыванне інструментаў, якое все больш стандартызуецца за дапамогай MCP. За данымі, з гаду 2025 года яго керуе Agentic AI Foundation пры Linux Foundation, і кожная з парадыгм тут вікорыстоўвае яго ў якой-небудзь форме. Калі агенты павінны весты супрацоўку между рознымі працэсамі чыраўшыма, протакол Agent2Agent (A2A) стае аналогічным стандартам, з вбудованай падтрымкай у ADK і ўсё большай падтрымкай у іншых рашынках.
Ніжэй знаходзіцца механізм сохранення стану, такі як функцыя кэшавання дадзеных LangGraph у базе дакументаў або простая історыя чату ў памяці, а таксама слой для стварэння можлівасцяў аналізу, такі як LangSmith для LangGraph чыя-небудзь вбудованая сістэма трэйсінгу ў SDK OpenAI Agents. Гэтыя элементы маюць набліжна большое значэнне, калі агент работае з рэальнымі корыстнікамі, чым у нотбуку. Жадны з гэтых фрэймворкаў не прыязначаны для конкрэтнага хмаравога сервісу. SDK OpenAI Agents і Google ADK як бы сама сабою спрыяюць вікорыстанню модэляў своіх постачальнікаў, тады калі LangGraph і CrewAI стараюцца застаўці незалежнымі ад конкрэтных модэляў.
Тры простыя прыклады
Этыі фрагменты спецыяльна зроблены маленькімі. Яны паказваюць модэль программавання кожнага фрэймворка і не ўтвараюць рэальных сістэм для прыменення. Назвы пакетаў і крокі ўстановкі швыдка зміняюцца, таму спачатку пераканайцеся ў актуальной документацыі кожнага праекту.
LangGraph: граф з двума вузламі
# pip install langgraph
from langgraph.graph import StateGraph, END
from typing import TypedDict
class State(TypedDict):
question: str
answer: str
def research(state: State) -> State:
state["answer"] = f"Researched: {state['question']}"
return state
def write(state: State) -> State:
state["answer"] = f"Written up: {state['answer']}"
return state
graph = StateGraph(State)
graph.add_node("research", research)
graph.add_node("write", write)
graph.set_entry_point("research")
graph.add_edge("research", "write")
graph.add_edge("write", END)
app = graph.compile()
result = app.invoke({"question": "What is agentic AI?", "answer": ""})
print(result["answer"])
# Output: Written up: Researched: What is agentic AI?
Код візначае тыпаваны стан, які аднаходзіцца ў спадчынстве між вузламі, додае два вузлы як звычныя функціі Python і спаўнае іх за дапамогою явнага рэбра. Жадна частка коду не вызывае LLM. LangGraph намеравана застаецца нейтральной ў гэтым пытанні, таму вы можэце на кожны вузел падключыць будзь-які кліент модэлю, які вам пасаблівае.
CrewAI: два агента-члена экіпажу
# pip install crewai
from crewai import Agent, Task, Crew
researcher = Agent(
role="Researcher",
goal="Find accurate information on the given topic",
backstory="An experienced analyst who values accuracy over speed."
)
writer = Agent(
role="Writer",
goal="Turn research into a clear summary",
backstory="A technical writer who favours plain language."
)
research_task = Task(
description="Research agentic AI frameworks",
expected_output="A short list of key considerations",
agent=researcher
)
write_task = Task(
description="Summarise the research for a developer audience",
expected_output="A concise paragraph",
agent=writer
)
crew = Crew(agents=[researcher, writer], tasks=[research_task, write_task])
result = crew.kickoff()
Няма вузлаў чы рэгуліў, якія трэба падключыць. Два агентаў опісваюцца па ўласнасці і меты, і кожнам з іх даўця заданне. Стандартны працэс каманды выкананыя заданнія адна за іншай, перадаючы кожны рэзультат наступнаму. CrewAI адпавядае за коордынацію, якую LangGraph заставіў бы вас явна мадэляваць.
OpenAI Agents SDK: перадача размовы между агентаў
# pip install openai-agents
from agents import Agent, Runner
billing_agent = Agent(
name="Billing",
instructions="Handle billing questions concisely."
)
triage_agent = Agent(
name="Triage",
instructions="Answer general questions; hand off billing questions to Billing.",
handoffs=[billing_agent]
)
result = Runner.run_sync(triage_agent, "Why was I charged twice this month?")
print(result.final_output)
У прыкладзе агенту, які выконвае функцыю трыажу, паведамляюць пра ўсьмох агентаў, якім можна перадаць працу. Калі мадэль выявляе, што паведамленне стосуецца білінгу, калектар SDK сама перадае дыялог агенту, які займаецца білінгам. Няма графаў, няма метафар ролей: толькі агенты, а таксама інструменты і способы перадачы працы, якія ў яных ёсць. Google ADK за сваёй велічынай таксама супадае — у яго ёсць галоўны агент з sub_agents, пры тым яго падагенты утвараюць чыстае дрэва, якое можа включаць аддаленых агентоў праз протакол A2A, тады як спіс спосабаў перадачы працы вышэй ёсць плоскім.
Падбір кожнай парадыгмы па вашай сітуацыі
Выберыце LangGraph, калі:
- у вашай рабочай схеме ёсць ціклы, перапрыбуткі або умовныя галузі, якія вы хочаце чытра адобразіць;
- вам патрэбны стойкі стан, які застаецца пасля перзапуску, або можлівасць дыбаггіну па прынцыпу „паўтарэння часу“;
- вааша команда вялікі час вжывае компоненты LangChain.
Выберыце CrewAI, калі:
- Проблема сама па сабе дзеліцца на ролі, і такая структура дапамагае людзям, які не ў галузі інжынерыі, разумець сітуацыю;
- Вы хочаце, каб ўсё запрацавала за калькі гадзін;
- Вы готовы перавесты важлівыя элементы на фрэймворк ніжэйшага рангу, калі парадакс на адной основе ролей стане недастатнім;
Выберыце OpenAI Agents SDK, калі:
- Вы будуеце працаваць пераважна з мадэлямі OpenAI і хочаце максымальна простую, але эфектыўную складовую над цыклам разумовых вычынкаў;
- Ваша патрэба ў коордынацыі — гэта проста дэлегаванне задач калькам спецыялістаў.
Выберыце Google ADK, калі:
- Вы ужо працуеце ў Google Cloud або ў экасістэме Gemini;
- Агенты будуць працаваць у розных командах або службах, і тады модэль далёкага агента A2A ёсць ідальным рашэннем.
Знайшоце іншы варыянт, калі:
- Безпека тыпування мае важлівішэ значэння, ніж гнучкісць оркестраціі; у такому разі PydanticAI, які перэвірае вхідні і віхідні даныя агента за допомогою мадэляў Pydantic, можа віявітыся крашчым рышэнням серэд усіх чатырох варыантыв;
- Ві знаходытэся на етапі прототыпування одного з п’яты можлівіх сценарыів вікорыстання, тому крашчэ спочатку скорыстатыся LangFlow або Flowise, перш ніж пісаты код фрэймворку.
Помілкі, які робляць команды
- Вібір перад візначэнням. Команды обіраюць той фрэймворк, які мае найбільшэ оцінок, і намагаюцца вмістыты всі потрэбі в яго структуры. Спочатку візначывшы катэгорыю, можна легшэ побачыты оптымальній варыант, ніж чытаты кілька наборыв документаціі.
- Ігнорування вітрат на зміні. Патэрні запітыв, логіка агента і механізмі оркестраціі рыдко можна легко адаптуваты. Калі ві підозруеце, што першый вібір не підыйдзе у будучым, плануйце часткову перэробку і не очыкуйце швідкоі заміні.
Вашы наступныя крокі
- Перад тым, як ачынаць документацыю будзь-якай палаткі, выберыце, да каторай з пяці катэгорый належы ваш праект: лінейная, автонамная мульты-агентная, на базе ролей, оркестрацыя працы чы рапідны пратотып.
- Установіце адну з вышэйзгаданых палатак і перазбудуйце просты прыклад, выкарыстоўваючы ваш сопственны кейс употрэбы замест таго, што паказана.
- Пашукайце вялікія серверы засобаў MCP для сістэм, якія трэба падключыць, і адмовіцеся ад ручнага стварэння з’еднуваючых засобаў, калі такія вялікія ўжо існуюць.
- Загадзя дагаворыце правіло пераходу, напрыклад, на LangGraph, калі розгалужэння выпануе тры умовы.
Короткая версія
Перш чым спытацца, які фрэймворк найкрашчы, спытайцеся, якая з пяці вядомых форм адпраўляе ваш праект: прыгадны лінейны прайсупутак, аўтонамная команда без чыязных меж, команда з чыязнымі ролямі, задача архангелізацыі працы чы ўжо ідэя на этапы пратотыпа.
Адказавўшы на гэтае пытанне, мы зменшаем колькасць вароў яшчэ до таго, як будзе адкрытаяякі-небудзь табелю з функцыямі. Пасля чаго застаецца пераважна пытанне філасофіі. Выберыце LangGraph для чыстага кантролю над розгалужэннямі, CrewAI для мышлення на адной ролі і шыранай ітэрацыі, OpenAI Agents SDK для простасці ў рабоце з мадэлямі OpenAI, а ADK — калі вы ужо працуеце ў экасістэме Google. MCP і A2A стаюць стандартамі для інструментаў і абмену дадзеннямі межы агентаў, таму змена курсу пазней будзе менш болючая, хоць гэта ніколі не будзе безкоштовна.