Agentes de IA con 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: El agente se detiene cada 3 pasos."Planifica unas vacaciones familiares de 2 semanas en Europa con sitios históricos para adultos y actividades divertidas para niños, manteniéndose por debajo de $5000."
[Paso 1] Buscar "hoteles en París" -> Encontrados hoteles de lujo (~$4000 total)
[Paso 2] Buscar "atracciones en París para familias" -> Encontrados Torre Eiffel, Louvre, entradas a parques temáticos
[Paso 3] Pausa y repiensa (intervalo de planificación) Los hoteles son muy caros -> presupuesto excedido. Debería buscar opciones más baratas + actividades para niños.
[Paso 4] Buscar "hoteles familiares asequibles en Europa" -> Encontradas opciones de gama media en varias ciudades

def callback_function(agent_step, agent):
# Hacer algo con el paso del agente o el agente mismo
pass
agent_step: detalles sobre el paso (plan, número de paso, etc.) agent: el objeto completo del agente (estado + métodos)def planning_callback(agent_step, agent):
print("PLANIFICACIÓN DEL AGENTE")
print("=" * 50)
print(agent_step.plan[:300])
if len(agent_step.plan) > 300:
print("\n... (plan truncado)")
print("=" * 50)
PLANIFICACIÓN DEL AGENTE
==================================================
Buscar hoteles asequibles + actividades para niños
Luego crear itinerario equilibrado...
... (plan truncado)
==================================================
def action_callback(agent_step, agent):
step_num = agent_step.step_number
print(f"Paso {step_num}: Tomando acción")
if agent_step.is_final_answer:
total_tokens = agent_step.token_usage.total_tokens
print(f"Total de tokens usados: {total_tokens}")
Paso 2: Tomando acción!
Paso 3: Tomando acción!
Paso 4: Tomando acción!
Total de tokens usados: 4,218
from smolagents import ActionStep, PlanningStep
agent = CodeAgent(
tools=[document_search_tool],
model=model,
step_callbacks={PlanningStep: planning_callback, ActionStep: action_callback}
)
Agentes de IA con Hugging Face smolagents