> Discover all available pages from the documentation index: https://mastra.zisheng.pro/fr/llms.txt # Memory.listThreads() La méthode `listThreads()` récupère des fils avec prise en charge de la pagination et filtrage facultatif selon `resourceId`, `metadata` ou les deux. ## Exemples d’utilisation ### Lister tous les fils avec pagination ```typescript const result = await memory.listThreads({ page: 0, perPage: 10, }) ``` ### Récupérer tous les fils sans pagination Utilisez `perPage: false` pour récupérer en une seule fois tous les fils correspondants. > **Attention:** Utilisez la pagination, en particulier pour les jeux de données volumineux. Employez cette option avec prudence. ```typescript const result = await memory.listThreads({ filter: { resourceId: 'user-123' }, perPage: false, }) ``` ### Filtrer selon `resourceId` ```typescript const result = await memory.listThreads({ filter: { resourceId: 'user-123' }, page: 0, perPage: 10, }) ``` ### Filtrer selon les métadonnées ```typescript const result = await memory.listThreads({ filter: { metadata: { category: 'support', priority: 'high' } }, page: 0, perPage: 10, }) ``` ### Filtre combiné (resourceId et métadonnées) ```typescript const result = await memory.listThreads({ filter: { resourceId: 'user-123', metadata: { status: 'active' }, }, page: 0, perPage: 10, }) ``` ## Paramètres **filter** (`{ resourceId?: string; metadata?: Record }`): Objet de filtrage facultatif. resourceId filtre les fils selon l’ID de la ressource. metadata filtre les fils selon des paires clé-valeur de métadonnées (logique AND : toutes doivent correspondre) **page** (`number`): Numéro de page à récupérer (indexé à partir de 0) **perPage** (`number | false`): Nombre maximal de fils à renvoyer par page, ou false pour tous les récupérer **orderBy** (`{ field: 'createdAt' | 'updatedAt', direction: 'ASC' | 'DESC' }`): Configuration du tri avec le champ et le sens (valeur par défaut : { field: 'createdAt', direction: 'DESC' }) ## Valeur renvoyée **result** (`Promise`): Promise résolue avec les résultats paginés des fils et leurs métadonnées L’objet renvoyé contient : - `threads` : tableau d’objets représentant les fils - `total` : nombre total de fils correspondant au filtre - `page` : numéro de la page actuelle (identique au paramètre d’entrée `page`) - `perPage` : nombre d’éléments par page (identique au paramètre d’entrée `perPage`) - `hasMore` : booléen indiquant si d’autres résultats sont disponibles ## Exemple d’utilisation avancée ```typescript import { mastra } from './mastra' const agent = mastra.getAgent('agent') const memory = await agent.getMemory() let currentPage = 0 const perPage = 25 let hasMorePages = true // Fetch all active threads for a user, sorted by creation date while (hasMorePages) { const result = await memory?.listThreads({ filter: { resourceId: 'user-123', metadata: { status: 'active' }, }, page: currentPage, perPage: perPage, orderBy: { field: 'createdAt', direction: 'ASC' }, }) if (!result) { console.log('No threads') break } result.threads.forEach(thread => { console.log(`Thread: ${thread.id}, Created: ${thread.createdAt}`) }) hasMorePages = result.hasMore currentPage++ // Move to next page } ``` ## Filtrage selon les métadonnées Le filtre de métadonnées utilise la logique AND : toutes les paires clé-valeur indiquées doivent correspondre pour qu’un fil soit inclus dans les résultats : ```typescript // This will only return threads where BOTH conditions are true: // - category === 'support' // - priority === 'high' await memory.listThreads({ filter: { metadata: { category: 'support', priority: 'high', }, }, }) ``` ## Voir aussi - [Référence de la classe Memory](https://mastra.zisheng.pro/fr/reference/memory/memory-class) - [Bien démarrer avec Memory](https://mastra.zisheng.pro/fr/docs/memory/overview) - [createThread](https://mastra.zisheng.pro/fr/reference/memory/createThread) - [getThreadById](https://mastra.zisheng.pro/fr/reference/memory/getThreadById)