Làm việc với agent nhiều bước

AI Agents với Hugging Face smolagents

Adel Nehme

VP of AI Curriculum, DataCamp

AI Agents với Hugging Face smolagents

Ví dụ: Trợ lý du lịch

AI Agents với Hugging Face smolagents

Khoảng lập kế hoạch: giúp agent suy nghĩ lại

agent = CodeAgent(
    tools=[document_search_tool],
    model=model,
    planning_interval=3,
    max_steps=12
)
  • planning_interval=3: Agent tạm dừng sau mỗi 3 bước.
AI Agents với Hugging Face smolagents

Chạy agent với khoảng lập kế hoạch

"Lên kế hoạch kỳ nghỉ gia đình 2 tuần ở châu Âu với di tích lịch sử cho người lớn và hoạt động vui cho trẻ, ngân sách dưới $5000."

[Step 1] Search "Paris hotels" -> Found luxury hotels (~$4000 total)

[Step 2] Search "Paris attractions for families" -> Found Eiffel Tower, Louvre, theme park tickets

[Step 3] Pause and rethink (planning interval) Hotels are too expensive -> budget blown. I should look for cheaper options + kid-friendly activities.

[Step 4] Search "affordable family hotels in Europe" -> Found mid-range options in multiple cities

AI Agents với Hugging Face smolagents

Callback: móc vào quy trình của agent

AI Agents với Hugging Face smolagents

Hàm callback cơ bản

def callback_function(agent_step, agent):
    # Do something with the agent step or the agent itself
    pass
  • agent_step: chi tiết về bước (kế hoạch, số bước, v.v.)
  • agent: đối tượng agent đầy đủ (trạng thái + phương thức)
AI Agents với Hugging Face smolagents

Callback ở bước lập kế hoạch

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 với Hugging Face smolagents

Callback ở bước hành động

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 với Hugging Face smolagents

Thêm callback vào agent

from smolagents import ActionStep, PlanningStep

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

Bạn có thể làm gì với callback?

  • Ghi log tìm kiếm để hiểu nhu cầu phổ biến
  • Thêm điểm kiểm duyệt của con người
  • Gửi cập nhật tiến độ tới dashboard hoặc ứng dụng
  • Điều chỉnh hành vi agent giữa chừng theo hiệu năng
  • Và nhiều hơn...
AI Agents với Hugging Face smolagents

Ayo berlatih!

AI Agents với Hugging Face smolagents

Preparing Video For Download...