Exemplu de configurare agenti pe roluri cu CrewAI

Configurare noua (How To)

Situatie

CrewAI este un cadru open-source care permite mai multor agenți de inteligență artificială să colaboreze pentru a îndeplini sarcini complexe. Fiecare agent are un rol specific, iar aceștia colaborează pentru a duce la bun sfârșit sarcina în mod eficient.

Imaginați-vă un grup de oameni care organizează o petrecere: o persoană se ocupă de planificare, alta de mâncare și băuturi, iar o altă persoană de decorațiuni. CrewAI face același lucru, dar cu agenți AI. Poate fi utilizat în planificarea evenimentelor, crearea de conținut, dezvoltarea de software și asistența pentru clienți, pentru a spori eficiența sarcinilor.

CrewAI utilizează funcții precum retenția memoriei și conștientizarea contextului, ceea ce asigură executarea fără probleme a sarcinilor și luarea deciziilor în contextul potrivit. Poate fi utilizat în domenii precum planificarea evenimentelor, generarea de conținut, cercetarea și dezvoltarea de software.

Cerințe preliminare pentru CrewAI:

Python: versiunea >=3.10 și <3.14 (recomandat: 3.12.7 pentru macOS).
Ca si manager de pachete se recomandă uv(manager de pachete ultra-rapid); pip este o alternativă.
Sisteme de operare acceptate Windows, macOS și Linux.
Pentru integrarea LLM este necesară o cheie API OpenAI(sau o altă cheie de la un furnizor LLM).
Instrumente opționale: Pentru funcții avansate, instalați dependențe suplimentare precum tiktoken, chromadb sau pandas.
Compatibilitate cu Windows 11 și macOS:

  • Windows 11. Suport complet. Utilizați PowerShell cu uv sau pip. Asigurați-vă că Visual Studio Build Tools este instalat pentru dependențele de compilare C++.
  • macOS. Suport complet. Utilizați pyenv pentru a instala o versiune Python compatibilă(de ex., 3.12.7) cu suport pentru framework prin comanda env PYTHON_CONFIGURE_OPTS=”–enable-framework” pyenv install 3.12.7.

Solutie

Configurarea mediului de lucru

Pentru a începe să folosim CrewAI, trebuie să ne configurăm mediul și să instalăm pachetul necesar. Iată cum putem proceda:
1. Instalarea pachetului CrewAI

!pip install crewai

2. Setarea cheii API

Ca si exemplu se va seta cheia API pentru servicii externe precum OpenAI:

os.environ[“OPENAI_API_KEY”] = “aici-vine-cheia-API”

Implementarea CrewAI

În această parte, vom vedea cum se utilizează CrewAI prin configurarea unei echipe de agenți care să colaboreze, de exemplu, la organizarea unei petreceri.

1. Importarea bibliotecilor(libraries) necesare

Înainte de a începe să lucrăm cu CrewAI, trebuie să importăm bibliotecile necesare. Aceste biblioteci oferă funcțiile esențiale pentru definirea agenților, a sarcinilor și a echipelor.

  • Agentul definește agenții individuali care execută sarcini.
  • Sarcina descrie sarcinile atribuite agenților.
  • Echipa grupează agenții și sarcinile pentru a fi executate.

from crewai import Agent, Task, Crew

2. Definirea agenților

Agenții din CrewAI sunt entitățile care îndeplinesc sarcini specifice. Aceștia sunt definiți de trei aspecte cheie:

  • Rolul defineste ce face agentul(de exemplu, planificare, coordonarea cu firma de catering etc).
  • Obiectivul reprezintă rezultatul spre care tinde agentul(de exemplu, crearea unui plan pentru petrecere, gestionarea cheltuielilor).
  • Istoricul reprezintă contextul sau abilitățile care descriu capacitățile agentului.
    allow_delegation: Determină dacă agentul poate atribui sarcini altor agenți. Dacă este setat la False, agentul trebuie să se ocupe singur de sarcini.
    verbose: Când este setat la True, agentul oferă explicații detaliate despre acțiunile și raționamentul său, ceea ce ajută la înțelegerea pas cu pas a ceea ce face.

Ca si exemplu se vor desemna persoane responsabile pentru diferite roluri, cum ar fi organizatorul de evenimente, coordonatorul culinar, decoratorul și responsabilul cu divertismentul.

party_planner = Agent(
role=”Party Planner”,
goal=”Create the party plan, including the theme, timeline, and guest list.”,
backstory=(
“You organize the vision for the party, create a timeline, and ensure all aspects are planned. ”
“You send out invitations and coordinate with the other agents.”
),
allow_delegation=False,
verbose=True
)

food_beverage_coordinator = Agent(
role=”Food & Beverage Coordinator”,
goal=”Organize the food and drinks for the party, ensuring there’s enough variety for all guests.”,
backstory=(
“You handle the food and drink preparations, whether it’s cooking, ordering, or working with caterers. ”
“You make sure guests have plenty to eat and drink throughout the event.”
),
allow_delegation=False,
verbose=True
)

decorator = Agent(
role=”Decorator”,
goal=”Make the party venue look great, fitting the theme and making it fun for guests.”,
backstory=(
“You decorate the venue to match the theme and create a welcoming and festive environment. ”
“You ensure the venue is ready when the guests arrive.”
),
allow_delegation=False,
verbose=True
)

entertainment_guest_relations = Agent(
role=”Entertainment & Guest Relations Coordinator”,
goal=”Organize entertainment, games, and manage guest interactions to ensure a fun party.”,
backstory=(
“You make sure the guests have fun, whether it’s through music, games, or other activities. ”
“You also help guests with seating and ensure the event flows smoothly.”
),
allow_delegation=False,
verbose=True
)

3. Alocarea sarcinilor

Fiecărui agent i se atribuie sarcini specifice pe care trebuie să le îndeplinească. Sarcinile variază de la planificarea petrecerii până la organizarea mâncării și a băuturilor. Sarcinile sunt asociate agenților, iar fiecare agent își îndeplinește sarcina în conformitate cu obiectivul său.

Se va atribui fiecărui agent o sarcină, cum ar fi elaborarea planului petrecerii sau amenajarea decorațiunilor.

party_plan_task = Task(
description=”Create a party plan including theme, timeline, and guest list.”,
expected_output=”Complete party plan with theme, timeline, and invitations.”,
agent=party_planner
)

food_task = Task(
description=”Organize food and drinks menu and set up food stations.”,
expected_output=”Food and drinks ready for the party.”,
agent=food_beverage_coordinator
)

decor_task = Task(
description=”Decorate the venue according to the theme.”,
expected_output=”Venue decorated and ready for guests.”,
agent=decorator
)

entertainment_task = Task(
description=”Organize music, games, and manage guest interactions.”,
expected_output=”A fun and engaging atmosphere with happy guests.”,
agent=entertainment_guest_relations
)

4. Crearea și gestionarea unei echipe

O echipă este un grup de agenți care lucrează împreună pentru atingerea aceluiași obiectiv. Ca si exemplu se va arăta cum se va crea o echipă prin gruparea agenților și a sarcinilor noastre. Acest lucru le permite să colaboreze în cadrul procesului general de organizare a petrecerii. Vom combina agenții și sarcinile pentru a crea echipa de organizare a petrecerii.

party_crew = Crew(agents=[party_planner, food_beverage_coordinator, decorator, entertainment_guest_relations],
tasks=[party_plan_task, food_task, decor_task, entertainment_task], verbose=True)

5. Executarea fluxului de lucru

Odată ce echipa este configurată, se va începe executarea sarcinilor. Agenții încep să lucreze la sarcinile care le revin. Se va da startul procesului de organizare a petrecerii, iar agenții își vor îndeplini rolurile. Se va rula echipa pentru a demara sarcinile de planificare.

party_result = party_crew.kickoff(inputs={})

Nota Bene: Când se rulează scriptul, output-ul poate fi destul de mare, deoarece modul detaliat afișează pașii de lucru ai fiecărui agent.

Aplicații ale CrewAI

CrewAI poate fi utilizat în mai multe domenii în care sarcinile necesită colaborarea între agenți specializați:

  • Planificarea evenimentelor unde agenții AI planifică evenimentul, se ocupă de mâncare și băuturi, decorează locația și gestionează divertismentul oaspeților.
  • Crearea de conținut unde agenții AI colectează informații, scriu articole și revizuiesc conținutul.
  • Dezvoltarea de software unde agenții AI scriu și revizuiesc codul, asigurându-se că acesta îndeplinește cerințele.
  • Cercetare de piață unde agenții AI colectează date despre tendințe, concurenți și informații, creând rapoarte pe baza constatărilor.

Tip solutie

Permanent

Voteaza

(4 din 7 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?