Галоўная / Артыкулы / LangGraph протык Pydantic AI: чаму сама модель, а не фрэймворк, вялікае значэнне для точнасці

LangGraph протык Pydantic AI: чаму сама модель, а не фрэймворк, вялікае значэнне для точнасці

Контрольныя тэсты з рахункам 160 пунктав для LangGraph і Pydantic AI паказваюць аднаковую точнасць вызывання інструментаў, а таксама паказваюць, што выбор модэлю і структура ацэнкі маюцы значна большое значэнне.

1865 слоў

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

Як тэставанне ізоліраваў фреймворк

У гэтым параболікані LangGraph 1.2.9 быў супернечыў з Pydantic AI 2.13.0 у чатырох задачах; за кожную задачу і кожны фреймворк было адбыто 20 запускаў: ўсьго 160 запускаў, адна модель, параметр temperature = 0. Весь раслед костаў $0.3767 за выкарыстоўванне API. Методалгія задокументавана, а тэстовы інструментарый — адкрыты код, таму можна пераканацца ў настройках і запускнуць тэсты знова.

Усе чатыро задачы ўзятыя дэтэрміністычныя і оценяюцься па точнаму адпаведанні; кожная з іх пераканае разныя навыкі агента:

  • inventory-reorder: адна вызовка інструмента, пасля чаго выконваецца арыфметычныя вырахунакі з яго рэзультатам
  • dependent-shipping-quote: другая вызовка інструмента, чыя вхідныя даны залежаць ад рэзультата першай
  • recover-stale-revision: агент должен усвядоміць, што яго даны застарэлі, і зноў ўзяць іх
  • refund-policy-minimal-tools: арыфметычныя вырахунакі з датамі ў контексте правілаў вярнення грошаў, пры чым доступна ўмыслаўна мала колькасць інструментаў

Усе, што было адзінакова ў сярэдзіне бібліятекі, застаўалася незменнай: кожны фрэймворк отрымаў ідэнтычныя запиты для кожнага завадзка, яму былі даўаны інструменты, апісаныя ідэнтычнымі схемамі JSON, а таксаванне веліся адним і тым жа оценяльнікам. Модель была прыкреплена да gpt-4o з тэмпературой 0, пры чым паралельныя вызовы інструментаў былі выключаны. Лядзвічная бібліятека была ўжо ўсё, што магло змяніцца.

Гэтае сарабатанне ёсць самай галоўной метай эксперыменту. Багато опублікованых порэванаў фрэймворкаў зменяюць запыт, інструменты і бібліятеку адразу, а потым прызнаюць заслугі бібліятекі за будзь-якія разніцы. Якщо вы хочаце адпаведнае і надзеянае порэванае, то першыя вакуумныя трэбаванні — гэта застаўленне всього іншага на месцы.

Абсалютна равная правільнасць

Оба фрэймворка правільна завершылі ўсе 80 своіх запускаў. Аптак:

LangGraph 1.2.9    Pydantic AI 2.13.0
Completed           80 / 80            80 / 80
Wilson 95% CI       0.954 - 1.0        0.954 - 1.0
Total cost          $0.1881            $0.1886
Median wall time    3.863 s            5.526 s

Это не ў выпадку „прыбліжна параднаго“ або „в межах пазылкі“. За аднаковымі заведаменнямі, схемамі, модэлю і пакетамі дадзеных рэзультаты былі ідэнтычныя. Інтэрвал Вілсона ад 0,954 да 1,0 — гэта тое, што дае ідеальны рэзультат 80 з 80: гэта значыць, што для гэтага прыкладу абсалютны рэглі успеху з вялікай верасцю становіць адносна 95 процэнтав для обох варыянтаў. Якбы адна з бібліятэкаў спрабавала зробіць агентаў болей схожымі да таго, каб яны находзілі правыя адпаведзі на гэтыя заведамення, эксперымент меў бы достатню колькасць прабаў, каб выявіць значны эфект, але нічога такога не было знайдзена. Ён все ж можа не заўважыць дужа маленькія разлікі, што ёсць нормальным лімітом для будзь-яга прыкладу такога размеру.

Самым яскравым пазлом таго, што порэванаў быў справядлівы, яе вхідныя токены. Яны абоўсумова збігаліся ў обох фрэймворках па кожнай запуску: 311 для inventory-reorder, 791 для dependent-shipping-quote, 615 для recover-stale-revision і 926 для refund-policy-minimal-tools. Іншымі словамі, обе бібліятэкі ператварылі той самы схему ў той самы запит API, байт за байтом па чыслах токанаў. Выходныя токены разлікаліся на калькі па канікулах запускаў, што ёсць звычайная варіяцыя модэлю нават пры температуре 0, і гэта пояснюе розніцу ў паловай цэнты ў абшыяй вартасці. Надзея фрэймворка гэтага не чыніць.

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

Затрымка: стабільная розніца з простым поясненням

Этыя фрэймворкі разлікаліся па аднай осі, і гэта было стабільнае явышча. У наведанай нижэй справаке для кожнага завдання паказана, на сколькі секундах меньшым быў медыянны час выканання LangGraph у пораўнанні з Pydantic AI, а таксама інтэрвал доверы 95% для гэтага зменшэння:

  • inventory-reorder: LangGraph праўіць на 1,669 секунды (інтэрвал ад 1,481 да 1,918 секунды)
  • dependent-shipping-quote: праўіць на 1,430 секунды (інтэрвал ад 1,241 да 1,686 секунды)
  • recover-stale-revision: праўіць на 1,842 секунды (інтэрвал ад 1,658 да 2,101 секунды)
  • refund-policy-minimal-tools: праўіць на 1,645 секунды (інтэрвал ад 1,427 да 1,911 секунды)

Па всіх чатырох завданнях весь інтэрвал застаецца далёкім ад нуля. LangGraph завершаў кожны запуск прыблізна на 1,4–1,8 секунды раней, тое ўсьмо гэта было праўда 1,4 раза шырэй за Pydantic AI.

Не прыводзіце гэта да рэкамендацыі без чытання адказу. Разлік выступае як наследак супрацоўкі асінхроннага коду з сінхронным: сам прыемнік ўрабляе задачы сінхронна, а Pydantic AI працавала через гэты сінхронны шлях. Гэта не адбіваеся пра тое, што цыкл агента Pydantic AI за сваёй сутнасцю ўплотні повольны. Цяжыня ёсць рэальной і можа быць павтароўная для гэтага конкретнага стылю інтеграціі, але гэта таксама найменш переносны рэзультат у даследжэнні. У прыкладнай програме, якая вже ўсё цэла асінхронная, можна спакоючыся на тым, што разлік зменшыцца або знікне.

Адзін экстраполятарны прыклад суперачынае медіану

Есць деталь, яка заслуговае на увагу і яка суперчыць рэзультатам па параметру лятэнсу. Спадзейны апаратны працэўнік у даследжэнні належаў LangGraph: 16,196 секунды на заданні dependent-shipping-quote, у працоўніку Pydantic AI з найгоршым рэзультатам — 10,228 секунды. Наступны па спадзею працэўнік LangGraph на тым жа заданні зайняў 5,232 секунды, таму цэе выглядае як адзін ізольаваны экстраполят, а не значныя абэкты распаду. Аднак, калі на кожна заданне адбываецца толькі 20 працэўнікаў, гэтыя два варыянты немагчыма адразніць, і адзін пункт дадзеных не ўтварае распаду.

Практычны урок: медыяні здольнае паслужыць на корыст LangGraph у гэтым случае, але якщо вы ставіце цяль па параметру лятэнсу, важлівае ўжо ўзорчае паведанне, і яго трэба мерыць на сопакой вашай роботы, а не паследаваць медыяні іншага апарату.

Змена модэлю змяніла чатырнаццать відсоткаў рэзультатаў

У аднародным працэўніку на той жа платформе чатыры задання былі выконаны з вядома двух модэляў, пры чым кожны з іх быў выконаны 40 разоў:

gpt-4o-mini    gpt-4o
Completed         30 / 40        40 / 40
Cost (40 runs)    $0.0057177     $0.094275

Фрэймворкі, задачы і інструменты засталіся без змян. Зменіўся толькі модель, і 25 працоцента рэзультатаў змяніліся.

Спосаб, яким зазнаў неудачы gpt-4o-mini, є найболей павучальным. Його вызовы інструментаў праходзілі добра: з будзь-кім фрэймворкам ён правільна выканаў усе задачы, за аднай з’яўілася памилка. Апвядкой была задача refund-policy-minimal-tools, у якай ён зазнаў неудачы ў всіх 10 спробах, па пяць за кожны фрэймворк, і ўсе разы аднакава. Ён вылічыў days_since_delivery = 19, працаваючы з датамі пачатку і канца, хоць правильны лік ўключаючы саму дату выдачы становіць 18, і пасля таго вынік ўважанне, што кліент знаходзіцца па за межамі тэрміну для вярнення грошаў.

Это не абяктва фрамворку і не абяктва выкарыстання інструмента. Цэў модель, якая неправалява падсчыт дат у режыме інклюзіўнасці проты эксклюзіўнасці, у рамках агента, які верна дзейнуў на неправыя цыфры. Жадная бібліятэка керавання не можа сама пазначыць такую памялку. Якая ж пазначае яе — гэта детерміністычная пераканальна: вырахоўванне разліку дат у інструменте замест таго, каб прабаваць падсчытаць модэль, або пераканальна рэзултата пры выкарыстанні яго.

Такім чынам, парабяранне, пра якое спарчваецца індастрыя, завершылася нічыёй, тады як парабяранне, пра якое майже ніхто не спарчваецца, прынесла разлік у 25 пунктав. Дабы парабаваць вышэйшую оценку, было неабходна віддаць прыблізна 16,5 разоў больш часу.

Што можна взяць з гэтага для свайго стаку

Выберыце фрамворк за прыемнасцю

Прымкніце рашэнне на тыя аспекты, з якімі вам давацца жыць кожны дзень: безпека типаў, чы рэшаецца ваша проблема за дапамогою графічнага модэлю, можлівасці дыбаггавання і ступень чытаемасці коду для вашай команды пад час выпадкав. Гэтыя разлікі ёсць рэальнымі. На аднойчынку з гэтымі дапамогамі правильнасць не ўваходзіць у іх. Чыба пра шырэйя параўнанне варыянтав па гэтымі критэрамі, адзірніце выбіранне фрэймворку Python AI agent.

Засветце большую частку бюджету на модэль

У гэтым случае выбор модэлю паўтарыў 25 процэнта рэзультатаў і змяніў косць у 16,5 раза. Якщо у вас мярозна час для тэставання адной рашынкі, працаваце з модэлем над своімі заданнямі. Таксама згадайце, што оба модэля ў гэтым даследжэнні ёсць спецыфічнымі, старэйшымі модэлямі OpenAI; новейшыя модэлі можаць праявляць сабе інакш, таму перарабатайце параўнанне з модэлямі, якія вы насправдзе плануеце вжываць.

Тады вучыце прычыны неудач, а не загальны парадакт успеху

Найболей цінным элементам гэтага критэрыю не была табліца з рэйтингамі, а refund-policy-minimal-tools — задача, створаная так, каб яна была складной. Кожны модель і фрэймворк перасілі тры іншыя задачы, таму яны нічога не раскрылі. Комплект для ацэнкі мае сенс толькі тады, калі ў чымось выходзіць нешта. Разрабатывайце задачы, якія нацэлены на конкретныя слабасі, якіх вы байваліся, напрыклад, логіку з канфліктамі па датам, застарелыя даны чыльныя вызовы інструментаў, і розвівайце гэты комплект на аднойчыны неудачах у рэальнай праце.

Не давайце веры критэрыям, якія выбіраюць пераможца

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

Меры доказаў

Масштаб ўзеўскі: адна сям’я модэляў, чатыры задачы, адна платформа для ўпрацоўкі дадзеных і фіксаваная дата. Эксперыменты адбыліся 24 і 25 ліпня 2026 года, былі выкарыстоўваны модэляў gpt-4o і gpt-4o-mini, а таксама версіі бібліятэк LangGraph 1.2.9 і pydantic-ai-slim[openai] 2.13.0; рэзультаты могу змяніцца з выкарыстоўванням новыяй версіяў. Таксамо правільнасць вызываў інструментаў ёсць толькі адной з характэрыстыкаў фрэймворку агента, і, можа, не тая, якая для вас найважлівейшая; кантроль стану, перазберагчэнне дадзеных, стрімінг і можлівасць аналізу не вылічваюцца тут.

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

Ключовыя выводы

  • Контроль за всім, кроме бібліятекi, якраз і робіць параболіку фреймворкаў значамай; ідэнтычныя колькасці токенаў увводу ёсць хорашым спосабам пераканацца у справядлівасці.
  • LangGraph і Pydantic AI парадналіся з 80 з 80 балоў па правільнасці вызываў інструментаў з gpt-4o.
  • Разлік у затрымках адбіўся даўедыне з пераходам з сінхроннага на асінхронны режым у інструментальнай сутэчцы, а не з повольным цыклам агента; адзін экстраполятарны прыклад паказвае, чаму затрымку ў канцы працы трэба мерыць окрема.
  • Змена модэлю зменіла 25 процэнта рэзультатаў, што было вызванае адной і той жа памылай у вырахунках дат, якую ніяны з фреймворкаў не моглі выкрысці.
  • Сфокусаваце зусілля на адзыначэнні модэляў і на складных задачах, якія выкарыстоўваюць можлівасці фреймворкаў, а дэтэрміністычную логіку, такую як вырахунак дат, трэба вынесці за межы самага модэля.

Спаднія матэрыялы

  • The Next-Token Loop: A Mental Model of LLMs Before You Touch Agents — Дазвольце дазнацца, як працуюць токены, акна контэксту, процес выбору прымероў і цикл генеравання, за дапамогай простых парадактов на Python без з’яўлення ў інтэрнете, якія пояснююць прычыны існавання тэхнік RAG, ReAct і LangGraph.
  • Deciding on an Agentic Model Upgrade by Cost per Successful Task — Практычная схема для адліквідацыі, чы рэальна ўжыванне болей автонамнага модэлю: шасць паказначыкаў, трыбулет з кодаваннем-агентам і неабходныя контралі.