Arbeta med flerstegagenter

AI-agenter med Hugging Face smolagents

Adel Nehme

VP of AI Curriculum, DataCamp

AI-agenter med Hugging Face smolagents

Exempel: Reseassistent

AI-agenter med Hugging Face smolagents

Planeringsintervall: Hjälper agenten att tänka om

agent = CodeAgent(
    tools=[document_search_tool],
    model=model,
    planning_interval=3,
    max_steps=12
)
  • planning_interval=3: Agenten pausar efter var 3:e steg.
AI-agenter med Hugging Face smolagents

Agentkörning med planeringsintervall

"Planera en 2-veckors familjesemester i Europa med historiska platser för vuxna och roliga aktiviteter för barn, för under 5 000 dollar."

[Steg 1] Sök "Paris hotels" -> Hittade lyxhotell (~4 000 dollar totalt)

[Steg 2] Sök "Paris attractions for families" -> Hittade Eiffeltornet, Louvren, nöjesparksbiljetter

[Steg 3] Pausa och tänk om (planeringsintervall) Hotellen är för dyra -> budgeten spricker. Jag bör leta efter billigare alternativ och barnvänliga aktiviteter.

[Steg 4] Sök "affordable family hotels in Europe" -> Hittade mellanklass-alternativ i flera städer

AI-agenter med Hugging Face smolagents

Callbacks: Krokar in i agentens process

AI-agenter med Hugging Face smolagents

Grundläggande callback-funktion

def callback_function(agent_step, agent):
    # Do something with the agent step or the agent itself
    pass
  • agent_step: information om steget (plan, stegnummer m.m.)
  • agent: hela agentsobjektet (tillstånd och metoder)
AI-agenter med Hugging Face smolagents

Callbacks för planeringssteg

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 truncated)")
    print("=" * 50)
AGENT PLANNING
==================================================
Search affordable hotels + kid activities
Then create balanced itinerary...
... (plan truncated)
==================================================
AI-agenter med Hugging Face smolagents

Callbacks för åtgärdssteg

def action_callback(agent_step, agent):
    step_num = agent_step.step_number
    print(f"Step {step_num}: Taking action")

    if agent_step.is_final_answer:
        total_tokens = agent_step.token_usage.total_tokens
        print(f"Total tokens used: {total_tokens}")
Step 2: Taking action!
Step 3: Taking action!
Step 4: Taking action!
Total tokens used: 4,218
AI-agenter med Hugging Face smolagents

Lägg till callbacks i agenter

from smolagents import ActionStep, PlanningStep

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

Vad kan du göra med callbacks?

  • Logga sökningar för att förstå vad användare letar efter
  • Lägg till kontrollpunkter för manuellt godkännande
  • Skicka statusuppdateringar till dashboards eller appar
  • Justera agentens beteende under körning utifrån prestanda
  • Och mycket mer...
AI-agenter med Hugging Face smolagents

Nu kör vi en övning!

AI-agenter med Hugging Face smolagents

Preparing Video For Download...