Lavorare con agenti multi-step

Agenti AI con Hugging Face smolagents

Adel Nehme

VP of AI Curriculum, DataCamp

Agenti AI con Hugging Face smolagents

Esempio: Assistente di Viaggio

Agenti AI con Hugging Face smolagents

Intervalli di Pianificazione: Aiutare gli Agenti a Ripensare

agent = CodeAgent(
    tools=[document_search_tool],
    model=model,
    planning_interval=3,
    max_steps=12
)
  • planning_interval=3: L'agente si ferma ogni 3 passi.
Agenti AI con Hugging Face smolagents

Esecuzione Agente con Intervalli di Pianificazione

"Pianifica una vacanza di 2 settimane in Europa per la famiglia con siti storici per adulti e attività divertenti per bambini, restando sotto i $5000."

[Passo 1] Cerca "hotel a Parigi" -> Trovati hotel di lusso (~$4000 totali)

[Passo 2] Cerca "attrazioni per famiglie a Parigi" -> Trovati Torre Eiffel, Louvre, biglietti per parchi a tema

[Passo 3] Pausa e ripensamento (intervallo di pianificazione) Hotel troppo costosi -> budget sforato. Dovrei cercare opzioni più economiche + attività per bambini.

[Passo 4] Cerca "hotel economici per famiglie in Europa" -> Trovate opzioni di fascia media in diverse città

Agenti AI con Hugging Face smolagents

Callback: Interazioni nel processo dell'agente

Agenti AI con Hugging Face smolagents

Funzione di Callback Base

def callback_function(agent_step, agent):
    # Fai qualcosa con il passo dell'agente o l'agente stesso
    pass
  • agent_step: dettagli sul passo (piano, numero del passo, ecc.)
  • agent: l'intero oggetto agente (stato + metodi)
Agenti AI con Hugging Face smolagents

Callback di Pianificazione

def planning_callback(agent_step, agent):
    print("PIANIFICAZIONE AGENTE")
    print("=" * 50)
    print(agent_step.plan[:300])
    if len(agent_step.plan) > 300:
        print("\n... (piano troncato)")
    print("=" * 50)
PIANIFICAZIONE AGENTE
==================================================
Cerca hotel economici + attività per bambini
Poi crea un itinerario bilanciato...
... (piano troncato)
==================================================
Agenti AI con Hugging Face smolagents

Callback di Azione

def action_callback(agent_step, agent):
    step_num = agent_step.step_number
    print(f"Passo {step_num}: Esecuzione azione")

    if agent_step.is_final_answer:
        total_tokens = agent_step.token_usage.total_tokens
        print(f"Token totali usati: {total_tokens}")
Passo 2: Esecuzione azione!
Passo 3: Esecuzione azione!
Passo 4: Esecuzione azione!
Token totali usati: 4,218
Agenti AI con Hugging Face smolagents

Aggiungere Callback agli Agenti

from smolagents import ActionStep, PlanningStep

agent = CodeAgent(
    tools=[document_search_tool],
    model=model,
    step_callbacks={PlanningStep: planning_callback, ActionStep: action_callback}
)
Agenti AI con Hugging Face smolagents

Cosa Puoi Fare con i Callback?

  • Registra le ricerche per capire cosa cercano di più gli utenti
  • Aggiungi checkpoint di approvazione umana
  • Invia aggiornamenti di progresso a dashboard o app
  • Modifica il comportamento dell'agente in base alle prestazioni
  • E altro ancora...
Agenti AI con Hugging Face smolagents

Ayo berlatih!

Agenti AI con Hugging Face smolagents

Preparing Video For Download...