Eszközök/MI-ágensek
CrewAI teszt: crewsek, flow-k és a tokenelsőszlám
A CrewAI a MIT-licencsel terjesztett Python-keretrendszer többügynökös rendserekhez: crew az autonóm együttműködéshez, flow a kontrollált állapothoz. Mennyibe kerül egy menet tokenben, és hol hát.
- Típus
- Agent framework
- Ár
- MIT · enterprise paid
Balázs Csorba··10 perc olvasás
- Multi-agent
- Agent orchestration
- Python
- Flows
- Token cost

A lényeg röviden
- A CrewAI 1.15.23 MIT-licencű Python 3.10-től 3.13-ig, saját futtatási korlát nélkül, extra csomagokkal toolokhoz, LiteLLM-hez, mem0-hoz, Qdranthoz és Bedrockhoz.
- A crew-ek modellhívásokon keresztül delegálnak, ezért a menet költségét a topológia szabja meg: a szerep-promptok, a hierarchikus manager, három guardrail-újpróba és a memóriaelemzés mind további hívás.
- A memória LanceDB vektorokban tárol, és modellt hív mentéskor és mély előhíváskor, az embedding-híváson felül.
- A beépített tracing CrewAI saját backendjére megy, és fiókot kér az első futáskori hozzájárulási kérdéssel együtt; a Langfuse, a Phoenix, a Braintrust és az MLflow helyett OpenTelemetry-en át működik.
- A keretrendszer akkor a legerősebb, ha a logikát a flow tartja, és egy-két ügynök végzi a nyitott munkát.
A CrewAI MIT-licencsel terjesztett Python-keretrendszer többügynökös rendserekhez, és a kategóriában ez a legkevésbé bonyolult: az ügynök role-t, goal-t és backstory-t kap, a feladat elvárt kimenetet, egy crew pedig ennek kettőjét néhány kódsorban összefogja. A verdictem: jól megépített, szokatlanul jól dokumentált és csendben drága. Minden szerkezeti funkció, amit a keretrendszer a puszta prompt fölé tesz, egy további modellhívásként van megvalósítva, és az éles számla pontosan ezekből áll.
Ugyanaz a réteg, mint a LangGraph, az AutoGen vagy a Pydantic AI, és a verseny a kezelhetőségért folyik, nem a kontrollért. A szállító két részre bontja az ajánlatot: a PyPI-könyvtár, amely ingyenes és korlátlan, és a CrewAI AMP, egy hosztolt control plane vizuális szerkesztővel, tracinggel és governance-szel, amelyet egyedi áron adnak el. Minden alább a könyvtárra vonatkozik, mert azt telepíted.
Mi a CrewAI
A könyvtár 2023 decemberében jelent meg először a PyPI-n, és a CrewAI Inc. fejleszti nyíltan. Az 1.15.23 verzió 2026. szeptember 28-án jelent meg, Python 3.10-től 3.13-ig igényli, a repóban 59.413 csillag és 8.655 fork található. Egyetlen, körülbelül 1,2 MB-os wheelként települ, opcionális extrákkal a toolokhoz, LiteLLM-hez, mem0-hoz, Qdranthoz, Bedrockhoz, Anthropichoz és A2A-támogatáshoz.
- MIT-licenc, nincs futtatási keret, és nincs futásidejű függősége a LangChaintől vagy más agent keretrendszertől.
- Két réteg: a flow-k, amelyek birtokolják az állapotot és a futási sorrendet, és a crew-ek, vagyis az ügynökök csoportjai, amelyek feladatokat hajtanak végre.
- Egy ügynök egy attribútumokkal rendelkező prompt: role, goal és backstory, plusz opcionális eszközlista, LLM és memóriahatókör.
- A folyamatok szekvenciálisak vagy hierarchikusak. A hierarchikushoz manager-LLM kell, és a munkát modellhívásokkal delegálja.
- Az eredmény lehet szöveg, JSON vagy Pydantic-modell, ami a tisztta visszaút az alkalmazáskódba.
- MCP-szerverek a crewai-tools csomagon keresztül csatlakoznak az ügynökökhöz, stdio, SSE vagy streamable HTTP transzporttal.
Hogyan fut egy menet
A flow egy olyan metódusosztály, amelyet dekorátorok kötnek össze. A @start() jelöli a belépési pontokat, a @listen() egy metódust egy másik eredményéhez köt, a @router() pedig elágazások közül választ, és az and_ meg or_ kombinálja a feltételeket. Az állaptobjektum Pydantic-modell, tehát a lépések közötti adat alakja deklarált, nem kitalált, a flow.plot() pedig kirajzolja a gráfot. Ha egyszerre több @start()-metódus teljesül, azok párhuzamosan futnak.
Egy flow-lépésen belül a crew állítja össze a promptot: minden ügynök role-ja, goalja és backstoryje minden feladat elé kerül, a feladat leírása interpolálódik, és az egyik feladat kimenete a következő kontextusává válik. Egy ügynök alapból 20 iterációig fut, kétszer próbálja újra hiba esetén, és összefoglalja az üzeneteket, hogy a kontextusablakon belül maradjon. Éppen erre kell figyelni. Az alapértelmezettekkel egy négy feladatos crew már négy hosszú prompt, mielőtt bármit delegálna, a memóriás crew pedig minden előhíváshoz hozzáad egy embedding-hívást és egy modellhívást a tárolt tartalom elemzésére és összevonására.
Első lépések
A CLI a leggyorsabb út be. A uv tool install crewai a PATH-ra tesz egy crewai binárist, a crewai create crew <név> JSON-first projektet vázol agents/*.jsonc és crew.jsonc fájlokkal, a crewai create flow <név> pedig flow-projektet. A crewai install uv-val oldja fel a függőségeket, a crewai run lefuttatja a belépési pontot, a crewai memory pedig terminál böngészőt nyit a tárolóhoz. A --classic flag visszaállítja a régebbi, Python osztály plusz YAML elrendezést.
from crewai import Agent, Crew, Process, Task
from crewai.flow import Flow, listen, start
from pydantic import BaseModel
class ReportState(BaseModel):
topic: str = "agent memory"
brief: str = ""
class ReportFlow(Flow[ReportState]):
@start()
def pick_topic(self):
self.state.topic = "agent memory"
@listen(pick_topic)
def research(self):
analyst = Agent(
role="Research analyst",
goal=f"Collect verifiable facts about {self.state.topic}",
backstory="You read primary sources and quote them.",
llm="openai/gpt-4o-mini",
)
task = Task(
description="Write a brief on {topic}.",
expected_output="Five bullets, each with a source URL.",
agent=analyst,
)
crew = Crew(agents=[analyst], tasks=[task], process=Process.sequential)
self.state.brief = crew.kickoff(inputs={"topic": self.state.topic}).raw
ReportFlow().kickoff()Ez a normál úton legfeljebb két modellhívásba kerül: egy az ügynök reasoning- és toolsciklusába, egy a végső válaszba. Ha jön egy második ügynök, egy manager vagy memória, a szám gyorsan nő, ezért a crew.usage_metrics és a flow.usage_metrics az elsők, amiket dashboard mögé kell tenni.
Memória és knowledge
A memóriát egyetlen Memory osztályba szervezték át. A rekordok LanceDB vektorok a .crewai/memory alatt, rangsorolva a szemantikus hasonlóság, a 30 napos felezési idővel mért frissesség és a mentéskor a modell által adott fontosság pontosságának keverékével. Az előhívásnak két mélysége van: a shallow tiszta vektorkeresés, nagyjából 200 ms, modellhívás nélkül, a deep előbb elemzi a kérdést, és csak 200 karakternél hosszabb kérésnél fut le. Memória esetén a crew minden feladatkimenetből tényeket von ki, és minden feladat előtt visszahívja a kontextust.
- A tároló alapból helyi LanceDB, és a backend egy protokoll, így másik vektortárral cserélhető.
- Az alapértelmezett embedder az OpenAI text-embedding-3-large, 3.072 dimenzióval, az elemző modell alapja a gpt-4o-mini. Mindkettő állítható.
- A knowledge források külön mechanizmus: ChromaDB kollekciókba kerülnek, 0,35 alapértelmezett relevanciaküszöbbel és három dokumentummal lekérdezésenként.
- Az írások háttérszálon futnak, az előhívás megvárja őket, így a menet végén nem vész el semmi, de az elemzés tokenbe kerül.
A memória az a rész, amit adatvédelmi átnézés előtt el kell olvasni. A dokumentáció világosan kimondja, hogy a rekordok tartalma elküldésre kerül a beállított LLM-nek a scope, a kategória és a fontosság elemzésére, így minden érzékeny adathoz lokális modell kell mindkét oldalon, az LLM-en és az embedderen is.
Élesben
A könyvtár gyorsan mozog. Stabil kiadások érkeztek szeptember 9-én, 16-án és 28-án, a dev előkiadások pedig naponta, szóval hosszú életű rendszerben a pinelés nem opcionális. A repóban 570 nyitott issue van, és ugyanaz a disztribúció ma már az open source futtatókörnyezetet és a hosztolt platform kliensét is hordozza, ezért egy changelog-bejegyzésben SQLite-javítás és platformfunkció is egymás mellé kerülhet.
Megfigyelhetőség
A beépített tracinget érdemes alaposabban megnézni. Alapból ki van kapcsolva, és a telemetriától külön konfigurálható, de a cél CrewAI saját szervere: kell hozzá egy ingyenes AMP-fiók, hitelesített CLI, és az első futáskor a folyamat rákérdez, hogy megosztható-e az execution trace. A trace-ek promptokat, bemeneteket és kimeneteket tartalmaznak, a helyi puffer pedig 1.000 spánt tart, mielőtt a legrégebbiek kidőlnek. Saját hosztoláshoz az OpenTelemetry-integrációk a jobb alapértelmezés, és a dokumentáció kész útvonalakat ad a Langfuse, az Arize Phoenix, a Braintrust, a Datadog, az MLflow, az Opik, a Patronus, a Portkey, a Weave és a Galileo számára.
- Állítsd be a
CREWAI_DISABLE_TELEMETRY=1értéket, ha nincs okod névtelen használati adatot küldeni a szállítónak. - Az első futás tracingje a terminálban kér engedélyt, és eldobja a puffert, ha senki nem válaszol; a
crewai traces enableés acrewai traces disablekésőbb módosítja ezt. - A
kickoff_async()csak szálba csomagolja a szinkron futást. Azakickoff()és azakickoff_for_each()a natív async útvonalak, és ezek valók terhelés alatt. - A
@persistalapból helyi SQLite adatbázisba írja a flow állapotát. Arestore_from_state_idelágaztat egy futást egy mentett pillanatképből, míg akickoff(inputs={"id": ...})az eredetit folytatja.
Guardrail-ek
A task guardrail-eknek két formája van. Egy Python callable megkapja a feladat kimenetét és egy ítéletet ad vissza, egy egyszerű stringből pedig LLM guardrail lesz, amely az ügynök saját modelljével értékeli a kimenetet. Az újrapróbálások alapértéke három, így egy soha nem átmenő guardrail háromszorosára emelheti egy feladat költségét, mielőtt bármi eszkalálódna. A guardrail-ek a kimenetet validálják; nem védőfal az eszközhívások körül, és egy tool eredményében érkező prompt injection simán átesik rajtuk.
Licenc és költség
A licenc a könnyű rész. A CrewAI MIT-licencű, futtatási korlát nélkül, és der Framework maga csak annyival járul hozzá a költséghez, amennyi modellforgalmat a saját funkciói generálnak. A fizetős termék a CrewAI AMP: ingyenes Basic csomag havi 50 workflow-futtatással, és egyedi áron egyeztetett Enterprise szint.
| Mit futtatsz | Ár | Mit tartalmaz |
|---|---|---|
| CrewAI OSS | Ingyenes | Nincs futtatási keret. A modellhívásokat, az eszközöket és a saját infrastruktúrádat te fizeted. |
| CrewAI AMP Basic | Ingyenes | 50 workflow-futtatás havonta, vizuális szerkesztő, GitHub szinkron, tracing és OpenTelemetry. |
| CrewAI AMP Enterprise | Egyedi árajánlat | SSO, RBAC, workload identity, PII-redakció, saját VPC vagy on-prem, 45 napos onboarding. |
Hol akad
A gyengeségek strukturálisak, és érdemes őket a bármilyen összehasonlítás előtt kimondani. Az absztrakció minden rétege egy prompt: a role, a goal és a backstory minden feladat elé kerül, tehát a kontextus a crewwel együtt nő, a keretrendszer alapértelmezései pedig, húsz iteráció, három guardrail-újrapróbálás és memóriaelemzés mentéskor és előhíváskor, separat számlázódnak. A delegálás és a hierarchikus manager a legrosszabb tételek, mert minden ugrás egy újabb modellhívás, amelynek egyetlen feladata eldönteni, ki dolgozik legközelebb. A Python az egyetlen futtatókörnyezet, egy olyan kategóriában, ahol a körülvevő alkalmazás gyakran TypeScript. A fizetős platformon kívül pedig a hibakeresés a napló kimenetére támaszkodik, ami gyengébb, mint egy gráf-futtató, amely újrajátszhatja a hibás csomópontot.
| Keretrendszer | Hogyan van bekötve a munka | Költség feladatonként | Hibakeresés |
|---|---|---|---|
| CrewAI | Szerepek és feladatok; a flow tartja az állapotot és a sorrendet | A legmagasabb: a delegálás, a memóriaelemzés és a guardrail-újrapróbálás modellhívásokat ad hozzá | Az AMP trace-ekhez fiók kell; OpenTelemetry hookok Langfuse, Phoenix, Braintrust, MLflow felé |
| LangGraph | Explicit gráf, típusos állapot, checkpointok | A legalacsonyabb: a routing sima Python | LangSmith trace-ek, checkpoint-újrajátszás bármely csomópontból |
| AutoGen | Beszélgető csapatok mintákkal és leállási feltételekkel | Magas és nyitott, ha nem állítasz be turn limitet | AgentChat naplózás; a GraphFlow irányított gráfot ad hozzá |
A LangGraph jobb eszköz egy fix éles pipeline-hoz, amely hurkokat és checkpointokat használ, és a költségen is nyer, mert a routing sima Python. Az AutoGen jobb eszköz a nyílt beszélgetéshez. A CrewAI ott nyer, ahol ez számít: ha a rendszert át kell adni annak, aki nem mérnök. A szókészlet egy állásleírás, a JSONC vagy YAML konfiguráció pedig olvasható. A szállító saját dokumentációja LangGraphből CrewAI-be vezető migrációs útmutatót és összehasonlító notebookokat is tartalmaz, amit szerződés előtt jó tudni.
Verdict
A CrewAI jó alapértelmezés azoknak a csapatoknak, akik ügynök alakú kódot akarnak kézzel bekötött gráf nélkül, és rossz alapértelmezés mindenhol, ahol a tokenelsőszlám a szűk keresztmetszet. A keretrendszer kompetens, a dokumentációja jobb a versenytársakénál, és a flow réteg önmagában is megérdemli a helyét. Az ár az, hogy az autonómia modellhívásokként van kifejezve, és a keretrendszer szívesen megteszi ezeket helyetted.
- Vedd fel, ha a pipeline nagyrészt lineáris, és az drága rész egy vagy két nyitott lépés. Tartsd kicsin a crew-et, és a logikát hagyd a flow-ban.
- Vedd fel, ha nem mérnököknek kell olvasniuk vagy szerkeszteniük a konfigurációt, mert egy role, egy goal és egy YAML fájl könnyebben átnézhető, mint egy csomópontgráf.
- Ne vedd fel fix, nagy volumenű pipeline-hoz, ahol minden ugrás egy sima függvényhívás. A koordinációs többlet olyan rugalmasságot vásárol, amit ilyen pipeline soha nem használ.
- Ne vedd fel, ha első naptól kell checkpoint-újrajátszás és költség csomópontonként, anélkül, hogy fizetnél a platformért vagy magad kötnéd be az OpenTelemetryt.
- Mérj, mielőtt megtartod: tedd az usage_metrics-et dashboard mögé az első héten, és hasonlítsd össze a crew-et ugyanazokkal a lépésekkel, sima flow-ként megírva.
Források
Gyakori kérdések
Ingyenes a CrewAI éles használatra?
Igen. A keretrendszer MIT-licencű futtatási korlát nélkül; a költséget az ügynököd modellhívásai és a saját infrastruktúrád adja. A kereskedelmi termék, a CrewAI AMP, ingyenes Basic csomagot kínál havi 50 workflow-futtatással, az Enterprise szintet egyedi áron adják.
Függ a CrewAI a LangChaintől?
Nem. A csomagnak nincs LangChain-függősége, és önálló keretrendszerként pozicionálja magát. A modellekhez a szolgáltatói SDK-kon keresztül jut, a LiteLLM pedig a crewai[litellm] extra csomagban érhető el.
Miben különbözik a crew és a flow?
A flow @start, @listen és @router metódusokon keresztül birtokolja az állapotot és a futási sorrendet; a crew ügynökök és feladatok halmaza, amely egy flow-lépésen belül fut. A szállító saját ajánlása az, hogy flow-val indulj, és akkor delegálj egy crewnek, ha egy lépésnek autonómiára van szüksége.
Biztonságos a CrewAI memóriája érzékeny adatokhoz?
Alapból nem. A rekordok tartalma a scope, a kategória és a fontosság elemzésére elküldésre kerül a beállított LLM-nek, az alapértelmezett embedder pedig az OpenAI text-embedding-3-large. A dokumentáció érzékeny tartalomhoz lokális LLM-et és lokális embeddert, például Ollamát javasol.