Kako koristiti CrewAI: Praktični vodič za radne procese s više agenata
Odvažna tvrdnja: Ako ste ikada poželjeli moći klonirati svog najboljeg suigrača kako biste brže riješili projekt, CrewAI vas približava tome — orkestriranjem više AI agenata koji planiraju, surađuju i zajedno šalju rad.
U ovom praktičnom, rješenjima usmjerenom vodiču, naučit ćete točno kako koristiti CrewAI: od instaliranja okvira i definiranja agenata, do izgradnje uloga, alata, zadataka i strukturiranih radnih procesa s više agenata koji donose stvarne rezultate. Pokrit ćemo obrasce za istraživanje, sadržaj, analizu podataka i generiranje koda — te kako izbjeći uobičajene zamke poput slijepih ulica agenata, preopterećenosti upitima i prekomjerne upotrebe alata.
Naš fokus: pružiti vam korak-po-korak put „isprobajte ga danas” s kodom za kopiranje i lijepljenje, provjerenim najboljim praksama i nekoliko nacrta radnog procesa koje možete prilagoditi. Bilo da automatizirate istraživanje tržišta ili gradite specifikaciju proizvoda iz tiketa, ovo je vaš ulaz u učinkovito korištenje CrewAI.
Što je CrewAI (i zašto je drugačiji)
- CrewAI je okvir za izgradnju sustava s više agenata gdje svaki agent ima ulogu, cilj, alate i pravila. Okvir zatim koordinira te agente — predaje zadatke, dijeli kontekst i iterira prema rezultatu.
- Za razliku od jednog LLM upita, CrewAI nameće strukturu: agenti su eksplicitni, zadaci su modularni, alati su dopušteni, a rezultati su provjerljivi.
- Isplata: razloženi radni procesi (istraživanje → sinteza → pisanje → QA) koji odražavaju kako rade stvarni timovi — samo brže, skalabilnije i ponovljivo.
Brzi početak: Kako koristiti CrewAI u 10 minuta
U nastavku je minimalni uzorak koji vas vodi od nule do radne posade s više agenata. Pretpostavit ćemo Python.
1) Instalacija i postavljanje
pip install crewai langchain-openai python-dotenv
Stvorite .env datoteku s ključevima vašeg LLM pružatelja:
OPENAI_API_KEY=sk-your-key
# ili drugi pružatelji koje podržava vaš stog
2) Definirajte svoje agente (uloge + ciljevi + alati)
from crewai import Agent
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="gpt-4o-mini", temperature=0.2)
researcher = Agent(
role="Market Researcher",
goal="Find credible, current insights on the target market and competitors.",
backstory=(
"You are a diligent analyst who verifies claims, cites sources, and summarizes "
"signals from reputable publications."
),
tools=[], # add web/search/scraper tools later
llm=llm
)
strategist = Agent(
role="Product Strategist",
goal="Synthesize research into a crisp positioning and roadmap options.",
backstory="You prioritize clarity, feasibility, and measurable outcomes.",
tools=[],
llm=llm
)
writer = Agent(
role="Content Writer",
goal="Produce a well-structured brief with examples and next steps.",
backstory="You write in concise, persuasive English and follow style guides.",
tools=[],
llm=llm
)
3) Stvorite zadatke (ulazi, izlazi i kriteriji prihvatljivosti)
from crewai import Task
research_task = Task(
description=(
"Research the US SMB project management software market in 2025. "
"Identify top competitors, pricing tiers, ICPs, and three unmet needs. "
"Return bullet points with 3–5 citations."
),
expected_output=(
"A markdown brief with sections: Market Size, Key Players, Pricing, ICPs, "
"Unmet Needs, Sources (with links)."
),
agent=researcher
)
synthesis_task = Task(
description=(
"Using the research brief, produce a positioning statement, 2–3 differentiators, "
"and a 90-day roadmap with milestones."
),
expected_output="A concise strategy memo (<= 400 words).",
agent=strategist
)
writing_task = Task(
description=(
"Turn the strategy memo into a public-facing one-pager. Include a headline, "
"value proposition, feature bullets, and a CTA."
),
expected_output="A markdown one-pager suitable for a landing page.",
agent=writer
)
4) Orkestrirajte posadu (protok + memorija)
from crewai import Crew
crew = Crew(
agents=[researcher, strategist, writer],
tasks=[research_task, synthesis_task, writing_task],
process="sequential", # hand off outputs in order
verbose=True
)
result = crew.kickoff
print(result)
To je vaš prvi radni cjevovod. Definirali ste agente, povezali zadatke i pokrenuli sekvencijalni protok. Da biste ga proširili, dodajte alate (pretraživanje, struganje, izvršavanje koda), korake validacije i paralelne faze.
Mentalni model za CrewAI projekte
Razmišljajte kao voditelj projekta:
- Uloge: Tko što radi? Istraživač, analitičar, inženjer, recenzent.
- Pravila: Koji standardi moraju biti ispunjeni? Vodič za stil, citati, testovi.
- Alati: Koje su mogućnosti dopuštene? Web pretraživanje, vektorska baza podataka, Python, API-ji.
- Zadaci: Kako razbijamo problem? Ulazi, izlazi, kriteriji prihvatljivosti.
- Predaje: Što se prenosi? Artefakti, metapodaci, ograničenja.
- Povratne informacije: Tko potvrđuje? QA agent, čovjek u petlji ili testovi.
S CrewAI, vaš kod kodira ovaj operativni model.
Kako koristiti CrewAI za stvarni rad: 5 provjerenih obrazaca
1) Istraživanje → Sinteza → Izrada nacrta (Sadržaj i izvješća)
- Agenti: Istraživač, Urednik, Pisac, Provjerivač činjenica.
- Alati: Web pretraživanje, provjera izvora, vodič za stil.
- Savjet: Prisilite citate i „tablicu tvrdnji” kako biste spriječili halucinacije.
fact_checker = Agent(
role="Fact Checker",
goal="Validate all claims against primary sources; flag weak citations.",
backstory="Skeptical, meticulous, unbiased.",
llm=llm
)
qa_task = Task(
description="Validate all factual statements; add corrections inline with [FIX] tags.",
expected_output="A corrected draft with a summary of fixes.",
agent=fact_checker
)
2) Specifikacija proizvoda iz tiketa (Inženjering)
- Agenti: Grupiratelj tiketa, Autor specifikacije, Recenzent, Autor testa.
- Alati: API za praćenje problema, kontekst baze koda putem ugrađivanja, generator unit-testa.
- Savjet: Dodajte automatizirani popis za provjeru „Definicije gotovog”.
3) Podaci → Uvid → Naracija (Analitika)
- Agenti: Rukovatelj podacima (Python), Analitičar, Pripovjedač.
- Alati: Pandas, SQL, izrada grafikona, izvršavanje prijenosnog računala.
- Savjet: Koristite agenta s omogućenim alatom s izvršavanjem
python za provjerljivu analitiku.
4) Code-Gen sa zaštitnim ogradama
- Agenti: Planer, Koder, Linter, Tester, Recenzent.
- Alati: Čitanje repozitorija, pokretač unit testa, oblikovatelj, sigurnosni skener.
- Savjet: Zahtijevajte od Recenzenta da se pozove na testove koji dokazuju ispravnost.
5) Slijed e-pošte kupaca u mjerilu
- Agenti: Segmentator, Copywriter, Personalizator, QA.
- Alati: CRM API, predlošci, vodič za ton marke.
- Savjet: Dodajte alat za provjeru odbijanja/neželjene pošte i prisilite A/B varijante.
Dodavanje alata: Dajte agentima stvarne mogućnosti
CrewAI blista kada agenti mogu koristiti alate. Primjer: dajte istraživaču web pretraživanje i čitač URL-ova.
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]
Najbolje prakse:
- Najmanja privilegija: Priložite samo alate koji su agentu uistinu potrebni.
- Shematska disciplina: Alati bi trebali biti deterministički i tipizirani; vratite sažet, strukturirani tekst (JSON/Markdown) kada je to moguće.
- Kontrola troškova: Neka izlazi alata budu kratki; sažmite prije predaje.
Dizajniranje zadataka koji uspijevaju
Dobro dizajnirani zadaci čine ili razbijaju sustave s više agenata.
- Budite eksplicitni: „Vratite markdown tablicu sa stupcima X, Y, Z.”
- Definirajte kriterije prihvatljivosti: „Sadrži 3 citata koji povezuju s primarnim izvorima.”
- Postavite granice: Broj riječi, vremenska ograničenja ili ograničenja koraka smanjuju odstupanje.
- Uključite primjere: Pružite mini-specifikaciju željenog formata izlaza.
- Dodajte oznake memorije: Koristite dosljedne naslove/ključove u svim zadacima za jednostavne predaje.
Primjer kostura zadatka:
Task(
description=(
"Summarize 5 recent studies on remote work productivity (2023–2025) with "
"methodology, sample size, and key findings."
),
expected_output=(
"Markdown with H2 sections per study, a final comparison table, and links."
),
agent=researcher
)
Načini orkestracije: Sekvencijalni vs. Paralelni vs. Hibridni
- Sekvencijalni: Pouzdane predaje; sporije, ali jednostavnije za razmišljanje.
- Paralelni: Više agenata radi odjednom (npr. 3 istraživača); spojite kasnije.
- Hibridni: Paralelno istraživanje tipa fan-out → sinteza tipa fan-in i QA.
Primjer hibrida:
r1 = Agent(role="Researcher A", goal="Focus on pricing", backstory="", llm=llm)
r2 = Agent(role="Researcher B", goal="Focus on features", backstory="", llm=llm)
# Parallel tasks for r1, r2; a follow-up synthesis task merges their outputs.
Savjet: Prilikom spajanja, uputite sintetizator da deduplicira, riješi sukobe i navede jači izvor.
Zaštitne ograde i QA: Neka agenti budu iskreni
- Suci: Dodajte recenzenta ili provjerivača činjenica s eksplicitnim pravom veta.
- Popisi za provjeru: Kodirajte usklađenost (privatnost, sigurnost, ton marke) kao popis za provjeru koji QA agent mora označiti.
- Samokritika: Zamolite agente da uključe kratki odjeljak „Što sam možda propustio”.
- Determinizam: Koristite nižu temperaturu za QA agente.
qa = Agent(
role="QA Reviewer",
goal="Ensure outputs meet the acceptance criteria and style guide.",
backstory="You are strict and pedantic.",
llm=llm
)
Projektiranje upita za CrewAI agente
Vaši upiti za agente su mini opisi poslova. Neka budu sažeti.
- Upit za ulogu: Tko ste, za što optimizirate.
- Upit za cilj: Željeno konačno stanje.
- Ograničenja: Broj riječi, format, ton, reference.
- Alati: Imena, kada ih koristiti, što vratiti.
- Primjeri: 1–2 kratka, realna uzorka.
Ispječak:
researcher = Agent(
role="Analytical Researcher",
goal=(
"Deliver compact, accurate briefs with 3–5 credible citations and a risk note."
),
backstory=(
"You verify claims, prefer primary sources, and flag uncertainty."
),
llm=llm
)
Vidljivost: Pogledajte što su agenti radili (i zašto)
Omogućite detaljne zapise i sačuvajte artefakte:
- Pohranite upit, izlaz i pozive alata svakog zadatka.
- Spremite manifest pokretanja s metapodacima (model, temperatura, alati).
- Držite bilježnicu za privremene bilješke; pomaže pri otklanjanju pogrešaka i revizijama.
Uzorak:
crew = Crew(..., verbose=True, output_log_file="runs/2025-crew.log")
Savjeti za troškove, latenciju i pouzdanost
- Grupiranje: Paralelizirajte neovisne zadatke; ograničite istovremenost kako biste izbjegli ograničenja brzine.
- Sažimanje: Komprimirajte srednje artefakte kako biste smanjili promet tokena.
- Predmemoriranje: Zapamtite stabilne korake (npr. definicije tržišta) s vektorskim trgovinama.
- Rezerve: Osigurajte rezervni model ili politiku ponovnog pokušaja za nestabilne pozive.
- Čovjek u petlji: Umetnite neobavezne kontrolne točke odobrenja na korake visokog rizika.
Uobičajene zamke (i kako ih popraviti)
- Zamka: Nejasni zadaci → vijugavi izlazi.
- Popravak: Dodajte eksplicitne kriterije prihvatljivosti i primjere.
- Zamka: Previše alata → ometanje i troškovi.
- Popravak: Samo alati s najmanjom privilegijom, specifični za zadatak.
- Zamka: Beskonačne petlje ili prekomjerna iteracija.
- Popravak: Dodajte ograničenja koraka/vremena i klauzulu „zaustavi ako su kriteriji ispunjeni”.
- Zamka: Gubitak konteksta među agentima.
- Popravak: Koristite strukturirane objekte za predaju (JSON) i dosljedne naslove.
- Zamka: QA naknadna misao.
- Popravak: Tretirajte QA kao agenta prve klase s pravom veta.
Primjer od početka do kraja: Generator konkurentnog brifa
Cilj: Generirajte konkurentni brif koji uspoređuje tri alata za ciljanu osobu.
Agenti:
- Analitičar persone → definira bolne točke i poslove koje treba obaviti.
- Istraživač → prikuplja podatke i citate.
- Sintetizator → gradi tablicu usporedbe i uvide.
- Pisac → izrađuje konačni brif.
- QA → provjerava izvore i jasnoću.
Kostur:
persona = Agent(role="Persona Analyst", goal="Define ICP and JTBD.", llm=llm)
researcher = Agent(role="Researcher", goal="Collect credible data.", llm=llm)
synth = Agent(role="Synthesizer", goal="Compare and interpret.", llm=llm)
writer = Agent(role="Writer", goal="Create an executive-ready brief.", llm=llm)
qa = Agent(role="QA", goal="Validate claims and clarity.", llm=llm)
persona_task = Task(description="Define ICP & JTBD for RevOps leaders in SaaS.", agent=persona,
expected_output="Bullets + pain points + success metrics.")
research_task = Task(description="Collect pricing, features, and reviews for 3 tools.", agent=researcher,
expected_output="Table + 5 citations.")
synth_task = Task(description="Build a comparison matrix and top 3 insights.", agent=synth,
expected_output="Markdown table + insights.")
write_task = Task(description="Draft a 1-page brief with recommendations.", agent=writer,
expected_output="Executive brief in markdown.")
qa_task = Task(description="Check accuracy and readability; fix issues.", agent=qa,
expected_output="Clean, validated brief.")
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)
Kada koristiti CrewAI vs. jedan upit
Koristite CrewAI kada:
- Se zadatak prirodno razlaže na uloge ili faze.
- Trebate sljedivost, QA ili upotrebu alata.
- Izrađujete cjevovod za višekratnu upotrebu, a ne jednokratni.
Držite se jednog upita kada:
- To je kratak, subjektivan zadatak bez vanjskih alata.
- Brzina je važnija od strukture.
Usput: Brže izradite nacrt s AI bočnom pločom
Ako koristite radne procese s više agenata za istraživanje, izradu nacrta i izradu sadržaja, vrijedi napomenuti da AI bočna ploča poput Sider.ai može stajati uz vaš preglednik i dokumente kako bi sažela stranice, generirala nacrte i poboljšala nacrte u stvarnom vremenu. Neće zamijeniti orkestraciju CrewAI, ali može ubrzati ručne dijelove — prikupljanje isječaka, prepisivanje odjeljaka ili provjeru tona — prije nego što sadržaj ponovno uključite u svoju posadu. Provedivi sljedeći koraci
- Instalirajte CrewAI i pokrenite primjer brzog pokretanja.
- Odaberite stvarni radni proces (istraživanje → nacrt → QA) i kodirajte ga.
- Dodajte jedan po jedan alat; izmjerite utjecaj na kvalitetu izlaza i cijenu.
- Uvedite QA agenta s eksplicitnim kriterijima prihvatljivosti.
- Prijeđite na hibridni model orkestracije za brzinu.
Ključni zaključci
- CrewAI pretvara složene projekte u modularne radne procese s više agenata.
- Uspjeh ovisi o jasnim ulogama, jasnim zadacima i discipliniranoj upotrebi alata.
- Zaštitne ograde (QA, popisi za provjeru, ograničenja) smanjuju troškove i povećavaju kvalitetu.
- Počnite malo, a zatim skalirajte s paralelnim istraživanjem i hibridnim protocima.
Mini-popis za provjeru: Kako učinkovito koristiti CrewAI
- Definirajte uloge, ciljeve i alate eksplicitno.
- Napišite zadatke s kriterijima prihvatljivosti i primjerima.
- Koristite sekvencijalni za pouzdanost, hibridni za brzinu.
- Dodajte QA agenta rano; dajte mu pravo veta.
- Zabilježite sve; pohranite artefakte za revizije.
- Optimizirajte troškove sažetcima, predmemoriranjem i grupiranjem.
FAQ
Q1:What is CrewAI and how do I use it for multi‑agent workflows?
CrewAI is a framework for orchestrating multiple AI agents with roles, tasks, and tools. You use it by defining agents, creating tasks with acceptance criteria, and running a crew that coordinates handoffs to produce a final output.
P2: Kako mogu dodati alate poput pretraživanja interneta agentima CrewAI?
Pridružite funkcije alata agentu i uputite ga kada ih koristiti. Neka izlazni podaci budu strukturirani i kratki (npr. JSON ili markdown) kako biste kontrolirali troškove i poboljšali prijenos podataka.
P3: Kada bih trebao koristiti CrewAI umjesto jednog LLM upita?
Koristite CrewAI kada se zadatak raspada na faze, zahtijeva upotrebu alata ili QA (osiguranje kvalitete), ili su potrebni ponovljivi cjevovodi. Koristite jedan upit za brze, subjektivne zadatke kojima nije potrebna struktura.
P4: Kako mogu spriječiti halucinacije u izlaznim podacima CrewAI?
Dodajte agenta za provjeru činjenica ili QA s pravom veta, zahtijevajte citate primarnih izvora, postavite nisku temperaturu za QA i odredite kriterije prihvatljivosti kao što je tablica tvrdnji.
P5: Može li CrewAI paralelno izvršavati zadatke kako bi ubrzao stvari?
Da. Koristite paralelne agente za neovisne zadatke (npr. više istraživača), a zatim zadatak sintetizatora za spajanje rezultata. Hibridna orkestracija uravnotežuje brzinu i pouzdanost.