Arbeiten mit mehrstufigen Agenten

AI-Agents mit Hugging Face smolagents

Adel Nehme

VP of AI Curriculum, DataCamp

AI-Agents mit Hugging Face smolagents

Beispiel: Reiseassistent

AI-Agents mit Hugging Face smolagents

Planungsintervalle: Agenten neu denken lassen

agent = CodeAgent(
    tools=[document_search_tool],
    model=model,
    planning_interval=3,
    max_steps=12
)
  • planning_interval=3: Agent pausiert nach jedem 3. Schritt.
AI-Agents mit Hugging Face smolagents

Agentenlauf mit Planungsintervallen

"Plane einen zweiwöchigen Familienurlaub in Europa mit historischen Stätten für Erwachsene und Spaßaktivitäten für Kinder, unter 5000 $."

[Schritt 1] Suche "Hotels in Paris" -> Luxushotels gefunden (~4000 $ gesamt)

[Schritt 2] Suche "Attraktionen in Paris für Familien" -> Eiffelturm, Louvre, Freizeitpark-Tickets gefunden

[Schritt 3] Pause und neu denken (Planungsintervall) Hotels sind zu teuer -> Budget überschritten. Ich sollte günstigere Optionen + kinderfreundliche Aktivitäten suchen.

[Schritt 4] Suche "günstige Familienhotels in Europa" -> Mittelklasseoptionen in mehreren Städten gefunden

AI-Agents mit Hugging Face smolagents

Callbacks: Einblicke in den Agentenprozess

AI-Agents mit Hugging Face smolagents

Einfache Callback-Funktion

def callback_function(agent_step, agent):
    # Mach etwas mit dem Agentenschritt oder dem Agenten selbst
    pass
  • agent_step: Details zum Schritt (Plan, Schrittnummer, etc.)
  • agent: das vollständige Agentenobjekt (Zustand + Methoden)
AI-Agents mit Hugging Face smolagents

Planungsschritt-Callbacks

def planning_callback(agent_step, agent):
    print("AGENTENPLANUNG")
    print("=" * 50)
    print(agent_step.plan[:300])
    if len(agent_step.plan) > 300:
        print("\n... (Plan gekürzt)")
    print("=" * 50)
AGENTENPLANUNG
==================================================
Suche günstige Hotels + Kinderaktivitäten
Dann erstelle ausgewogenen Reiseplan...
... (Plan gekürzt)
==================================================
AI-Agents mit Hugging Face smolagents

Aktionsschritt-Callbacks

def action_callback(agent_step, agent):
    step_num = agent_step.step_number
    print(f"Schritt {step_num}: Aktion ausführen")

    if agent_step.is_final_answer:
        total_tokens = agent_step.token_usage.total_tokens
        print(f"Verwendete Tokens insgesamt: {total_tokens}")
Schritt 2: Aktion ausführen!
Schritt 3: Aktion ausführen!
Schritt 4: Aktion ausführen!
Verwendete Tokens insgesamt: 4,218
AI-Agents mit Hugging Face smolagents

Callbacks zu Agenten hinzufügen

from smolagents import ActionStep, PlanningStep

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

Was kann man mit Callbacks machen?

  • Suchprotokolle führen, um zu verstehen, wonach Nutzer am meisten suchen
  • Menschliche Genehmigungspunkte hinzufügen
  • Fortschrittsupdates an Dashboards oder Apps senden
  • Agentenverhalten während des Laufs basierend auf Leistung anpassen
  • Und mehr...
AI-Agents mit Hugging Face smolagents

Lass uns üben!

AI-Agents mit Hugging Face smolagents

Preparing Video For Download...