Praca z agentami wieloetapowymi

Agenty AI z Hugging Face smolagents

Adel Nehme

VP of AI Curriculum, DataCamp

Agenty AI z Hugging Face smolagents

Przykład: asystent podróży

Agenty AI z Hugging Face smolagents

Interwały planowania: ponowne przemyślenie strategii

agent = CodeAgent(
    tools=[document_search_tool],
    model=model,
    planning_interval=3,
    max_steps=12
)
  • planning_interval=3: agent zatrzymuje się co 3 kroki.
Agenty AI z Hugging Face smolagents

Przebieg działania agenta z interwałami planowania

"Zaplanuj 2-tygodniowe rodzinne wakacje w Europie z zabytkami dla dorosłych i atrakcjami dla dzieci, poniżej 5000 USD."

[Krok 1] Wyszukaj „hotele w Paryżu" -> Znaleziono hotele luksusowe (~4000 USD łącznie)

[Krok 2] Wyszukaj „atrakcje rodzinne w Paryżu" -> Znaleziono Wieżę Eiffla, Luwr, bilety do parku rozrywki

[Krok 3] Pauza i ponowne planowanie (interwał planowania) Hotele zbyt drogie -> budżet przekroczony. Należy szukać tańszych opcji i atrakcji dla dzieci.

[Krok 4] Wyszukaj „tanie hotele rodzinne w Europie" -> Znaleziono opcje średniej klasy w kilku miastach

Agenty AI z Hugging Face smolagents

Wywołania zwrotne: wgląd w działanie agenta

Agenty AI z Hugging Face smolagents

Podstawowa funkcja wywołania zwrotnego

def callback_function(agent_step, agent):
    # Do something with the agent step or the agent itself
    pass
  • agent_step: szczegóły kroku (plan, numer kroku itp.)
  • agent: pełny obiekt agenta (stan + metody)
Agenty AI z Hugging Face smolagents

Wywołania zwrotne etapu planowania

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)
==================================================
Agenty AI z Hugging Face smolagents

Wywołania zwrotne etapu akcji

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
Agenty AI z Hugging Face smolagents

Dodawanie wywołań zwrotnych do agentów

from smolagents import ActionStep, PlanningStep

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

Co można zrobić z wywołaniami zwrotnymi?

  • Rejestrowanie wyszukiwań w celu analizy potrzeb użytkowników
  • Dodawanie punktów kontrolnych wymagających zatwierdzenia
  • Wysyłanie aktualizacji do pulpitów lub aplikacji
  • Dostosowywanie działania agenta w trakcie pracy
  • I wiele więcej...
Agenty AI z Hugging Face smolagents

Czas na ćwiczenia!

Agenty AI z Hugging Face smolagents

Preparing Video For Download...