Ieșiri Structurate: output_pydantic și output_json în Task în CrewAI & Sisteme Multi-Agent

Cum forțezi o sarcină CrewAI să returneze un obiect Python validat cu Pydantic (în loc de text liber), gata de salvat în baza de date sau de trimis printr-un API.

Sintaxă & invocare Python
from pydantic import BaseModel

class RaportSEO(BaseModel):
    titlu_optimizat: str
    scor: int
    cuvinte_cheie: list[str]

task_seo = Task(..., output_pydantic=RaportSEO)
rezultat = echipa.kickoff()
print(rezultat.pydantic.titlu_optimizat)  # Acces direct la atribute tipizate!

Descriere & Utilizare

Când integrezi o echipă CrewAI într-o aplicație software reală (un dashboard web, un sistem ERP sau un flux de publicare automată în WordPress), ai nevoie ca rezultatul final să aibă câmpuri exacte și tipuri de date garantate.

Setând parametrul output_pydantic=ClasaMeaPydantic (sau output_json=ClasaMeaPydantic) pe un obiect Task, CrewAI instruiește automat modelul LLM să respecte schema Pydantic și validează răspunsul înainte de a încheia sarcina.

După rularea rezultat = echipa.kickoff(), poți accesa obiectul instanță direct prin rezultat.pydantic (cu autocompletare pe atribute) sau ca dicționar Python prin rezultat.to_dict().

Cum să o reții ușor

💡 În loc să primești de la echipa de consultanță un eseu de 10 pagini din care trebuie să cauți tu cifrele cu privirea, primești un tabel standardizat cu rubrici fixe pe care programul tău îl importă instantaneu.

Opțiuni și parametri tehnici

  • output_pydantic: primește o subclasă de pydantic.BaseModel și populează rezultat.pydantic la final.
  • output_json: primește tot o clasă BaseModel, dar serializează rezultatul în rezultat.json_dict.
  • Field(description="..."): explicațiile adăugate pe câmpurile modelului Pydantic ghidează direct completarea valorilor de către agent.

Exemple practice și cazuri de utilizare

  • Extragerea unei liste de articole structurate: definește class Articol(BaseModel): ... și class ListaArticole(BaseModel): articole: list[Articol], apoi pasează output_pydantic=ListaArticole.
  • Conversia rapidă în dicționar pentru răspuns FastAPI: return rezultat.to_dict().
  • Combinarea cu output_file="raport.json": salvează automat JSON-ul validat pe disc la terminarea task-ului.

Sfaturi de configurare & capcane

Dacă ai o echipă cu 3 task-uri în cascadă, pune output_pydantic doar pe ultimul task (sau pe task-urile ale căror date le consumi programatic în Python); lasă task-urile intermediare să comunice în Markdown liber pentru a nu restrânge raționamentul agenților.

Comenzi și ghiduri înrudite