> Discover all available pages from the documentation index: https://mastra.zisheng.pro/fr/llms.txt # MessageHistory `MessageHistory` est un **Processor hybride** qui gère à la fois la récupération et la persistance de l’historique des messages. En entrée, il récupère les anciens messages depuis le stockage et les ajoute au début de la conversation. En sortie, il conserve les nouveaux messages dans le stockage. ## Exemple d’utilisation ```typescript import { MessageHistory } from '@mastra/core/processors' const processor = new MessageHistory({ storage: memoryStorage, lastMessages: 50, }) ``` ## Paramètres du constructeur **options** (`MessageHistoryOptions`): Options de configuration du Processor d’historique des messages **options.storage** (`MemoryStorage`): Instance de stockage utilisée pour récupérer et conserver les messages **options.lastMessages** (`number`): Nombre maximal d’anciens messages à récupérer. Si cette valeur n’est pas indiquée, tous les messages sont récupérés ## Valeur renvoyée **id** (`string`): Identifiant du Processor défini sur 'message-history' **name** (`string`): Nom d’affichage du Processor défini sur 'MessageHistory' **processInput** (`(args: { messages: MastraDBMessage[]; messageList: MessageList; abort: (reason?: string) => never; tracingContext?: TracingContext; requestContext?: RequestContext }) => Promise`): Récupère les anciens messages depuis le stockage et les ajoute à la liste de messages **processOutputResult** (`(args: { messages: MastraDBMessage[]; messageList: MessageList; abort: (reason?: string) => never; tracingContext?: TracingContext; requestContext?: RequestContext }) => Promise`): Conserve les nouveaux messages (entrée de l’utilisateur et réponse de l’assistant) dans le stockage, à l’exception des messages système ## Exemple d’utilisation avancée ```typescript import { Agent } from '@mastra/core/agent' import { MessageHistory } from '@mastra/core/processors' import { PostgresStorage } from '@mastra/pg' const storage = new PostgresStorage({ connectionString: process.env.DATABASE_URL, }) export const agent = new Agent({ id: 'memory-agent', name: 'memory-agent', instructions: 'You are a helpful assistant with conversation memory', model: 'openai/gpt-5.6-sol', inputProcessors: [ new MessageHistory({ storage, lastMessages: 100, }), ], outputProcessors: [ new MessageHistory({ storage, }), ], }) ``` ## Comportement ### Traitement de l’entrée 1. Récupère `threadId` depuis le contexte de requête. 2. Récupère les anciens messages depuis le stockage, classés par date de création décroissante. 3. Exclut les messages système, qui ne doivent pas être stockés dans la base de données. 4. Fusionne les anciens messages avec les messages entrants en évitant les doublons d’ID. 5. Ajoute les anciens messages avec le tag `source: 'memory'`. ### Traitement de la sortie 1. Récupère `threadId` depuis le contexte de requête. 2. Ignore la persistance si `readOnly` est défini dans la configuration de Memory. 3. Exclut des messages les appels de Tools incomplets. 4. Conserve dans le stockage les nouveaux messages d’entrée de l’utilisateur et de réponse de l’assistant. 5. Met à jour l’horodatage `updatedAt` du fil de discussion. ## Voir aussi - [Guardrails](https://mastra.zisheng.pro/fr/docs/agents/guardrails)