Objectif : Donner de la mémoire à un agent pour qu'il apprenne du contexte.
Théorie (15 min) :
- Types de mémoire (de la plus simple à la plus puissante) :
- Buffer Memory : Stocker les N derniers messages (session seulement)
- Summary Memory : Résumer les anciennes conversations (économise les tokens)
- Vector Store Memory : Stocker les faits importants dans une DB vectorielle (persistant)
- Entity Memory : Mémoriser les entités mentionnées (noms, entreprises, etc.)
Pratique (45 min) :
from langchain.memory import ConversationBufferWindowMemory
from langchain.chains import ConversationChain
# Buffer Memory (session)
memory = ConversationBufferWindowMemory(k=5) # Retient les 5 derniers échanges
chain = ConversationChain(llm=llm, memory=memory)
# Test de mémoire
chain.predict(input="Mon prénom est Ismaïl.")
chain.predict(input="Je travaille dans la fintech.")
response = chain.predict(input="Résume ce que tu sais sur moi.")
print(response) # Doit mentionner Ismaïl et la fintech
- Implémenter Buffer Memory : Tester que l'agent se souvient des 5 derniers échanges
- Implémenter Summary Memory : Observer comment les vieux messages sont résumés
- Introduire ChromaDB (vector store local) pour la mémoire persistante
- Stocker 10 faits sur un "client fictif" → Redemander 3 jours après (mémoire persistante)
Checkpoint : Ton agent se souvient entre les sessions.