Ce face Clasa Agent (role, goal, backstory, llm)
Un agent CrewAI are trei câmpuri obligatorii: role (funcția și expertiza în echipă), goal (obiectivul care îi ghidează deciziile) și backstory (contextul și personalitatea). Variabilele dintre acolade, ca {subiect}, se înlocuiesc la pornire din inputs.
Câmpul llm primește un șir furnizor/model sau un obiect LLM. CrewAI are integrări native, prin SDK-urile furnizorilor, pentru OpenAI, Anthropic, Google Gemini, Azure, AWS Bedrock și Snowflake Cortex. Ceilalți furnizori, inclusiv Ollama, merg prin LiteLLM, adăugat cu uv add 'crewai[litellm]'. Fiecare agent poate folosi alt model.
Într-un proiect JSON-first, agentul se scrie în agents/NUME.jsonc, cu aceleași câmpuri role, goal, backstory, llm, tools și setări suplimentare sub settings.
Sintaxă și opțiuni
| Opțiune / Parametru | Descriere |
|---|---|
role, goal, backstory |
Obligatorii. Definesc identitatea agentului. |
llm |
Modelul agentului. Fără el, se folosește OPENAI_MODEL_NAME sau implicitul din documentație. |
tools |
Lista de unelte (implicit goală). |
max_iter |
Iterații maxime înainte de răspunsul final (implicit 20). |
max_rpm / max_execution_time |
Limita de cereri pe minut și timpul maxim de execuție, în secunde. |
allow_delegation |
Permite delegarea către alți agenți (implicit False). |
respect_context_window |
Rezumă mesajele ca să rămână în fereastra de context (implicit True). |
cache |
Cache pentru apelurile de unelte (implicit True). |
reasoning / inject_date |
Planificare înainte de task; injectarea datei curente în prompt (ambele implicit False). |
allow_code_execution / code_execution_mode |
Învechite. CodeInterpreterTool a fost eliminat din crewai-tools; documentația recomandă un serviciu de sandbox dedicat (E2B, Modal). |
Exemple practice
Exemplul 1: Agent pe un model local Ollama
Ollama trece prin LiteLLM: adaugă întâi crewai[litellm].
llm = LLM(model="ollama/llama3:70b", base_url="http://localhost:11434")
agent = Agent(role="...", goal="...", backstory="...", llm=llm)
Exemplul 2: Agent cu planificare și dată curentă
agent = Agent(role="...", goal="...", backstory="...", reasoning=True, inject_date=True)
Greșeli frecvente și bune practici
- Activezi
allow_code_execution=Trueîn proiecte noi. Opțiunea este învechită, iar unealta pe care se baza a fost eliminată. - Folosești un furnizor fără integrare nativă fără pachetul
crewai[litellm]. - Scrii
role,goalșibackstoryvag. Cu cât sunt mai specifice, cu atât agentul știe mai clar ce are de făcut.