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’utilisationLien direct vers Exemple d’utilisation
import { MessageHistory } from '@mastra/core/processors'
const processor = new MessageHistory({
storage: memoryStorage,
lastMessages: 50,
})
Paramètres du constructeurLien direct vers Paramètres du constructeur
options:
MessageHistoryOptions
Options de configuration du Processor d’historique des messages
MessageHistoryOptions
storage:
MemoryStorage
Instance de stockage utilisée pour récupérer et conserver les messages
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éeLien direct vers 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<MessageList | MastraDBMessage[]>
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<MessageList>
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éeLien direct vers Exemple d’utilisation avancée
src/mastra/agents/memory-agent.ts
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,
}),
],
})
ComportementLien direct vers Comportement
Traitement de l’entréeLien direct vers Traitement de l’entrée
- Récupère
threadIddepuis le contexte de requête. - Récupère les anciens messages depuis le stockage, classés par date de création décroissante.
- Exclut les messages système, qui ne doivent pas être stockés dans la base de données.
- Fusionne les anciens messages avec les messages entrants en évitant les doublons d’ID.
- Ajoute les anciens messages avec le tag
source: 'memory'.
Traitement de la sortieLien direct vers Traitement de la sortie
- Récupère
threadIddepuis le contexte de requête. - Ignore la persistance si
readOnlyest défini dans la configuration de Memory. - Exclut des messages les appels de Tools incomplets.
- Conserve dans le stockage les nouveaux messages d’entrée de l’utilisateur et de réponse de l’assistant.
- Met à jour l’horodatage
updatedAtdu fil de discussion.