Hantera agentminne

AI-agenter med Hugging Face smolagents

Adel Nehme

VP of AI Curriculum, DataCamp

AI-agenter med Hugging Face smolagents

Tillståndslös som standard

Varje .run()-anrop börjar från noll.

  • Exempel:
career_advisor.run("What career skills should I highlight?")
You should highlight Python, SQL, data visualization, 
machine learning fundamentals, and communication skills tailored to business outcomes.
career_advisor.run("Can you format those skills as bullet points?")
Sorry, I'm not sure which skills you're referring to. Could you clarify?
AI-agenter med Hugging Face smolagents

Bevara minne mellan interaktioner

career_advisor.run("What career skills should I highlight?")
You should highlight Python, SQL, data visualization, 
machine learning fundamentals, and communication skills tailored to business outcomes.
  • Skicka reset=False:
career_advisor.run("Can you format those skills as bullet points?", reset=False)
Sure! Here are the skills as bullet points:
- Python
- SQL
- Data visualization
...
AI-agenter med Hugging Face smolagents

Minnet hjälper dig även att felsöka

User: What's the expected salary?
Agent: It's $80,000
User: Wait, that seems wrong...
Agent: Sorry, I'm not sure what you mean

Undersök vad som hände under agentens körning:

  • Granska all kod som agenten genererade
  • Spåra dess resonemang, åtgärder och verktygsanvändning
  • Felsök felaktiga svar eller trasig logik
AI-agenter med Hugging Face smolagents

Vilken kod körde agenten?

Metoden .return_full_code() låter dig se all körd kod.

executed_code = career_advisor.memory.return_full_code()
print(executed_code)
# ...other steps omitted for brevity

salary = 80000  # <- hardcoded?

# script continues...
AI-agenter med Hugging Face smolagents

Vad resonerade agenten kring?

conversation_steps = career_advisor.memory.get_succinct_steps()
print(conversation_steps[5])
{
  "step_number": 5,
  "tool_calls": [
    {"function": {"name": "python_interpreter"}},
    {"function": {"name": "web_search"}}
  ],
  "code_action": "import requests\nskills = requests.get('api.jobsearch.com').json()",
  "observations": "resume_agent found 15 relevant skills for transition",
  "token_usage": {"total_tokens": 334},
  ...
}
AI-agenter med Hugging Face smolagents

Spara agentsessioner för analys

import json

def save_agent_memory(agent):
    with open("agent_memory.json", "w") as f:
        json.dump(agent.memory.get_succinct_steps(), f, indent=2, default=str)

# Save memory to a file
save_agent_memory(career_advisor)

Loggar är användbara för:

  • Efterhandsanalys
  • Regressionstestning
  • Förbättra agentbeteendet över tid
AI-agenter med Hugging Face smolagents

Åtgärda agentfel: vad du kan justera

  • Minnesproblem: Använd reset=False eller återställ medvetet
  • Resonemangsproblem: Prova en starkare modell
  • Inkonsekvent beteende: Förbättra systempromten
  • Verktygsförvirring: Förtydliga verktygets docstrings
AI-agenter med Hugging Face smolagents

Nu kör vi en övning!

AI-agenter med Hugging Face smolagents

Preparing Video For Download...