> Discover all available pages from the documentation index: https://mastra.zisheng.pro/fr/llms.txt # AI SDK Si vous utilisez déjà directement le [Vercel AI SDK](https://sdk.vercel.ai) et souhaitez ajouter des fonctionnalités Mastra telles que les [processors](https://mastra.zisheng.pro/fr/docs/agents/processors) ou la [mémoire](https://mastra.zisheng.pro/fr/docs/memory/memory-processors), sans adopter l’API complète des agents Mastra, [`withMastra()`](https://mastra.zisheng.pro/fr/reference/ai-sdk/with-mastra) vous permet d’encapsuler n’importe quel modèle AI SDK avec ces fonctionnalités. Cette approche est utile si vous souhaitez conserver votre code AI SDK existant tout en ajoutant le traitement des entrées et sorties, la persistance des conversations ou le filtrage de contenu. > **Astuce:** Si vous souhaitez utiliser Mastra avec AI SDK UI (par exemple `useChat()`), consultez le [guide AI SDK UI](https://mastra.zisheng.pro/fr/guides/build-your-ui/ai-sdk-ui). ## Installation Installez `@mastra/ai-sdk` pour commencer à utiliser la fonction `withMastra()`. **npm**: ```bash npm install @mastra/ai-sdk@latest ``` **pnpm**: ```bash pnpm add @mastra/ai-sdk@latest ``` **Yarn**: ```bash yarn add @mastra/ai-sdk@latest ``` **Bun**: ```bash bun add @mastra/ai-sdk@latest ``` ## Exemples ### Avec des processors Les processors permettent de transformer les messages avant leur envoi au modèle (`processInput`) et après la réception des réponses (`processOutputResult`). Cet exemple crée un processor de journalisation qui enregistre le nombre de messages à chaque étape, puis encapsule un modèle OpenAI avec celui-ci. ```typescript import { openai } from '@ai-sdk/openai' import { generateText } from 'ai' import { withMastra } from '@mastra/ai-sdk' import type { Processor } from '@mastra/core/processors' const loggingProcessor: Processor<'logger'> = { id: 'logger', async processInput({ messages }) { console.log('Input:', messages.length, 'messages') return messages }, async processOutputResult({ messages }) { console.log('Output:', messages.length, 'messages') return messages }, } const model = withMastra(openai('gpt-5.4'), { inputProcessors: [loggingProcessor], outputProcessors: [loggingProcessor], }) const { text } = await generateText({ model, prompt: 'What is 2 + 2?', }) ``` ### Avec la mémoire La mémoire charge automatiquement les messages précédents depuis le stockage avant l’appel au LLM, puis enregistre les nouveaux messages. Cet exemple configure un backend de stockage libSQL pour conserver l’historique de conversation et charge les 10 derniers messages comme contexte. ```typescript import { openai } from '@ai-sdk/openai' import { generateText } from 'ai' import { withMastra } from '@mastra/ai-sdk' import { LibSQLStore } from '@mastra/libsql' const storage = new LibSQLStore({ id: 'my-app', url: 'file:./data.db', }) await storage.init() const memoryStorage = await storage.getStore('memory') const model = withMastra(openai('gpt-5.4'), { memory: { storage: memoryStorage!, threadId: 'user-thread-123', resourceId: 'user-123', lastMessages: 10, }, }) const { text } = await generateText({ model, prompt: 'What did we talk about earlier?', }) ``` ### Avec des processors et la mémoire Vous pouvez combiner les processors et la mémoire. Les processors d’entrée s’exécutent après le chargement des messages historiques par la mémoire, et les processors de sortie avant l’enregistrement de la réponse par la mémoire. ```typescript import { openai } from '@ai-sdk/openai' import { generateText } from 'ai' import { withMastra } from '@mastra/ai-sdk' import { LibSQLStore } from '@mastra/libsql' const storage = new LibSQLStore({ id: 'my-app', url: 'file:./data.db' }) await storage.init() const memoryStorage = await storage.getStore('memory') const model = withMastra(openai('gpt-5.4'), { inputProcessors: [myGuardProcessor], outputProcessors: [myLoggingProcessor], memory: { storage: memoryStorage!, threadId: 'thread-123', resourceId: 'user-123', lastMessages: 10, }, }) const { text } = await generateText({ model, prompt: 'Hello!', }) ``` ## Voir aussi - [`withMastra()`](https://mastra.zisheng.pro/fr/reference/ai-sdk/with-mastra) : Référence de l’API `withMastra()` - [Processors](https://mastra.zisheng.pro/fr/docs/agents/processors) : Découvrez les processors d’entrée et de sortie - [Mémoire](https://mastra.zisheng.pro/fr/docs/memory/overview) : Présentation du système de mémoire de Mastra - [AI SDK UI](https://mastra.zisheng.pro/fr/guides/build-your-ui/ai-sdk-ui) : Utiliser les hooks AI SDK UI avec les agents, Workflows et réseaux Mastra