Travailler avec des agents à étapes multiples

Agents IA avec Hugging Face smolagents

Adel Nehme

VP of AI Curriculum, DataCamp

Agents IA avec Hugging Face smolagents

Exemple : Assistant de voyage

Agents IA avec Hugging Face smolagents

Intervalles de planification : Aider les agents à repenser

agent = CodeAgent(
    tools=[document_search_tool],
    model=model,
    planning_interval=3,
    max_steps=12
)
  • planning_interval=3 : L'agent fait une pause toutes les 3 étapes.
Agents IA avec Hugging Face smolagents

Exécution de l'agent avec intervalles de planification

"Planifiez des vacances familiales de 2 semaines en Europe avec des sites historiques pour adultes et des activités amusantes pour enfants, en restant sous 5000 $."

[Étape 1] Recherche "hôtels à Paris" -> Trouvé des hôtels de luxe (~4000 $ au total)

[Étape 2] Recherche "attractions familiales à Paris" -> Trouvé la Tour Eiffel, le Louvre, billets de parc à thème

[Étape 3] Pause et réflexion (intervalle de planification) Les hôtels sont trop chers -> budget dépassé. Je devrais chercher des options moins chères + activités pour enfants.

[Étape 4] Recherche "hôtels familiaux abordables en Europe" -> Trouvé des options milieu de gamme dans plusieurs villes

Agents IA avec Hugging Face smolagents

Callbacks : Points d'ancrage dans le processus de l'agent

Agents IA avec Hugging Face smolagents

Fonction de callback de base

def callback_function(agent_step, agent):
    # Faire quelque chose avec l'étape de l'agent ou l'agent lui-même
    pass
  • agent_step : détails sur l'étape (plan, numéro d'étape, etc.)
  • agent : l'objet agent complet (état + méthodes)
Agents IA avec Hugging Face smolagents

Callbacks pour l'étape de planification

def planning_callback(agent_step, agent):
    print("PLANIFICATION DE L'AGENT")
    print("=" * 50)
    print(agent_step.plan[:300])
    if len(agent_step.plan) > 300:
        print("\n... (plan tronqué)")
    print("=" * 50)
PLANIFICATION DE L'AGENT
==================================================
Recherche d'hôtels abordables + activités pour enfants
Puis création d'un itinéraire équilibré...
... (plan tronqué)
==================================================
Agents IA avec Hugging Face smolagents

Callbacks pour l'étape d'action

def action_callback(agent_step, agent):
    step_num = agent_step.step_number
    print(f"Étape {step_num} : Exécution de l'action")

    if agent_step.is_final_answer:
        total_tokens = agent_step.token_usage.total_tokens
        print(f"Total de tokens utilisés : {total_tokens}")
Étape 2 : Exécution de l'action !
Étape 3 : Exécution de l'action !
Étape 4 : Exécution de l'action !
Total de tokens utilisés : 4,218
Agents IA avec Hugging Face smolagents

Ajouter des callbacks aux agents

from smolagents import ActionStep, PlanningStep

agent = CodeAgent(
    tools=[document_search_tool],
    model=model,
    step_callbacks={PlanningStep: planning_callback, ActionStep: action_callback}
)
Agents IA avec Hugging Face smolagents

Que pouvez-vous faire avec les callbacks ?

  • Consigner les recherches pour comprendre ce que les utilisateurs recherchent le plus
  • Ajouter des points de contrôle d'approbation humaine
  • Envoyer des mises à jour de progression aux tableaux de bord ou applications
  • Ajuster le comportement de l'agent en cours d'exécution selon la performance
  • Et plus encore...
Agents IA avec Hugging Face smolagents

Passons à la pratique !

Agents IA avec Hugging Face smolagents

Preparing Video For Download...