Pour discuter avec un LLM, il faut systématiquement lui rappeler toute la conversation à chaque appel. Les grands modèles de langage sont en effet des systèmes “stateless”, sans état : ils n’ont pas de mémoire par défaut.
C’est pour cela qu’un appel à un LLM via LangChain prend en entrée une liste de messages, et non uniquement un prompt.
C’est aussi pour cela qu’il faut parfois redémarrer une conversation quand on discute avec un LLM qui semble commencer à se perdre après une longue discussion. On peut typiquement avoir une conversation d’idéation pour affiner un prompt, puis une seconde conversation d’exécution pour accomplir la tâche à partir d’un prompt/contexte propre.
Exemple d’une conversation avec un LLM via LangChain en Python (exemple tiré de la documentation officielle LangChain) :
agent = create_agent(
model="claude-sonnet-4-6",
system_prompt="On va discuter tous les deux",
)
agent.invoke(
{"messages": [
{"role": "user", "content": "Ça va ?"},
{"role": "assistant", "content": "Ça va et toi ?"},
{"role": "user", "content": "Moi ça va. Et toi ?"},
]}
)Dans cet exemple, les messages “user” sont ceux de l’utilisateur, et “assistant” ceux de l’IA. Pour pouvoir avancer dans la conversation, il faut redonner à l’IA tout l’historique, y compris ses propres messages !
Les agents IA ajoutent généralement une mémoire court terme, qui permet de stocker une conversation à transmettre au LLM à chaque appel. Les frameworks IA tels que LangChain ou Mastra aident aussi à compresser la conversation quand elle devient trop grande pour la fenêtre de contexte (ou votre portefeuille, les tokens ne sont pas gratuits !).
Pour un usage plus avancé, on peut aussi modifier artificiellement les réponses de l’IA : c’est le principe du "few-shot learning”. Cependant, cette technique étant aussi utilisée pour le jailbreaking, on préfère passer par le prompt système directement pour les modèles plus récents.



