> Discover all available pages from the documentation index: https://mastra.zisheng.pro/fr/llms.txt # Classe Memory La classe `Memory` fournit dans Mastra un système fiable de gestion de l'historique des conversations et du stockage des messages par thread. Elle permet de conserver les conversations, d'effectuer des recherches sémantiques et de récupérer efficacement les messages. Vous devez configurer un Provider de stockage pour l'historique des conversations. Si vous activez le rappel sémantique, vous devrez également fournir un stockage vectoriel et un modèle d'embedding. ## Exemple d'utilisation ```typescript import { Memory } from '@mastra/memory' import { Agent } from '@mastra/core/agent' export const agent = new Agent({ id: 'test-agent', name: 'test-agent', instructions: 'You are an agent with memory.', model: 'openai/gpt-5.6-sol', memory: new Memory({ options: { workingMemory: { enabled: true, }, }, }), }) ``` > **Remarque:** Pour activer `workingMemory` sur un Agent, un Provider de stockage doit être configuré sur votre instance Mastra principale. Pour en savoir plus, consultez la [classe Mastra](https://mastra.zisheng.pro/fr/reference/core/mastra-class). ## Paramètres du constructeur **storage** (`MastraCompositeStore`): Implémentation de stockage permettant de conserver les données de la mémoire. Utilise par défaut new DefaultStorage({ config: { url: "file:memory.db" } }) si elle n'est pas fournie. **vector** (`MastraVector | false`): Stockage vectoriel destiné aux fonctionnalités de recherche sémantique. Définissez cette valeur sur false pour désactiver les opérations vectorielles. **embedder** (`EmbeddingModel | EmbeddingModelV2`): Instance du modèle d'embedding pour les embeddings vectoriels. Obligatoire lorsque le rappel sémantique est activé. **options** (`MemoryConfig`): Options de configuration de Memory. **options.lastMessages** (`number | false`): Nombre de messages les plus récents à inclure dans le contexte. Définissez cette valeur sur false pour désactiver entièrement la fonctionnalité d'historique des messages (les messages ne sont ni chargés dans le contexte ni enregistrés). Utilisez Number.MAX\_SAFE\_INTEGER pour récupérer tous les messages sans limite. Pour charger des messages sans en enregistrer de nouveaux, utilisez l'option readOnly. **options.readOnly** (`boolean`): Lorsque la valeur est true, empêche la mémoire d'enregistrer de nouveaux messages et fournit la mémoire de travail comme contexte en lecture seule (sans le Tool updateWorkingMemory). Utile pour les opérations en lecture seule telles que les aperçus, les Agents de routage internes ou les sous-Agents qui doivent consulter la mémoire sans la modifier. **options.semanticRecall** (`boolean | { topK: number; messageRange: number | { before: number; after: number }; scope?: 'thread' | 'resource' }`): Active la recherche sémantique dans l'historique des messages. Peut être un booléen ou un objet contenant des options de configuration. Lorsque cette fonctionnalité est activée, le stockage vectoriel et le modèle d'embedding doivent être configurés. La valeur par défaut de topK est 4 et celle de messageRange est {before: 1, after: 1}. **options.workingMemory** (`WorkingMemory`): Configuration de la fonctionnalité de mémoire de travail. Peut être { enabled: boolean; template?: string; schema?: ZodObject\ | JSONSchema7; scope?: 'thread' | 'resource' } ou { enabled: boolean } pour la désactiver. **options.observationalMemory** (`boolean | ObservationalMemoryOptions`): Active Observational Memory pour la mémoire agentique à contexte long. Définissez cette valeur sur true pour utiliser les valeurs par défaut, ou transmettez un objet de configuration pour personnaliser les budgets de tokens, les modèles et la portée. Pour en savoir plus sur la configuration, consultez la référence d'Observational Memory. **options.generateTitle** (`boolean | { model: DynamicArgument; instructions?: DynamicArgument }`): Contrôle la génération automatique du titre du thread à partir de la transcription de la conversation. Peut être un booléen ou un objet contenant un modèle et des instructions personnalisés. ## Valeur renvoyée **memory** (`Memory`): Nouvelle instance Memory avec la configuration indiquée. ## Exemple d'utilisation avancée ```typescript import { Memory } from '@mastra/memory' import { Agent } from '@mastra/core/agent' import { LibSQLStore, LibSQLVector } from '@mastra/libsql' export const agent = new Agent({ name: 'test-agent', instructions: 'You are an agent with memory.', model: 'openai/gpt-5.6-sol', memory: new Memory({ storage: new LibSQLStore({ id: 'test-agent-storage', url: 'file:./working-memory.db', }), vector: new LibSQLVector({ id: 'test-agent-vector', url: 'file:./vector-memory.db', }), options: { lastMessages: 10, semanticRecall: { topK: 3, messageRange: 2, scope: 'resource', }, workingMemory: { enabled: true, }, generateTitle: true, }, }), }) ``` ## PostgreSQL avec configuration de l'index ```typescript import { Memory } from '@mastra/memory' import { Agent } from '@mastra/core/agent' import { ModelRouterEmbeddingModel } from '@mastra/core/llm' import { PgStore, PgVector } from '@mastra/pg' export const agent = new Agent({ name: 'pg-agent', instructions: 'You are an agent with optimized PostgreSQL memory.', model: 'openai/gpt-5.6-sol', memory: new Memory({ storage: new PgStore({ id: 'pg-agent-storage', connectionString: process.env.DATABASE_URL, }), vector: new PgVector({ id: 'pg-agent-vector', connectionString: process.env.DATABASE_URL, }), embedder: new ModelRouterEmbeddingModel('openai/text-embedding-3-small'), options: { lastMessages: 20, semanticRecall: { topK: 5, messageRange: 3, scope: 'resource', indexConfig: { type: 'hnsw', // Use HNSW for better performance metric: 'dotproduct', // Optimal for OpenAI embeddings m: 16, // Number of bi-directional links efConstruction: 64, // Construction-time candidate list size }, }, workingMemory: { enabled: true, }, }, }), }) ``` ### Voir aussi - [Bien démarrer avec Memory](https://mastra.zisheng.pro/fr/docs/memory/overview) - [Rappel sémantique](https://mastra.zisheng.pro/fr/docs/memory/semantic-recall) - [Mémoire de travail](https://mastra.zisheng.pro/fr/docs/memory/working-memory) - [Mémoire observationnelle](https://mastra.zisheng.pro/fr/docs/memory/observational-memory) - [Processors de Memory](https://mastra.zisheng.pro/fr/docs/memory/memory-processors) - [createThread](https://mastra.zisheng.pro/fr/reference/memory/createThread) - [recall](https://mastra.zisheng.pro/fr/reference/memory/recall) - [getThreadById](https://mastra.zisheng.pro/fr/reference/memory/getThreadById) - [listThreads](https://mastra.zisheng.pro/fr/reference/memory/listThreads) - [deleteMessages](https://mastra.zisheng.pro/fr/reference/memory/deleteMessages) - [cloneThread](https://mastra.zisheng.pro/fr/reference/memory/cloneThread) - [Méthodes utilitaires de clonage](https://mastra.zisheng.pro/fr/reference/memory/clone-utilities)