Human-in-the-Loop Avansat în CrewAI în CrewAI & Sisteme Multi-Agent

Control și Securitate CrewAI 0.75+

Configurarea punctelor de aprobare manuală unde agentul își întrerupe execuția și solicită feedback uman înainte de acțiuni critice.

Sintaxă & invocare Python
Task(human_input=True, ...)

Autonomia totală a agenților AI este dezirabilă pentru sarcini de cercetare sau redactare, dar reprezintă un risc inacceptabil în acțiuni cu impact direct asupra lumii reale: trimiterea de emailuri către clienți, executarea de tranzacții financiare sau publicarea de articole pe site-uri live.

Funcționalitatea Human-in-the-Loop (HITL) din CrewAI permite setarea parametrului human_input=True pe orice sarcină. Când agentul termină redactarea rezultatului preliminar, acesta oprește execuția și afișează conținutul în consolă sau interfață grafică, așteptând confirmarea sau corecturile utilizatorului.

Utilizatorul poate aproba rezultatul prin simpla apăsare a tastei Enter sau poate introduce comentarii de corecție (ex: ‘Schimbă tonul să fie mai formal și elimină mențiunea despre reducerea de 10%’). Agentul reia sarcina, încorporează criticile umane și iterează până la aprobarea finală.

Sintaxă, opțiuni și concepte cheie

Opțiune / Concept Descriere practică
human_input=True Directiva setată pe nivelul `Task` care obligă agentul să ceară aprobare umană.
Interactive Refinement Loop Bucla interactivă de feedback în care omul dictează modificări suplimentare.
Terminal / Webhook Prompt Canalul prin care este expus dialogul de aprobare (linie de comandă sau apel API extern).
Task Fallback Action Politica de abandon sau reluare în cazul în care utilizatorul respinge categoric execuția.

Exemple practice și configurații

Exemplul 1: Sarcină de publicare articol pe blog cu aprobare umană obligatorie

Cum se configurează o echipă în care editorul final este asistat de om.

from crewai import Agent, Task, Crew

redactor = Agent(
    role="Senior Content Creator",
    goal="Scrie articole tehnice aprofundate",
    backstory="Jurnalist tehnologic experimentat",
    verbose=True
)

task_redactare = Task(
    description="Scrie un ghid despre securitatea serverelor MCP.",
    expected_output="Articol complet formatat în Markdown cu subtitluri.",
    agent=redactor,
    human_input=True  # Solicita validare umană înainte de finalizare
)

echipa = Crew(agents=[redactor], tasks=[task_redactare])
echipa.kickoff()

Rezultat & Impact

Agentul prezintă draftul în consolă și așteaptă acordul explicit înainte de a marca sarcina ca încheiată.

Greșeli frecvente și bune practici

  • Activarea `human_input=True` în medii automate de tip cron job sau scripturi headless unde nu există o sesiune TTY activă, blocând execuția la infinit.
  • Folosirea aprobării umane pentru sarcini triviale de rutină, creând oboseală de alertă (alert fatigue) pentru operator.

Ghiduri și noțiuni înrudite