Clasa Agent (role, goal, backstory, llm) în CrewAI & Sisteme Multi-Agent

Arhitectura de Bază (Agents, Tasks & Crews) CrewAI 1.15 (octombrie 2026)

Agentul CrewAI este definit de role, goal și backstory, plus modelul LLM, uneltele și limitele de execuție.

Sintaxă & invocare Python
from crewai import Agent, LLM

cercetator = Agent(
    role="Cercetător tehnic în securitate cibernetică",
    goal="Identifică vulnerabilitățile critice pentru {subiect}",
    backstory="Ești un analist cu experiență în auditarea sistemelor Linux și cloud.",
    llm=LLM(model="anthropic/claude-sonnet-4-6", temperature=0.2),
    verbose=True,
)

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 și backstory vag. Cu cât sunt mai specifice, cu atât agentul știe mai clar ce are de făcut.

Comenzi înrudite