Agents IA avec Hugging Face smolagents
Adel Nehme
VP of AI Curriculum, DataCamp



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."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

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)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é)
==================================================
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
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