Execuție asincronă și pe loturi: kickoff_for_each(), akickoff(), kickoff_async() în CrewAI & Sisteme Multi-Agent

Procese de Execuție & CrewAI Flows CrewAI 1.15 (octombrie 2026)

Variantele de pornire a unei echipe: sincron, pe o listă de intrări, asincron nativ și asincron pe fire de execuție.

Sintaxă & invocare Python
intrari = [
    {"companie": "UiPath", "piata": "Automatizare AI"},
    {"companie": "Bitdefender", "piata": "Securitate cibernetică"},
]
rezultate = echipa.kickoff_for_each(inputs=intrari)
rezultat = await echipa.akickoff(inputs=intrari[0])

Ce face Execuție asincronă și pe loturi: kickoff_for_each(), akickoff(), kickoff_async()

Pe lângă kickoff(inputs), clasa Crew are variante pentru liste de intrări și pentru cod asincron. kickoff_for_each(inputs=[...]) rulează echipa secvențial pentru fiecare dicționar din listă și întoarce o listă de rezultate.

Pentru cod asincron există două familii. akickoff() și akickoff_for_each() sunt asincrone native: folosesc async/await pe tot lanțul de execuție, inclusiv task-uri, memorie și knowledge. kickoff_async() și kickoff_for_each_async() sunt bazate pe fire de execuție: învelesc execuția sincronă în asyncio.to_thread.

Pentru încărcări cu multă concurență, documentația recomandă akickoff() și akickoff_for_each().

Sintaxă și opțiuni

Opțiune / Parametru Descriere
kickoff_for_each(inputs: list[dict]) Rulează echipa pentru fiecare intrare, secvențial.
await akickoff(inputs: dict) Asincron nativ.
await akickoff_for_each(inputs: list[dict]) Asincron nativ, pentru fiecare intrare.
await kickoff_async(inputs: dict) Asincron pe fire de execuție (asyncio.to_thread).
await kickoff_for_each_async(inputs: list[dict]) Asincron pe fire de execuție, pentru fiecare intrare.

Exemple practice

Exemplul 1: Lot asincron nativ

rezultate = await echipa.akickoff_for_each(inputs=[{"url": u} for u in lista_urluri])
for r in rezultate:
    print(r.raw)

Exemplul 2: Endpoint FastAPI

@app.post("/analiza")
async def analiza(req: Cerere):
    res = await echipa.akickoff(inputs=req.model_dump())
    return {"raport": res.raw}

Greșeli frecvente și bune practici

  • Alegi kickoff_async() pentru concurență mare. Este bazat pe fire de execuție; varianta nativă este akickoff().
  • Rulezi loturi mari fără limită de cereri. Setează max_rpm pe Crew sau pe agenți, ca să nu atingi limitele furnizorului.
  • Folosești crewai replay după un lot. Se poate relua doar cea mai recentă rulare.

Comenzi înrudite