Галоўная / Артыкулы / Практычныя прытамулі: Microsoft Agent Framework 1.0 протык у LangGraph пратык CrewAI: А

Практычныя прытамулі: Microsoft Agent Framework 1.0 протык у LangGraph пратык CrewAI: А

Практычныя прыказкі: Microsoft Agent Framework 1.0 проты LangGraph проты CrewAI: А — кантракты, пераконтрольваннія та слоты для коду, якіе можна выкарыстоўваць командам, якія реалізуюць гэты патэрн.

2397 слоў

Існавайце гэта як перапрацоўаны варыянт ідэй з матэрыялу “Microsoft Agent Framework 1.0 vs LangGraph vs CrewAI: A Production-Ready Comparison (2026)” для працавальнікаў: чыстыя этапы, аранжаваныя блакі для коду і прыметкі з восстанавлення, якія застаюцца пасля перадачы задання. Этап “Аптаварыс” найэфектывнейша працюе, калі яго розглядаць як мерыябельную плошчу. Запісайце адна ідеальная транскрыпцыя, адзін прыклад неудачы і прыметкі з вярнення да пачатковага стану прычаму расшырэння масштаба. Запісвайце часы виконання і косты токенав або запытаў праза функцыйнае рэзультат. Відразлівае паказанне костаў запобегае неспадзяваным рахункам, калі працэс пераходзіць з дэмаверыянту ў спаканаваныя сераўысы.

Короткая сутнасць

Для стадіі TL DR неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крэтыяры завершэння пры зміне коду. Аперацыйныя працавнікі павінны магчымае перазапускаць крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Конфігурацыю трэба залічыць пазначкай ад коду прыемленае. Файлы сераўіса, хранільнікі секрэтных дадзеных і флагі функцыйяў павінны знаходзіцца ў адном месцы, якое працавнікі можуць пераглядаць, не чытаючы весь ланцуг задач. Прызначыць людскія апраўдкі для рэлей, якія витрачаюць грошы або зменяюць даны у працоўнай сітцы. Падключэння ў час компілявання не адпавядае пачатковай цэлесообразнасі бізнес-процэсаў.

Чаму гэтае паўстанавленне мае значэнне зараз

У раздзеле «Па чым важна гэта парадороўка» неабходна з’явіць апісанне вхідных дадзеных, адпаведальнага за выкананне крока і крэтарыяў завершэння працы перад змінай коду. Аператары должны магчымае перзапускать крок з вядомай точкі контролю, не прабуючы спадарацца пра схованы стан. Неабходна апісацыя як «шчаслівага» шляху, так і шляху вярнення да нормальнага стану. Перапрыбуткі, людзкія пераказы і обробка некоректных паведамленняў є частью продукту, а не елементамі, якія дадзецца дапрацаваць пазней. Людская затверджэння неабходныя для тых крокаў, якіе ведуць да выдаткаў грошаў або змяні дадзеных у прыемным режыме. Конкатэнацыя коду часу кампілявання не ўзроўнюецца з повнасцю функцыоналу продукту.

Што змянілася з 2025 года

Для этапу «Што змянілася з 2025 года» неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крэтыры завершэння пры змяне коду. Аперацыйныя працавнікі павінны магчымае перазапускаць крок з вядомай точкі контролю, не спрабоўваючы здагадвацца пра схованы стан. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выйшоў, прычына нехарактэрыстыкі павінна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны процес. Пры ведзенні грошэй чы змяне дадзейнаў у працоўным сераверы неабяжна ўключыць людзкія апраўданні. Компіляцыйные налашчэнні не ўзначаюць павнае адпрацоўванне задачы. Для этапу «Што змянілася з 2025 года» неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крэтыры завершэння пры змяне коду. Аперацыйныя працавнікі павінны магчымае перазапускаць крок з вядомай точкі контролю, не спрабоўваючы здагадвацца пра схованы стан. Запісвайце час выконання, а таксу токенаў чы запытаў разам з функцыйнальнымі рэзультатамі. Відразлівасць костаў з самага пачатку запобегае неспакойным рахункам, калі процес пераходзіць з дэмаверсіі ў спяльнае сераверы.

Як працюе кожная праматрыца AI-агента: асалідныя прынцыпы

Калі працуеце над этапам «Як працюе кожная праматрыца AI-агента», спачатку запісайце умовы викорыстоўвання: неабходныя данні, сігнал успеху і тое, што выходзіць па частковай нявыполненасці. Такі список дапамагае залічваць змяны ў кодзе чыста. Зберагайце настройкі праза код аплікацыі. Файлы сераўнавання, хранільнікі секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць пераглядаць іх без неабходнасці чытання всей структуры. Стварайце контрольныя пункты пасля дорогіх крокаў. Функцыя вярнення роботы не должна занова ставіць плату за той самы вызыв LLM, калі аператар перапрыяўляе роботу да наступнага вузла.

# LangGraph: explicit graph control
from langgraph.graph import StateGraph
from langgraph.checkpoint.sqlite import SqliteSaver

graph = StateGraph(State)
graph.add_node("classify", classify_doc)
graph.add_node("extract", extract_data)
graph.add_conditional_edges("classify", route_by_type)
app = graph.compile(checkpointer=SqliteSaver("agent.db"))
# CrewAI: role-based simplicity
from crewai import Agent, Crew, Process

researcher = Agent(role="Researcher", goal="Find accurate data",
                   llm="gpt-4o")
writer = Agent(role="Writer", goal="Draft clear reports",
               llm="gpt-4o")
crew = Crew(agents=[researcher, writer], tasks=[...],
            process=Process.sequential)
# MS Agent Framework: simple agent in Python
import asyncio
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient

async def main():
    client = AIProjectClient(
        endpoint="https://your-project.services.ai.azure.com/api",
        credential=DefaultAzureCredential()
    )
    agent = client.agents.create_agent(
        model="gpt-4.1",
        instructions="You are a concise data analyst."
    )
asyncio.run(main())

Пара-пара: што на самай працы мае значэнне ў працоўным сераўе

Калі працуеце над этапам «Head-to-Head What Actually Matters», спачатку запісайце умовы контракту: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список пераконвае ў тым, што пазнейшыя змены коду будуць чыстымі. Документавайце як шлях успеху, так і шлях вярнення. Перапрыбуткі, людзкі контроль і обработка некоректных паведамленняў є частью продукту, а не дадатковым доўнесенням пазнейша. Стварайце контрольныя точкі пасля дорогіх крокаў. Система вярнення не павінна зноў ставіць рахунак за той самы вызов LLM, калі аператар перапрыбуе пазнейшы вузел.

Управлінець станамі & Перазбірнасць

Калі працуеце над стадзіяй утримання стана, спачатку запісайце контракт: неабяжлівыя даны, сигнал працэздання і тое, што выконваецца у разе частковага невыпання. Такі список контроля дапамагае заліцвачыць пазнейшыя змены коду. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, прычына невыпання павінна вказываць на адзін конкрэтны элемент, а не на заплутаны ланцюг задач. Зрабіце перапытку пасля дорогіх крокаў. Система вярнення не павінна зноў ставіць плату за той самы вызов LLM, калі аператар прабуе зноў выконаць пазнейшы элемент. Калі працуеце над стадзіяй утримання стана, спачатку запісайце контракт: неабяжлівыя даны, сигнал працэздання і тое, што выконваецца у разе частковага невыпання. Такі список контроля дапамагае заліцвачыць пазнейшыя змены коду. Запісвайце час выканання і кост токеноў або запытаў разам з функцыйнальнымі рэзултатамі. Відразувыя даны пра косцы запобегаюць неспакойным рахункам, калі процес пераходзіць з дэмавайнага режыма ў спяльныя сераўеры.

Память

Этап памяці працюе наўсёх краща, калі яго спрыяваць як вимерную паверхню. Зафіксавайце адна ідеальная транскрыпцыя, адзін прыклад неудачы і запіс пра вярнэнне да попераднего стану, перш чым расширваць сферу дзеяння. Зберагаюце настройкі пазыроўна ад коду прыемлівання. Файлы сераўнавальнага сяродавішча, хранілішчы секрэтных дадзеных і флагі функцый должны знаходзіцца ў аднам месцы, куды аператары можаць адбавляць контроль без неабяжнага чытання всіх дадзеных. Зберагаюце стан графа ў простам і типаваным формате. Вкладныя блокі маскуюць інфармацыю пра тое, який вузел запісаў якое поле, і спакоююць продаж чытання пасля перерываў.

Дыбаггін і стварэнне можлівасцяў адзірвання

Этап стварання можліваў спостэрэння падчас адлучэння працюе наякша, калі яго спрыяваць як мерыемую паверхню. Зберагачыце адна ідеальная транскрыпцію, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць сферу дзеяння. Дакументавайце як шлях успеху, так і шлях вяснавання. Перапрыбуткі, людзкія контрольныя пункты і обработка некоректных паведамленняў є частью продукту, а не наступным етапам дорабкі. Храніце стан графаў у простам і типаваным формате. Вярнутыя блокі маскуюць, який вузол запісаў канкрэтны поле, і спакшваюць продовжэнне роботы пасля перерываў.

Падтрымка протакалаў (MCP & A2A)

Этап Protocol Support MCP A2A працюе найкраща, калі яго розглядаць як вимерную паверхню. Зберагчыце адны ідеальны прыклад роботы, адну справу з бягамі та прыметку па вярнэнню да пачатковага стану, перш чым расширваць сферу дзеяння. Валіце маленькія, тэставаныя элементы замест большых скрыптов. Калі якісь крок не выйшае, прычына бягу должна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач. Абяроце інструменты з вузкімі схемамі та чысткімі пазначэннямі паблічных наследкав. Хостам неабходна інфармацыя пра тое, якія вызовы змінююць стан, перш чым яны автаматычна схваляюць ўпраўленні. Этап Protocol Support MCP A2A працюе найкраща, калі яго розглядаць як вимерную паверхню. Зберагчыце адны ідеальны прыклад роботы, адну справу з бягамі та прыметку па вярнэнню да пачатковага стану, перш чым расширваць сферу дзеяння. Запісвайце часы выканання, а таксу токенаў чы запытав, праза функцыйнае рэзультат. Відкрытыя даны пра вартасць з’являюцца рана, таму утримваецца неспакойныя рашчыты, калі процес пераходзіць з дэмавайнага режыма ў спяльныя сераўы.

Два шляхі для Python на Azure

Для стадіі «Два шляхі» для Python неабяцо пазначыць вхідныя даны, адпаведнага адпаведальніка за крок і крэтыяры завершэння пры перадзеіснаванні коду. Аператары должны магчымаць перзапуск крока з вядомай точкі контролю, не падозрываючы прыхованы стан. Конфігурацыю трэба знаходзіць за межамі коду прыемліка. Файлы сераўнавання, хранальнікі секрэтных дадзеных і флагі функцый належаць у аднам месца, якое аператары можаць пераглядаць без неабяцовага чытання всей структуры. Раздзеліце стварэнне кліента ад цыклу паведамленняў, каб было можна змяніць прадаўцоў без перапісвання машыны стану размовы.

Шлях 1: MS Agent Framework (Python)

Для стадіі MS Agent парадыгмы Path 1 неабяжна з’явіць вакуленты, адпаведнага власніка крока і крэтыяры завершэння працы перад зменым коду. Аперацыйныя працавнікі павінны магчымаць перзапуск крока з вядомай точкі контролю, не падозрываючы прыхованы стан. Неабяжна задокументаваць як «шчаслівы» пат, так і пат вярнення да нормальнага стану. Перапрыбуткі, людзкія контрольны пункты і обработка некоректных паведамленняў є часткай продукту, а не элементамі пазнейшага доўрабкі. Неабяжна аддзеліць стварэнне кліента ад цыклу паведамленняў, каб было можна змяніць прадаўцоў без перапісвання машыны стану размовы.

# MAF Python: working agent in a few lines
import asyncio
from agent_framework import Agent
from agent_framework.openai import OpenAIChatClient

async def main():
    agent = Agent(
        client=OpenAIChatClient(),
        instructions="You are a helpful data analyst.",
        tools=[get_weather, get_menu_specials]
    )
    response = await agent.run("What's the weather in Amsterdam?")
asyncio.run(main())

Path 2: LangGraph + langchain-azure-ai

Для стадії Path 2 LangGraph langchain-azure-ai неабяжна праграмаванне вказаць на вхідныя даны, адміністратара крока і крэтыяры завершэння пры зміне коду. Аперацыйныя працавнікі павінны магчымаць перзапуск крока з вядомай точкі контролю без неабяжнага адгадвання схованых станоў. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выйшаў, прычына неабяжна вказваць на адну конкрэтную адпаведальнасць, а не на заплутаны процес. Прайміце людзкую апраўдку для тых крокаў, якія выкарыстоўваюць грошы або зміняюць даны для працы. Компіляцыйные налашчэння не ўзначаюць павнае адпрацоўванне задачы. Для стадіі Path 2 LangGraph langchain-azure-ai неабяжна праграмаванне вказаць на вхідныя даны, адміністратара крока і крэтыяры завершэння пры зміне коду. Аперацыйныя працавнікі павінны магчымаць перзапуск крока з вядомай точкі контролю без неабяжнага адгадвання схованых станоў. Запісваць час выконання і кост токеноў або запытаў разам з функцыйнальнымі рэзультатамі. Відразлівасць костаў з самага пачатку запобегае неспакойным рахункам, калі процес перайшоў з однага стану ў іншы.

Эмо для спільных середовышчаў.

# LangGraph + Azure Foundry via the bridge
from langchain_azure_ai.chat_models import AzureAIOpenAIApiChatModel
from azure.identity import DefaultAzureCredential

model = AzureAIOpenAIApiChatModel(
    project_endpoint="https://myproject.services.ai.azure.com/api",
    credential=DefaultAzureCredential(),
    model="gpt-5.2"
)

Як выбраць між німі

Калі працюеце над этапам «Як выбраць між», спачатку запісайце угоду: неабяжлівыя даны, сигнал успеху і тое, што відбываецца у разе частковага невыпання. Такі список пераконвае ў тым, што пазнейшыя змены коду будуць чыстымі. Зберагайце настройкі парадульна ад коду прыемліка. Файлы середавышча, хранільнікі секрэтных данных і флагі функцый належаць у аднам месца, якое аператары можаць пераглядаць без неабяжлівага чытання всей структуры. Стварайце контрольныя пункты пасля дорогіх крокаў. Система вярнення роботы не должна знову ставіць плату за той самы вызов LLM, калі аператар перапрыяўляе роботу да пазнейшага вузла.

Косц ад размішчэння AI-агента

Калі працюеце над этапам «Цена AI», спачатку запісайце угоду: неабяжлівыя даны, сигнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список контроля дапамагае заліцьварыць пазнейшыя змены ў кодзе. Документавайце як шлях успеху, так і шлях вярнення. Перапрыбуткі, людзкіе контрольныя пункты і обработка некоректных паведамленняў ёсць частынай продукту, а не пазнейшым дапрацоўкам. Стварайце контрольныя пункты пасля дорогіх крокаў. Програма не должна занова ставіць плату за той самы вызыв LLM, калі аператар перапрыбуе пазнейшы вузел.

Схема прыняцьбы рашэння

Калі працуеце над стадзіяй карточкі распылу рашэнняў, спачатку запісайце «кантракт»: неабходныя даны, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список пераканальвае залічваць змяны ў кодзе чыста і адкрыта. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, прычына нявыпання павінна вказваць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцужок задач. Зробіце перапактаванне пасля дорогіх крокаў. Система не павінна зноў выраховваць адплату за той самы вызыв LLM, калі аператар прабуе зноў выконаць пазнейшы вузел. Калі працуеце над стадзіяй карточкі распылу рашэнняў, спачатку запісайце «кантракт»: неабходныя даны, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список пераканальвае залічваць змяны ў кодзе чыста і адкрыта. Запісвайце час выканання і кост токенав або запытаў праза функцыйнае рэзультат. Відкрытыя даны пра косцы з’являюцца рана і запобегаюць неспакойным вырахункам, калі траекторыя пераходзіць з дэмавай версіі ў спяльныя сераўы.

Шаблон, які бачыце ў всіх кліентах

Этап «The Pattern you See» працюе найкраща, калі яго розглядаць як вимерную паверхню. Запісаўце адна «золатая» транскрыпцыя, адин прыклад неудачы і прыметку па вярнэнню да поперадньага стану, прычым расшырюючы сферу дзеяння. Храніце конфігурацыю параду з кодам прыемлена. Файлы серавіса, хранальнікі секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць адбавляць контроль без неабяжнага чытання всіх дадзеных. Храніце стан графа ў простам і типаваным формате. Вкладныя блокі маскуюць інфармацыю пра тое, який вузел запісаў які поле, і спакоююць продаж чытання пасля перерываў.

За межамі фрэймворку: што насправды вялікае за успех

Што за межамі фрэймворка: які етапы найбольш эфектыўныя, калі іх рассматрываць як вимерыемую паверхню. Запісайце адна ідеальная транскрыпцыя, адзін прыклад неудачы і прыметку па адвярненню перад расшырэнням масштаба. Дакументавайце як шлях успеху, так і шлях вярнення да нормальнага стану. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў є частью продукту, а не наступным этапам дорабкі.

Чэк-ліст для эксплуатацыі

Калі працюеце над этапам чэк-ліста для эксплуатацыі, спачатку запісайце умовы: неабходныя данні, сигнал успеху і тое, што вядзецца пад частковай неудачы. Такі чэк-ліст дапамагае заставіць пасляўсія коду застацца чыстым.

Рассматрывайце гэты этап як угоду між вхіднымі данымі і перакананымі выходнымі рэзультатамі. Дайце назвы элементам, задаць критэрыя успеху і адмовіцеся ад тыхней частковай завершэння без паведамлення.

Пауза пасля дорогіх крокаў. Функцыя адновлення не должна занова нарахоўваць плата за той самы вызыв LLM, калі аператар праказвае спробу на пазнейшым вузле.

Забезпечыце фіксацію версій залежнасцяў і запісаце хеш-значэнне зображэння, якое викорыстоўвалася для дэманстраціі. Возможнасць перадарабаткі прынесе больш пользы, чым традыцыйныя методы.

Запісвайце час виконання аперацый, а таксу на токены чы запиты разам з функцыйнальнымі рэзультатамі. Відразувыя данні пра вартасць запобегаюць неспакоўным нарахоўкам, калі процес пераходзіць з дэманстрацыі ў спадзеленыя сераўеры.

Пауза пасля дорогіх крокаў. Функцыя адновлення не должна занова нарахоўваць плата за той самы вызыв LLM, калі аператар праказвае спробу на пазнейшым вузле.

Перад пераходам да наступнага етапу заблокіруйце версіі, зафіксуйце критычны варіант транскрыпціі для ключовага шляху і паказваце крокі для вярнення да пачатковага стану. У спадзеленых сераўерах неабходны ліміты на колькасць запытоў, пераказкі прав на выкарыстоўвання ресурсаў і чысткі распадзел канфідэнцыйных данных. Валіце надзейнасць, чым крэатывныя, але разовыя дэманстраціі.

Запіскі для пакета 356fa8d45eff: не класты ключі прадаўцоў у репазітарыю, задаць максымальны тэрмін дзейнасці токена на кожную сесію, а таксама зберагчы транскрыпціі празаўсюды з фікстурамі для ацэнкі, каб пазнейшыя замены моделяў заставаліся пораўнанымі.