Práce s vícekrokovými agenty

AI Agents with Hugging Face smolagents

Adel Nehme

VP of AI Curriculum, DataCamp

AI Agents with Hugging Face smolagents

Příklad: Cestovní asistent

AI Agents with Hugging Face smolagents

Intervaly plánování: přehodnocení postupu agenta

agent = CodeAgent(
    tools=[document_search_tool],
    model=model,
    planning_interval=3,
    max_steps=12
)
  • planning_interval=3: Agent se pozastaví každé 3 kroky.
AI Agents with Hugging Face smolagents

Průběh agenta s intervaly plánování

"Naplánujte 2týdenní rodinnou dovolenou v Evropě s historickými památkami pro dospělé a zábavou pro děti, celkem do 5 000 $."

[Krok 1] Hledání „hotely v Paříži" -> Nalezeny luxusní hotely (~4 000 $ celkem)

[Krok 2] Hledání „atrakce v Paříži pro rodiny" -> Nalezeny Eiffelova věž, Louvre, vstupenky do tematického parku

[Krok 3] Pauza a přehodnocení (interval plánování) Hotely jsou příliš drahé -> rozpočet vyčerpán. Měl bych hledat levnější možnosti + aktivity pro děti.

[Krok 4] Hledání „dostupné rodinné hotely v Evropě" -> Nalezeny středněcenové možnosti ve více městech

AI Agents with Hugging Face smolagents

Callbacky: háčky do procesu agenta

AI Agents with Hugging Face smolagents

Základní funkce callbacku

def callback_function(agent_step, agent):
    # Do something with the agent step or the agent itself
    pass
  • agent_step: informace o kroku (plán, číslo kroku atd.)
  • agent: celý objekt agenta (stav + metody)
AI Agents with Hugging Face smolagents

Callbacky plánovacího kroku

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 Agents with Hugging Face smolagents

Callbacky akčního kroku

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 Agents with Hugging Face smolagents

Přidání callbacků do agentů

from smolagents import ActionStep, PlanningStep

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

Co lze s callbacky dělat?

  • Protokolování vyhledávání pro analýzu uživatelských dotazů
  • Přidání kontrolních bodů pro schválení člověkem
  • Odesílání průběžných aktualizací do dashboardů nebo aplikací
  • Úprava chování agenta za běhu podle výkonu
  • A mnoho dalšího...
AI Agents with Hugging Face smolagents

Pojďme si procvičit!

AI Agents with Hugging Face smolagents

Preparing Video For Download...