Gestion de 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() est un nouveau départ.

  • Exemple :
career_advisor.run("Quelles compétences professionnelles devrais-je mettre en avant ?")
Vous devriez mettre en avant Python, SQL, visualisation de données, 
les bases de l'apprentissage automatique et les compétences en communication adaptées aux résultats commerciaux.
career_advisor.run("Pouvez-vous formater ces compétences en puces ?")
Désolé, je ne suis pas sûr des compétences auxquelles vous faites référence. Pourriez-vous préciser ?
Agents IA avec Hugging Face smolagents

Conserver la mémoire entre les interactions

career_advisor.run("Quelles compétences professionnelles devrais-je mettre en avant ?")
Vous devriez mettre en avant Python, SQL, visualisation de données, 
les bases de l'apprentissage automatique et les compétences en communication adaptées aux résultats commerciaux.
  • Passez reset=False :
career_advisor.run("Pouvez-vous formater ces compétences en puces ?", reset=False)
Bien sûr ! Voici les compétences sous forme de puces :
- Python
- SQL
- Visualisation de données
...
Agents IA avec Hugging Face smolagents

La mémoire vous aide aussi à déboguer

Utilisateur : Quel est le salaire attendu ?
Agent : C'est 80 000 $
Utilisateur : Attendez, cela semble incorrect...
Agent : Désolé, je ne suis pas sûr de ce que vous voulez dire

Inspectez 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'utilisation des outils
  • Déboguer les réponses incorrectes 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() vous permet de voir tout le code exécuté.

executed_code = career_advisor.memory.return_full_code()
print(executed_code)
# ...autres étapes omises pour la concision

salary = 80000  # <- codé en dur ?

# le script continue...
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 a trouvé 15 compétences pertinentes pour la transition",
  "token_usage": {"total_tokens": 334},
  ...
}
Agents IA avec Hugging Face smolagents

Sauvegarder les sessions de l'agent 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)

# Sauvegarder la mémoire dans un fichier
save_agent_memory(career_advisor)

Les journaux peuvent aider à :

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

Corriger les échecs de l'agent : que modifier

  • Problèmes de mémoire : Utilisez reset=False ou réinitialisez intentionnellement
  • Problèmes de raisonnement : Essayez un modèle plus puissant
  • Comportement incohérent : Améliorez l'invite système
  • Confusion d'outils : Clarifiez les docstrings des outils
Agents IA avec Hugging Face smolagents

Passons à la pratique !

Agents IA avec Hugging Face smolagents

Preparing Video For Download...