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 areagents/*.jsoncșicrew.jsonc. - Scrii texte lungi pe mai multe rânduri fără indicatorul
>(folded block scalar) dupărole:,goal:saudescription:.
Î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.