Робота з багатокроковими агентами

AI-агенти з Hugging Face smolagents

Adel Nehme

VP of AI Curriculum, DataCamp

AI-агенти з Hugging Face smolagents

Приклад: туристичний асистент

AI-агенти з Hugging Face smolagents

Інтервали планування: допомога агентам переосмислювати

agent = CodeAgent(
    tools=[document_search_tool],
    model=model,
    planning_interval=3,
    max_steps=12
)
  • planning_interval=3: агент робить паузу після кожних 3 кроків.
AI-агенти з Hugging Face smolagents

Запуск агента з інтервалами планування

«Сплануйте 2-тижневу сімейну подорож до Європи з історичними місцями для дорослих і розвагами для дітей, до $5000.»

[Крок 1] Пошук "Paris hotels" -> Знайдено розкішні готелі (~$4000 разом)

[Крок 2] Пошук "Paris attractions for families" -> Знайдено Ейфелеву вежу, Лувр, квитки до парку розваг

[Крок 3] Пауза й переосмислення (інтервал планування) Готелі надто дорогі -> бюджет перевищено. Потрібно шукати дешевші варіанти + розваги для дітей.

[Крок 4] Пошук "affordable family hotels in Europe" -> Знайдено середній сегмент у різних містах

AI-агенти з Hugging Face smolagents

Зворотні виклики: підключення до процесу агента

AI-агенти з Hugging Face smolagents

Базова функція зворотного виклику

def callback_function(agent_step, agent):
    # Do something with the agent step or the agent itself
    pass
  • agent_step: деталі кроку (план, номер кроку тощо)
  • agent: повний об'єкт агента (стан + методи)
AI-агенти з Hugging Face smolagents

Зворотні виклики на кроці планування

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-агенти з Hugging Face smolagents

Зворотні виклики на кроці дії

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-агенти з Hugging Face smolagents

Додавання зворотних викликів до агентів

from smolagents import ActionStep, PlanningStep

agent = CodeAgent(
    tools=[document_search_tool],
    model=model,
    step_callbacks={PlanningStep: planning_callback, ActionStep: action_callback}
)
AI-агенти з Hugging Face smolagents

Що можна робити зі зворотними викликами?

  • Логуйте пошуки, щоб розуміти, що користувачі шукають найчастіше
  • Додавайте контрольні точки з погодженням людини
  • Надсилайте оновлення прогресу на дашборди чи в застосунки
  • Коригуйте поведінку агента під час виконання за результатами
  • Та інше…
AI-агенти з Hugging Face smolagents

Давайте потренуємось!

AI-агенти з Hugging Face smolagents

Preparing Video For Download...