„LangGraph“ ar „CrewAI“: 12,7 s prieš 20 s dar nepasako visko

|Autorius: QUASA redakcija|5 min. skaitymo
„LangGraph“ ar „CrewAI“: 12,7 s prieš 20 s dar nepasako visko

„LangGraph“ rinkitės, kai svarbiausia tiksliai apibrėžti būsenų perėjimus, išsaugoti vykdymo eigą ir sustoti prieš jautrų veiksmą. „CrewAI“ patogus, kai darbą lengviau paskirstyti agentams pagal vaidmenis; prireikus griežtesnės tvarkos, jų komandą galima įtraukti į „Flow“. Karkaso pasirinkimą pirmiausia lemia tai, kokią proceso dalį norite valdyti patys.

„LangGraph“ dokumentacijoje aprašomas žemo lygio karkasas ilgai veikiantiems, būseną turintiems agentams, jungiantis programuotojo nustatytus žingsnius su modelio sprendimais. „CrewAI“ architektūros aprašyme skiriamos „Crews“ agentų komandos ir „Flows“ įvykiais valdomos darbo eigos, kurios tvarko būseną bei vykdymo kryptį. Taigi abiem atvejais įmanoma struktūruota eiga, tačiau ji aprašoma skirtingais būdais.

Kur yra proceso valdymas

„LangGraph“ kūrėjas nurodo grafiko mazgus, bendrą būseną ir perėjimus tarp jų. Modeliui galima pavesti diagnozuoti problemą, o sprendimą, ar pereiti prie taisymo, grąžinti aiškiai aprašytai logikai. Tokia sandara ypač naudinga, kai reikia atskirti siūlomą veiksmą nuo jo vykdymo, grįžti po pertrūkio arba suprasti, kuriame žingsnyje procesas sustojo. Už šią kontrolę mokama projektavimo darbu: būsenos duomenys, šakos ir pakartojimai turi būti apgalvoti iš anksto.

„CrewAI“ komandoje kūrėjas apibrėžia agentų tikslus, vaidmenis, įrankius ir užduotis. Tai natūralus pasirinkimas, kai svarbiausias klausimas yra kas ką atlieka: vienas agentas tiria, kitas planuoja, trečias parengia rezultatą. „Flow“ suteikia kitą sluoksnį – jame galima nustatyti įvykių seką, sąlygines šakas ir būseną, o konkrečiame žingsnyje iškviesti komandą. Todėl lyginant architektūrą svarbu atskirti paprastą „Crew“ nuo „Crew“, veikiančios struktūruotoje „Flow“ eigoje.

Jei užduoties ribos aiškios, o kiekvienas perėjimas turi numatytą pasekmę, grafikas leidžia tas ribas išreikšti tiesiogiai. Jei darbas daugiausia priklauso nuo kelių specializuotų agentų bendradarbiavimo, vaidmenų komanda gali būti greičiau suprantamas pradinis modelis. Kai reikia ir bendradarbiavimo, ir aiškių vartų prieš kitą veiksmą, „CrewAI“ atveju tokie vartai turėtų būti pačioje „Flow“ eigoje, o ne palikti vien agento užduoties aprašymui.

Ką iš tikrųjų reiškia žmogaus patvirtinimas

Patvirtinimas naudingas tada, kai žmogus mato konkretų siūlomą veiksmą ir jo sprendimas pakeičia tolesnę eigą. „LangGraph“ gali nutraukti vykdymą, išsaugoti būseną ir tęsti gavęs atsakymą. „CrewAI“ taip pat turi žmogaus grįžtamojo ryšio mechanizmą: „Human Feedback in Flows“ instrukcija aprašo „@human_feedback“ sustabdymą ir nukreipimą pagal patvirtinimą, atmetimą ar prašymą pataisyti rezultatą.

Skirtumas atsiranda projektuojant sprendimo vietą. Infrastruktūros pakeitimo atveju žmogui gali reikėti patvirtinti tikslų siūlomą pataisymą prieš suteikiant leidimą jį pritaikyti; atmetimas tuomet turi vesti į apibrėžtą šaką. Turinį rengiančioje eigoje žmogus gali vertinti tarpinį rezultatą ir prašyti naujos versijos. Abiem atvejais vien patvirtinimo funkcijos buvimas dar nereiškia, kad konkreti agentų konfigūracija sustoja tinkamu momentu.

Duomenų inžinerijos bandymas: ką rodo vidurkiai

Vieno viešo duomenų inžinerijos bandymo suvestinė „LangGraph“ nurodo maždaug 12,7 s vidutinę delsą ir 2 700 žetonų, o „CrewAI“ – maždaug 20 s ir 5 005 žetonus. Bandymo autoriaus teigimu, naudoti tie patys užduočių tekstai, laiko ribos ir per „Groq“ pasiekiamas „Llama 3.3 70B“ modelis. Šie vidurkiai apibūdina pateiktas konfigūracijas:

  • „LangGraph“: apie 12,7 s vidutinė delsa; apie 2 700 žetonų užduočiai.
  • „CrewAI“: apie 20 s vidutinė delsa; apie 5 005 žetonus užduočiai.

Bandymas apima SQL generavimą, duomenų srautų derinimą, transformavimą ir kitas duomenų inžinerijos užduotis. Jo apraše kartu minimos 24 unikalios užduotys ir 107 užduočių apimtis, tačiau išvardytų kategorijų skaičių suma yra 108. Dėl tokio neatitikimo neaišku, kiek skirtingų užduočių ir pakartojimų sudaro kiekvieną paskelbtą vidurkį. Skaičiai leidžia palyginti autoriaus pateiktas bandymo eilutes, bet neįvertina, kiek rezultatas svyruotų pakeitus užduočių rinkinį ar konfigūraciją.

Šiame bandyme „LangGraph“ eilutė rodo ir mažesnes žetonų sąnaudas, ir mažesnę delsą. Vis dėlto delsa nėra vien karkaso vykdymo laikas: į ją patenka modelio atsakymai, agentų tarpusavio perdavimai ir įrankių naudojimas. Jei vienoje konfigūracijoje modelis kviečiamas dažniau, bendras skirtumas gali augti net tada, kai paties orkestravimo kodo sąnaudos nėra pagrindinis veiksnys.

„Kubernetes“ incidentas: skiriasi ir sustojimo vieta

Kitas „Kubernetes“ incidento bandymo aprašymas viename tipiniame vykdyme pateikia 7 024 žetonus ir 3 modelio kvietimus „LangGraph“ konfigūracijai, o 87 274 žetonus ir 52 kvietimus „CrewAI“ konfigūracijai. Abiem naudotas tas pats „Claude“ modelis, įrankiai ir sugedęs „checkout“ diegimas. Paskelbtos eilutės apibūdina vieną pasirinktą vykdymą, o ne daugelio bandymų sąnaudų pasiskirstymą:

  • „LangGraph“: 7 024 žetonai, 3 modelio kvietimai; grafikas sustoja ir laukia žmogaus patvirtinimo prieš pritaikant pataisymą.
  • „CrewAI“: 87 274 žetonai, 52 modelio kvietimai; agentų komanda pritaiko pataisymą ir tęsia darbą iki atkūrimo.

Šių eilučių galutinė būsena nėra vienoda. „LangGraph“ pėdsakas baigiasi ties patvirtinimo vartais, todėl į jo sąnaudas nepatenka po patvirtinimo atliekamas veiksmas. „CrewAI“ konfigūracija šiame bandyme tokių agento pusėje įterptų vartų neturi ir pakeitimą pritaiko. Dėl to didelio žetonų skirtumo negalima aiškinti vien karkaso efektyvumu: jį veikia ir tai, kiek darbo kiekviena konfigūracija atliko iki matavimo pabaigos.

Bandymas kartu parodo architektūrinę pasekmę. Aiškiai įterptas sustojimas leidžia atskirai vertinti siūlomą pataisymą ir jo pritaikymą; vaidmenų komanda gali pereiti visą kelią be tokio sustojimo, jei jis neįtrauktas į eigą. Tas pats incidentas ir modelis palengvina sąnaudų palyginimą, tačiau skirtingas užbaigimo taškas riboja išvadą apie bendrą laiką ar kainą iki galutinai išspręsto incidento.

Kaip pasirinkti pagal savo darbo eigą

Sprendimą galima pradėti nuo veiksmo, kurio agentui negalima patikėti be aiškios ribos. Jei prieš jį būtina išsaugoti būseną, parodyti tikslų pasiūlymą žmogui ir pagal atsakymą pasirinkti kitą šaką, „LangGraph“ tiesiogiai atitinka tokį valdymo modelį. Jei daugiausia vertės sukuria specialistų užduočių pasidalijimas, „CrewAI“ komanda suteikia aiškų būdą tą darbą išreikšti. Kai reikia abiejų savybių, „Flow“ gali valdyti eigą, o komanda atlikti atskirą jos dalį.

Patikimumas šiame pasirinkime reiškia daugiau nei sėkmingą galutinį atsakymą. Reikia žinoti, ar procesas išsaugo pakankamai būsenos tęsimui, ar klaida nukreipiama į numatytą šaką ir ar jautrus veiksmas tikrai laukia žmogaus sprendimo. Žetonų sąnaudos ir delsa yra kiti kriterijai: papildomas agentų pokalbis gali kainuoti daugiau, o patvirtinimo vartai sąmoningai sustabdo eigą. Todėl skirtingų konfigūracijų skaičiai prasmingi tik nurodžius, koks rezultatas laikomas užbaigta užduotimi.

Jei pasirinkimą lemia griežtas žetonų biudžetas ar delsos riba, palyginimui reikia tos pačios užduoties, modelio, įrankių ir vienodo sustojimo taško. Vieši bandymai padeda numatyti, kur gali atsirasti sąnaudų – tarp agentų perdavimų, modelio kvietimų ar patvirtinimo žingsnių. Architektūros klausimas lieka atskiras: kuris karkasas leidžia aiškiausiai aprašyti būtent tą eigą, kurios reikia jūsų sistemai.

Taip pat skaitykite:

Dalintis:

Prenumeruokite mūsų naujienlaiškį

Gaukite naujausias Web3, DI ir kriptovaliutų naujienas tiesiai į savo el. pašto dėžutę.

0