Werken met Multi-Step Agents

AI-agents met Hugging Face smolagents

Adel Nehme

VP of AI Curriculum, DataCamp

AI-agents met Hugging Face smolagents

Voorbeeld: Reisassistent

AI-agents met Hugging Face smolagents

Planningsintervallen: Agents Helpen Herdenken

agent = CodeAgent(
    tools=[document_search_tool],
    model=model,
    planning_interval=3,
    max_steps=12
)
  • planning_interval=3: Agent pauzeert na elke 3 stappen.
AI-agents met Hugging Face smolagents

Agent Run met Planningsintervallen

"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

AI-agents met Hugging Face smolagents

Callbacks: Koppelingen in het Agentproces

AI-agents met Hugging Face smolagents

Basis Callback Functie

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)
AI-agents met Hugging Face smolagents

Planning Stap Callbacks

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)
==================================================
AI-agents met Hugging Face smolagents

Actie Stap Callbacks

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
AI-agents met Hugging Face smolagents

Callbacks Toevoegen aan Agents

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

Wat kun je doen met Callbacks?

  • Zoekopdrachten loggen om te begrijpen wat gebruikers het meest zoeken
  • Controlepunten voor menselijke goedkeuring toevoegen
  • Voortgangsupdates naar dashboards of apps sturen
  • Agentgedrag tijdens uitvoering aanpassen op basis van prestaties
  • En meer...
AI-agents met Hugging Face smolagents

Laten we oefenen!

AI-agents met Hugging Face smolagents

Preparing Video For Download...