Task Guardrails (validare cu funcții sau text) și human_input în CrewAI & Sisteme Multi-Agent

Guardrail-urile validează și transformă ieșirea unui task înainte de pasul următor; la eșec, agentul reface răspunsul.

Sintaxă & invocare Python
def valideaza_lungime(rezultat: TaskOutput) -> tuple[bool, Any]:
    cuvinte = len(rezultat.raw.split())
    if cuvinte < 300:
        return (False, f"Articolul are doar {cuvinte} cuvinte. Extinde-l la minim 300.")
    return (True, rezultat.raw)

task = Task(..., guardrail=valideaza_lungime, guardrail_max_retries=3)

Ce face Task Guardrails (validare cu funcții sau text) și human_input

Un guardrail validează ieșirea unui task înainte să treacă mai departe. Varianta cu funcție primește un TaskOutput și întoarce un tuplu: (True, rezultat) la succes sau (False, mesaj_de_eroare) la eșec. La eșec, eroarea se trimite înapoi agentului, iar task-ul se reia de cel mult guardrail_max_retries ori (implicit 3).

Dacă dai un text în loc de funcție, CrewAI creează un LLMGuardrail care folosește LLM-ul agentului ca să verifice ieșirea după descrierea ta. Pentru asta, task-ul trebuie să aibă un agent atribuit.

Parametrul guardrails primește o listă de funcții și texte, aplicate în ordine; fiecare primește ieșirea celui dinainte. Dacă setezi guardrails, guardrail este ignorat. Atributul vechi max_retries este învechit; folosește guardrail_max_retries.

Separat de guardrail-uri, human_input=True pe un task îi cere agentului să te întrebe înainte de răspunsul final, pentru context, clarificări sau validare.

Sintaxă și opțiuni

Opțiune / Parametru Descriere
guardrail O funcție (TaskOutput) -> tuple[bool, Any] sau un text pentru un guardrail LLM.
guardrails Listă de funcții și texte, aplicate secvențial. Are prioritate față de guardrail.
guardrail_max_retries Numărul maxim de reîncercări la eșec (implicit 3).
human_input Agentul cere intervenția ta înainte de răspunsul final (implicit False).
callback Funcție apelată după finalizarea task-ului.

Exemple practice

Exemplul 1: Guardrail LLM descris în text

task = Task(
    description="Write a blog post about AI",
    expected_output="A blog post under 200 words",
    agent=blog_agent,
    guardrail="The blog post must be under 200 words and contain no technical jargon",
)

Exemplul 2: Mai multe guardrail-uri în ordine

task = Task(
    ...,
    guardrails=[valideaza_lungime, "Textul nu conține linkuri inventate", formateaza],
    guardrail_max_retries=3,
)

Greșeli frecvente și bune practici

  • Folosești încă max_retries pe task. Este învechit; parametrul corect este guardrail_max_retries.
  • Setezi și guardrail, și guardrails. Se aplică doar guardrails.
  • Scrii mesaje de eroare vagi. Agentul primește exact textul din tuplu, deci formulează-l ca pe o instrucțiune de corectare.

Comenzi înrudite

Învață AI • Comunitate & Q&A

Întrebări & Exemple practice: Task Guardrails (validare cu funcții sau text) și human_input

Ai o întrebare despre Task Guardrails (validare cu funcții sau text) și human_input 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.