Gérer la mémoire de l'agent

Agents IA avec Hugging Face smolagents

Adel Nehme

VP of AI Curriculum, DataCamp

Agents IA avec Hugging Face smolagents

Sans état par défaut

Chaque appel à .run() repart de zéro.

  • Exemple :
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?
Agents IA avec Hugging Face smolagents

Conserver la mémoire entre les échanges

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.
  • Passer 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
...
Agents IA avec Hugging Face smolagents

La mémoire aide aussi à déboguer

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

Examinez ce qui s'est passé lors de l'exécution de l'agent :

  • Revoir tout le code généré par l'agent
  • Suivre son raisonnement, ses actions et l'usage des outils
  • Déboguer les réponses erronées ou la logique défaillante
Agents IA avec Hugging Face smolagents

Quel code l'agent a-t-il exécuté ?

La méthode .return_full_code() affiche tout le code exécuté.

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

salary = 80000  # <- hardcoded?

# script continues...
Agents IA avec Hugging Face smolagents

À quoi pensait l'agent ?

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},
  ...
}
Agents IA avec Hugging Face smolagents

Enregistrer les sessions pour analyse

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)

Les journaux peuvent aider pour :

  • Analyses a posteriori
  • Tests de régression
  • Améliorer le comportement de l'agent au fil du temps
Agents IA avec Hugging Face smolagents

Corriger les échecs de l'agent : quoi ajuster

  • Problèmes de mémoire : utilisez reset=False ou réinitialisez volontairement
  • Problèmes de raisonnement : essayez un modèle plus puissant
  • Comportement incohérent : améliorez l'invite système
  • Confusion d'outil : clarifiez les docstrings des outils
Agents IA avec Hugging Face smolagents

Passons à la pratique !

Agents IA avec Hugging Face smolagents

Preparing Video For Download...