Kā lietot CrewAI: praktisks ceļvedis daudzaģentu darba plūsmām
Pārliecinošs solījums: ja kādreiz esi vēlējies klonēt savu labāko komandas biedru, lai ātrāk paveiktu projektu, CrewAI ir tam tuvu — tas koordinē vairākus mākslīgā intelekta aģentus, kas plāno, sadarbojas un kopīgi paveic darbu.
Šajā praktiskajā, risinājumu orientētajā ceļvedī tu uzzināsi tieši, kā lietot CrewAI: no ietvara instalēšanas un aģentu definēšanas līdz lomu, rīku, uzdevumu un strukturētu daudzaģentu darba plūsmu veidošanai, kas nodrošina reālus rezultātus. Apskatīsim modeļus pētniecībai, saturam, datu analīzei un koda ģenerēšanai — un kā izvairīties no izplatītām problēmām, piemēram, aģentu aklās ielas, promptu uzpūšanās un pārmērīgas rīku izmantošanas.
Mūsu mērķis: sniegt tev soli pa solim “izmēģini jau šodien” ceļu ar kodu nokopēt-/ielīmēšanai, rūdītām labākajām praksēm un dažiem darba plūsmu pamatiem, ko vari pielāgot. Neatkarīgi no tā, vai automatizē tirgus izpēti vai veido produkta specifikāciju no uzdevumiem, šis ir tavs efektīvs sākums CrewAI lietošanai.
Kas ir CrewAI (un kāpēc tas ir citādāk)
- CrewAI ir ietvars daudzaģentu sistēmu būvēšanai, kur katram aģentam ir sava loma, mērķis, rīki un noteikumi. Ietvars koordinē šos aģentus — nodod uzdevumus, dalās kontekstā un iterē pie gala rezultāta.
- Atšķirībā no vienas LLM uzvednes, CrewAI ievēro struktūru: aģenti ir skaidri definēti, uzdevumi modulāri, rīki ar atļaujām, un rezultāti pārskatāmi.
- Ieguvums: darba plūsmas sadalīšana (pētniecība → sintēze → rakstīšana → kvalitātes pārbaude), kas atspoguļo, kā strādā reālas komandas — tikai ātrāk, mērogojamāk un reproducējamāk.
Ātrā sākšana: kā lietot CrewAI 10 minūtēs
Zemāk redzama minimāla shēma, lai no nulles izveidotu darba daudzaģentu komandu. Pieņemsim, ka izmanto Python.
1) Instalēšana un iestatīšana
pip install crewai langchain-openai python-dotenv
Izveido .env failu ar saviem LLM sniedzēju atslēgām:
OPENAI_API_KEY=sk-your-key
# vai citi sniedzēji atbilstoši tavai tehnoloģiju kaudzei
2) Definē savus aģentus (lomas + mērķi + rīki)
from crewai import Agent
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="gpt-4o-mini", temperature=0.2)
researcher = Agent(
role="Tirgus pētnieks",
goal="Atrodi ticamus un aktuālus datus par mērķa tirgu un konkurentiem.",
backstory=(
"Tu esi rūpīgs analītiķis, kas pārbauda apgalvojumus, norāda avotus un apkopo "
"signālus no uzticamiem izdevumiem."
),
tools=[], # vēlāk pievieno tīmekļa/meklēšanas/skrāpēšanas rīkus
llm=llm
)
strategist = Agent(
role="Produkta stratēģis",
goal="Sintizē pētījumu skaidrā pozicionējumā un ceļvedī.",
backstory="Tu prioritē skaidrību, izpildāmību un izmērāmus rezultātus.",
tools=[],
llm=llm
)
writer = Agent(
role="Satura autors",
goal="Izveido labi strukturētu īsu aprakstu ar piemēriem un turpmākajiem soļiem.",
backstory="Tu raksti kodolīgā, pārliecinošā angļu valodā, ievērojot stila vadlīnijas.",
tools=[],
llm=llm
)
3) Izveido uzdevumus (ieejas, izejas un pieņemšanas kritēriji)
from crewai import Task
research_task = Task(
description=(
"Izpēti ASV SMB projektu vadības programmatūras tirgu 2025. gadā. "
"Identificē galvenos konkurentus, cenu līmeņus, ICP un trīs nepilnības. "
"Atgriez punktu veidā 3–5 avotus."
),
expected_output=(
"Markdown formāta īss apskats ar sadaļām: Tirgus lielums, Galvenie spēlētāji, Cenas, ICP, "
"Nepilnības, Avoti (ar saitēm)."
),
agent=researcher
)
synthesis_task = Task(
description=(
"Izmantojot pētījumu ziņojumu, izveido pozicionēšanas frāzi, 2–3 atšķirības, "
"un 90 dienu ceļvedi ar posmiem."
),
expected_output="Konkretizēta stratēģijas piezīme (līdz 400 vārdiem).",
agent=strategist
)
writing_task = Task(
description=(
"Pārvērt stratēģijas piezīmi publiski pieejamā vienas lapas formātā. Iekļauj virsrakstu, "
"vērtības piedāvājumu, svarīgākās iezīmes un aicinājumu uz darbību."
),
expected_output="Markdown formāta viena lapa, piemērota mājaslapai.",
agent=writer
)
4) Koordinē komandu (plūsma + atmiņa)
from crewai import Crew
crew = Crew(
agents=[researcher, strategist, writer],
tasks=[research_task, synthesis_task, writing_task],
process="sequential", # pārsūti rezultātus secīgi
verbose=True
)
result = crew.kickoff
print(result)
Tev ir pirmais darbspējīgais process. Tu definēji aģentus, sasaistīji uzdevumus un palaidi secīgu plūsmu. Lai paplašinātu, pievieno rīkus (meklēšana, skrāpēšana, koda izpilde), validācijas soļus un paralēlas kārtas.
Mentālais modelis CrewAI projektiem
Domā kā projektu vadītājs:
- Lomas: Kas dara ko? Pētnieks, analītiķis, inženieris, recenzents.
- Noteikumi: Kādi standartiem jāatbilst? Stila vadlīnijas, citāti, testi.
- Rīki: Kādas iespējas ir atļautas? Tīmekļa meklēšana, vektoru datubāze, Python, API.
- Uzdevumi: Kā sadalīt problēmu? Ieejas, izejas, pieņemšanas kritēriji.
- Pārejas: Kas tiek nodots tālāk? Materiāli, metadati, ierobežojumi.
- Atsauksmes: Kas validē? QA aģents, cilvēks cilpā vai testi.
Ar CrewAI tavais kods atspoguļo šo operacionālo modeli.
Kā lietot CrewAI reālam darbam: 5 pārbaudīti modeļi
1) Pētniecība → sintēze → melnraksts (saturs un atskaites)
- Aģenti: Pētnieks, redaktors, autors, faktu pārbaudītājs.
- Rīki: tīmekļa meklēšana, avotu pārbaude, stila rokasgrāmata.
- Padoms: piespied citējumus un “apgalvojumu tabulu”, lai novērstu halucinācijas.
fact_checker = Agent(
role="Faktu pārbaudītājs",
goal="Validē visus apgalvojumus pret primārajiem avotiem; iezīmē vāji citētus.",
backstory="Skeptisks, rūpīgs, neitrāls.",
llm=llm
)
qa_task = Task(
description="Validē visus faktus; pielabo tekstā ar [FIX] atzīmēm.",
expected_output="Labots melnraksts ar labojumu kopsavilkumu.",
agent=fact_checker
)
2) Produkta specifikācija no uzdevumiem (inženierija)
- Aģenti: uzdevumu grupētājs, specifikāciju autors, recenzents, testu autors.
- Rīki: uzdevumu izsekotāja API, koda konteksts ar iegultiem datiem, vienības testu ģenerators.
- Padoms: pievieno automātisko "Darbības pabeigšanas" pārbaudes sarakstu.
3) Dati → ieskats → naratīvs (analītika)
- Aģenti: datu apstrādātājs (Python), analītiķis, stāstnieks.
- Rīki: Pandas, SQL, grafiki, piezīmjdatora izpilde.
- Padoms: izmanto aģentu ar iespējām
python izpildei pārbaudāmai analītikai.
4) Koda ģenerēšana ar aizsargbarjerām
- Aģenti: plānotājs, kodētājs, linters, testētājs, recenzents.
- Rīki: repo lasītājs, vienības testa palaišana, formatētājs, drošības skeneris.
- Padoms: prasīt recenzentam atsaukties uz testiem, kas pierāda pareizību.
5) Klientu e‑pasta secības mērogā
- Aģenti: segmentētājs, tekstu autors, personalizētājs, QA.
- Rīki: CRM API, veidnes, zīmola toni noteicošas vadlīnijas.
- Padoms: pievieno e-pastu atkrišanas/spama pārbaudes rīku un uzspied A/B variantus.
Rīku pievienošana: Dod aģentiem reālas iespējas
CrewAI izceļas, kad aģenti drīkst lietot rīkus. Piemēram, piešķir pētniekam tīmekļa meklēšanu un URL lasītāju.
from langchain_community.tools import DuckDuckGoSearchRun
from langchain_community.document_loaders import WebBaseLoader
search = DuckDuckGoSearchRun
def web_search_tool(query: str):
return search.run(query)
def read_url_tool(url: str):
loader = WebBaseLoader(url)
docs = loader.load
return "\n\n".join([d.page_content[:2000] for d in docs])
researcher.tools = [web_search_tool, read_url_tool]
Labākās prakses:
- Minimālais tiesību apjoms: pievieno tikai tos rīkus, kas aģentam patiešām nepieciešami.
- Shēmas disciplīna: rīkiem jābūt deterministiskiem un tipētiem; pēc iespējas atgriež kodolīgu, strukturētu tekstu (JSON/Markdown).
- Izkārtošanas kontrole: rīku rezultātus uzturi īsus; pirms nodošanas apkopo.
Uzdevumu veidošana, kas izdodas
Labi veidoti uzdevumi veido vai izjauc daudzaģentu sistēmas.
- Esi konkrēts: “Atgriez markdown tabulu ar kolonnām X, Y, Z.”
- Definē pieņemšanas kritērijus: “Iekļauj 3 citātus ar saitēm uz primārajiem avotiem.”
- Uzstādi ierobežojumus: vārdu skaits, laika vai soļu limits samazina novirzes.
- Iekļauj piemērus: sniedz nelielu specifikāciju vēlamajam iznākumam.
- Pievieno atmiņas tagus: izmanto konsekventas virsrakstu/atslēgu vienības uzdevumu savienošanai.
Piemēra uzdevuma skelets:
Task(
description=(
"Apkopojiet 5 jaunākos pētījumus par attālinātas darba produktivitāti (2023–2025), "
"ietverot metodoloģiju, parauga lielumu un galvenās atziņas."
),
expected_output=(
"Markdown formāts ar H2 sadaļām katram pētījumam, beigās salīdzinājuma tabula un saites."
),
agent=researcher
)
Koordinēšanas veidi: secīgi, paralēli vai jaukts
- Secīgi: uzticama pāreja; lēnāks, bet vieglāk saprotams.
- Paralēli: vairāki aģenti strādā vienlaikus (piemēram, 3 pētnieki); rezultātus apvieno vēlāk.
- Jaukts: paralēla pētniecība → apvienošana un QA secīgi.
Jaukta piemērs:
r1 = Agent(role="Pētnieks A", goal="Koncentrējas uz cenām", backstory="", llm=llm)
r2 = Agent(role="Pētnieks B", goal="Koncentrējas uz funkcijām", backstory="", llm=llm)
# Paralēli uzdevumi r1 un r2; sintēzes uzdevums apvieno rezultātus.
Padoms: apvienojot, liec sintēzes aģentam novērst dublikātus, atrisināt konfliktus un atsaukties uz spēcīgākiem avotiem.
Aizsargbarjeras un QA: uzturi aģentus godīgus
- Referees: pievieno recenzentu vai faktu pārbaudītāju ar veto tiesībām.
- Pārbaudes saraksti: kodē atbilstību (privātums, drošība, zīmola toni) kā QA aģenta ņemamus punktus.
- Paškritika: lūdz aģentiem iekļaut īsu sadaļu "Ko es varēju nepamanīt".
- Determinisms: QA aģentiem izmanto zemāku temperatūru.
qa = Agent(
role="QA recenzents",
goal="Pārliecinās, ka iznākumi atbilst pieņemšanas kritērijiem un stila vadlīnijām.",
backstory="Esi stingrs un pedantisks.",
llm=llm
)
Promptu veidošana CrewAI aģentiem
Tavi aģentu prompti ir kā īsi darba apraksti. Turies pie kodolīguma.
- Lomas prompta teksts: Kas tu esi, ko optimizē.
- Mērķa prompta teksts: Vēlamais gala stāvoklis.
- Ierobežojumi: vārdu skaits, formāts, tonis, atsauces.
- Rīki: nosaukumi, kad lietot, ko atgriezt.
- Piemēri: 1–2 īsi, reālistiski paraugi.
Fragments:
researcher = Agent(
role="Analītiskais pētnieks",
goal=(
"Sniedz kompaktu, precīzu kopsavilkumu ar 3–5 ticamiem citātiem un riska piezīmi."
),
backstory=(
"Tu pārbaudi apgalvojumus, dod priekšroku primārajiem avotiem un iezīmē nenoteiktību."
),
llm=llm
)
Novērojamība: skaties, ko aģenti darīja (un kāpēc)
Ieslēdz detalizētu žurnālu un saglabā materiālus:
- Glabā katra uzdevuma promptu, iznākumu un rīku izsaukumus.
- Saglabā palaišanas manifestu ar metadatiem (modelis, temperature, rīki).
- Uzturi starpposma piezīmju bloku; tas palīdz atkļūdošanā un auditos.
Šablons:
crew = Crew(..., verbose=True, output_log_file="runs/2025-crew.log")
Izmaksu, latentuma un uzticamības padomi
- Sērijveida izpilde: paralelizē neatkarīgus uzdevumus; ierobežo vienlaicīgumu, lai izvairītos no ātruma ierobežojumiem.
- Apkopojums: kompresē vidēja līmeņa materiālus, lai samazinātu tokenu apjomu.
- Kešošana: kešo stabilus soļus (piemēram, tirgus definīcijas) ar vektoru glabātuvēm.
- Rezerves varianti: nodrošini rezerves modeli vai atkārtošanas politiku nestabilām izsaukumiem.
- Cilvēks cilpā: ievieto apstiprināšanas posmus augsta riska soļos.
Izplatītas problēmas (un kā tās risināt)
- Problēma: neprecīzi uzdevumi → rezultatīvi izplūduši iznākumi.
- Risinājums: pievieno skaidrus pieņemšanas kritērijus un piemērus.
- Problēma: pārāk daudzi rīki → novērš uzmanību un augstākas izmaksas.
- Risinājums: minimālais tiesību apjoms un tikai konkrētiem uzdevumiem vajadzīgie rīki.
- Problēma: bezgalīgas cilpas vai pārmērīga iterācija.
- Risinājums: uzstādi soļu/laika limitus un “apturēt, ja kritēriji izpildīti” klauzulas.
- Problēma: konteksta zudums starp aģentiem.
- Risinājums: izmanto strukturētas pārejas objektus (JSON) un konsekventus virsrakstus.
- Problēma: QA kā pēcdomu posms.
- Risinājums: QA definējiet kā pirmšķiras aģentu ar veto tiesībām.
Pilna procesa piemērs: konkurences apskatu ģenerators
Mērķis: ģenerēt konkurenci salīdzinošu apskatu par trim rīkiem mērķpersonai.
Aģenti:
- Personas analītiķis → definē sāpes un darāmos darbus.
- Pētnieks → vāc datus un citātus.
- Sintēzes veidotājs → veido salīdzinājuma tabulu un ieskatus.
- Autors → veido gala apskatu.
- QA → pārbauda avotus un skaidrību.
Skelets:
persona = Agent(role="Personas analītiķis", goal="Definē ICP un JTBD.", llm=llm)
researcher = Agent(role="Pētnieks", goal="Savāc ticamus datus.", llm=llm)
synth = Agent(role="Sintēzes veidotājs", goal="Salīdzina un interpretē.", llm=llm)
writer = Agent(role="Autors", goal="Izveido vadībai gatavu apskatu.", llm=llm)
qa = Agent(role="QA", goal="Pārbauda apgalvojumus un skaidrību.", llm=llm)
persona_task = Task(description="Definē ICP un JTBD SaaS RevOps līderiem.", agent=persona,
expected_output="Punkti + sāpes + panākumu metri.")
research_task = Task(description="Savāc cenas, funkcijas un atsauksmes par 3 rīkiem.", agent=researcher,
expected_output="Tabula + 5 citāti.")
synth_task = Task(description="Izveido salīdzinājuma matricu un trīs galvenos ieskatus.", agent=synth,
expected_output="Markdown tabula + ieskati.")
write_task = Task(description="Izveido 1 lapas apskatu ar ieteikumiem.", agent=writer,
expected_output="Vadībai domāts apskats markdown formātā.")
qa_task = Task(description="Pārbauda precizitāti un lasāmību; izdara labojumus.", agent=qa,
expected_output="Tīrs, verificēts apskats.")
crew = Crew(agents=[persona, researcher, synth, writer, qa],
tasks=[persona_task, research_task, synth_task, write_task, qa_task],
process="sequential", verbose=True)
print(crew.kickoff)
Kad lietot CrewAI vai vienu promptu
Lieto CrewAI, ja:
- Uzdevums dabiski sadalās lomās vai posmos.
- Nepieciešama izsekojamība, kvalitātes pārbaude vai rīku lietošana.
- Izveido atkārtoti lietojamu procesu, nevis vienreizēju risinājumu.
Izmanto vienu promptu, ja:
- Uzdevums ir īss, subjektīvs un neprasa ārējos rīkus.
- Svarīgāka ir ātrība nekā struktūra.
Starppiezīme: raksti ātrāk ar AI sānu paneli
Ja izmanto daudzaģentu darba plūsmas satura izpētei, struktūras veidošanai un rakstīšanai, vērts pieminēt, ka AI sānu panelis, piemēram, Sider.ai, var darboties līdzās tavām pārlūkprogrammām un dokumentiem, apkopo lapas kopsavilkumus, ģenerē struktūras un uzlabo melnrakstus reāllaikā. Tas neaizvieto CrewAI koordināciju, bet paātrina manuālos darbus — fragmentu vākšanu, tekstu pārrakstīšanu vai toņu pārbaudi — pirms satura ievietošanas komandā. Darbības nākamie soļi
- Instalē CrewAI un palaid ātrās uzsākšanas piemēru.
- Izvēlies reālu darba plūsmu (pētniecība → melnraksts → QA) un ieprogrammē to.
- Pievieno pa vienam rīkam; mērī rezultāta kvalitātes un izmaksu ietekmi.
- Ievies QA aģentu ar skaidriem pieņemšanas kritērijiem.
- Pārej uz jauktu koordinācijas modeli ātruma palielināšanai.
Galvenās atziņas
- CrewAI pārvērš sarežģītus projektus modulārās daudzaģentu darba plūsmās.
- Veiksmi nodrošina skaidras lomas, precīzi uzdevumi un disciplinēta rīku lietošana.
- Aizsargbarjeras (QA, pārbaudes saraksti, limiti) samazina izmaksas un uzlabo kvalitāti.
- Sāc no maza, tad mērogo ar paralēlu izpēti un jauktām plūsmām.
Mini pārbaudes saraksts: kā efektīvi lietot CrewAI
- Definē lomas, mērķus un rīkus skaidri un pilnībā.
- Raksti uzdevumus ar pieņemšanas kritērijiem un piemēriem.
- Lieto secīgu veidu uzticamībai, jauktu ātrumam.
- Agrīni pievieno QA aģentu ar veto tiesībām.
- Žurnālo visu; glabā materiālus auditiem.
- Optimizē izmaksas ar kopsavilkumiem, kešošanu un seriālām izpildēm.
Biežāk uzdotie jautājumi
J1: Kas ir CrewAI un kā to lietot daudzaģentu darba plūsmām?
CrewAI ir ietvars vairāku mākslīgā intelekta aģentu koordinēšanai ar lomām, uzdevumiem un rīkiem. Tas darbojas, definējot aģentus, veidojot uzdevumus ar pieņemšanas kritērijiem un palaižot komandu, kas koordinē darbu pārejas līdz gala rezultātam.
Q2: Kā es varu pievienot tādus rīkus kā tīmekļa meklēšanu CrewAI aģentiem?
Pievienojiet rīku funkcijas aģentam un norādiet, kad tās jāizmanto. Saglabājiet strukturētus un īsus izvades datus (piemēram, JSON vai markdown), lai kontrolētu izmaksas un uzlabotu nodošanu.
Q3: Kad man vajadzētu izmantot CrewAI viena LLM uzvednes vietā?
Izmantojiet CrewAI, kad uzdevumu var sadalīt posmos, kad ir nepieciešama rīku izmantošana vai kvalitātes nodrošināšana, vai kad ir nepieciešamas atkārtojamas cauruļvadi. Izmantojiet vienu uzvedni ātriem, subjektīviem uzdevumiem, kuriem nav nepieciešama struktūra.
Q4: Kā es varu novērst halucinācijas CrewAI izvades datos?
Pievienojiet faktu pārbaudītāju vai kvalitātes nodrošināšanas aģentu ar veto tiesībām, pieprasiet atsauces uz primārajiem avotiem, iestatiet zemu temperatūru kvalitātes nodrošināšanai un norādiet pieņemšanas kritērijus, piemēram, pretenziju tabulu.
Q5: Vai CrewAI var veikt uzdevumus paralēli, lai paātrinātu procesu?
Jā. Izmantojiet paralēlus aģentus neatkarīgiem uzdevumiem (piemēram, vairākiem pētniekiem) un pēc tam sintezatora uzdevumu, lai apvienotu rezultātus. Hibrīda orķestrācija līdzsvaro ātrumu un uzticamību.