Configurarea YAML clasică (@CrewBase, @agent, @task) în CrewAI & Sisteme Multi-Agent

Structura clasică Python/YAML a unui proiect CrewAI; proiectele noi sunt JSON-first, iar YAML se obține cu --classic.

Sintaxă & invocare Python
# config/agents.yaml:
cercetator:
  role: >
    Cercetător {domeniu}
  goal: >
    Descoperă cele mai noi inovații în {domeniu}
  backstory: >
    Ești un analist meticulos orientat spre date verificabile.

Ce face Configurarea YAML clasică (@CrewBase, @agent, @task)

Proiectele create acum cu crewai create crew NUME sunt JSON-first: fiecare agent are un fișier agents/NUME.jsonc, iar crew.jsonc conține lista agenților, sarcinile și setările echipei. Structura YAML descrisă aici este structura clasică și se obține cu crewai create crew NUME --classic. Echipa de exemplu dintr-un proiect Flow nou (poem_crew) folosește tot structura clasică.

În structura clasică, textele agenților și sarcinilor stau în config/agents.yaml și config/tasks.yaml, iar codul în crew.py. Clasa decorată cu @CrewBase încarcă fișierele YAML în self.agents_config și self.tasks_config. Metodele decorate cu @agent și @task sunt adunate în self.agents și self.tasks, pe care le folosește metoda @crew.

Documentația păstrează ghidul de adnotări pentru proiectele clasice, dar recomandă structura JSON-first pentru echipele noi.

Sintaxă și opțiuni

Opțiune / Parametru Descriere
@CrewBase Decorator de clasă care încarcă config/agents.yaml și config/tasks.yaml.
@agent Metodă care returnează Agent(config=self.agents_config["nume"], ...).
@task Metodă care returnează Task(config=self.tasks_config["nume"], ...).
@crew Metodă care returnează obiectul Crew din self.agents și self.tasks.
@before_kickoff / @after_kickoff Metode rulate înainte de start (pot modifica inputs) și după final (pot prelucra rezultatul).

Exemple practice

Exemplul 1: Crearea unui proiect clasic

crewai create crew research_crew --classic

Exemplul 2: Agent definit din YAML în crew.py

@agent
def cercetator(self) -> Agent:
    return Agent(config=self.agents_config["cercetator"], tools=[SerperDevTool()])

Exemplul 3: Echivalentul JSON-first

Fișierul agents/researcher.jsonc dintr-un proiect nou, după ghidul oficial.

{
  "role": "Senior Research Specialist for {topic}",
  "goal": "Find comprehensive and accurate information about {topic}.",
  "backstory": "You are an experienced research specialist.",
  "llm": "provider/model-id",
  "tools": ["SerperDevTool"],
  "settings": {"verbose": true, "allow_delegation": false}
}

Greșeli frecvente și bune practici

  • Cauți config/agents.yaml într-un proiect creat fără --classic. Proiectul nou are agents/*.jsonc și crew.jsonc.
  • Scrii texte lungi pe mai multe rânduri fără indicatorul > (folded block scalar) după role:, goal: sau description:.

Comenzi înrudite

Învață AI • Comunitate & Q&A

Întrebări & Exemple practice: Configurarea YAML clasică (@CrewBase, @agent, @task)

Ai o întrebare despre Configurarea YAML clasică (@CrewBase, @agent, @task) sau ai descoperit un truc, prompt sau fragment de cod util? Distribuie-l cu ceilalți membri ai comunității!

🤖

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau resurse pentru această pagină. Dacă ai testat un prompt sau ai un snippet util, adaugă-l mai jos pentru comunitate.

Comunitate AI Adaugă o întrebare sau distribuie un cod / prompt

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.