AI-agents met 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: Agent pauzeert na elke 3 stappen."Plan een 2-weekse gezinsvakantie naar Europa met historische sites voor volwassenen en leuke activiteiten voor kinderen, binnen $5000."
[Stap 1] Zoek "Parijs hotels" -> Luxe hotels gevonden (~$4000 totaal)
[Stap 2] Zoek "Parijs attracties voor gezinnen" -> Eiffeltoren, Louvre, themapark tickets gevonden
[Stap 3] Pauze en heroverweeg (planningsinterval) Hotels zijn te duur -> budget overschreden. Ik moet goedkopere opties + kindvriendelijke activiteiten zoeken.
[Stap 4] Zoek "betaalbare gezinsvriendelijke hotels in Europa" -> Middenklasse opties in meerdere steden gevonden

def callback_function(agent_step, agent):
# Doe iets met de agentstap of de agent zelf
pass
agent_step: details over de stap (plan, stapnummer, etc.) agent: het volledige agentobject (status + methoden)def planning_callback(agent_step, agent):
print("AGENT PLANNING")
print("=" * 50)
print(agent_step.plan[:300])
if len(agent_step.plan) > 300:
print("\n... (plan ingekort)")
print("=" * 50)
AGENT PLANNING
==================================================
Zoek betaalbare hotels + kinderactiviteiten
Maak dan een gebalanceerd reisschema...
... (plan ingekort)
==================================================
def action_callback(agent_step, agent):
step_num = agent_step.step_number
print(f"Stap {step_num}: Actie ondernemen")
if agent_step.is_final_answer:
total_tokens = agent_step.token_usage.total_tokens
print(f"Totaal gebruikte tokens: {total_tokens}")
Stap 2: Actie ondernemen!
Stap 3: Actie ondernemen!
Stap 4: Actie ondernemen!
Totaal gebruikte tokens: 4,218
from smolagents import ActionStep, PlanningStep
agent = CodeAgent(
tools=[document_search_tool],
model=model,
step_callbacks={PlanningStep: planning_callback, ActionStep: action_callback}
)
AI-agents met Hugging Face smolagents